summaryrefslogtreecommitdiff
path: root/thirdparty/mbedtls/library/x509write_csr.c
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2019-11-12 09:49:38 +0100
committerGitHub <noreply@github.com>2019-11-12 09:49:38 +0100
commitf6e62f1147fee45a24900360c61b768f7f395794 (patch)
treea1e6d05eb6e4d4abca54cdcca2dbd99d50fb9e9d /thirdparty/mbedtls/library/x509write_csr.c
parent94bf2f648ee239a2f8d86aec23a6c1a35bef9332 (diff)
parenta3d77be53b066e87199d1f91047fa40cb062f77f (diff)
Merge pull request #33560 from akien-mga/mbedtls-2.16.3
mbedtls: Update to upstream version 2.16.3
Diffstat (limited to 'thirdparty/mbedtls/library/x509write_csr.c')
-rw-r--r--thirdparty/mbedtls/library/x509write_csr.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/thirdparty/mbedtls/library/x509write_csr.c b/thirdparty/mbedtls/library/x509write_csr.c
index d70ba0ed92..b65a11c6aa 100644
--- a/thirdparty/mbedtls/library/x509write_csr.c
+++ b/thirdparty/mbedtls/library/x509write_csr.c
@@ -44,6 +44,16 @@
#include "mbedtls/pem.h"
#endif
+/*
+ * For the currently used signature algorithms the buffer to store any signature
+ * must be at least of size MAX(MBEDTLS_ECDSA_MAX_LEN, MBEDTLS_MPI_MAX_SIZE)
+ */
+#if MBEDTLS_ECDSA_MAX_LEN > MBEDTLS_MPI_MAX_SIZE
+#define SIGNATURE_MAX_SIZE MBEDTLS_ECDSA_MAX_LEN
+#else
+#define SIGNATURE_MAX_SIZE MBEDTLS_MPI_MAX_SIZE
+#endif
+
void mbedtls_x509write_csr_init( mbedtls_x509write_csr *ctx )
{
memset( ctx, 0, sizeof( mbedtls_x509write_csr ) );
@@ -159,7 +169,7 @@ int mbedtls_x509write_csr_der( mbedtls_x509write_csr *ctx, unsigned char *buf, s
size_t sig_oid_len = 0;
unsigned char *c, *c2;
unsigned char hash[64];
- unsigned char sig[MBEDTLS_MPI_MAX_SIZE];
+ unsigned char sig[SIGNATURE_MAX_SIZE];
unsigned char tmp_buf[2048];
size_t pub_len = 0, sig_and_oid_len = 0, sig_len;
size_t len = 0;