diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2019-11-12 08:55:43 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2019-11-12 08:56:18 +0100 |
commit | a3d77be53b066e87199d1f91047fa40cb062f77f (patch) | |
tree | 90d1211097b8c23be64838f2286bd10f346e4497 /thirdparty/mbedtls/library/x509write_crt.c | |
parent | 1d0bd3eb71c8c7905f12dd9c5490f2560d07db78 (diff) | |
download | redot-engine-a3d77be53b066e87199d1f91047fa40cb062f77f.tar.gz |
mbedtls: Update to upstream version 2.16.3
Diffstat (limited to 'thirdparty/mbedtls/library/x509write_crt.c')
-rw-r--r-- | thirdparty/mbedtls/library/x509write_crt.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/thirdparty/mbedtls/library/x509write_crt.c b/thirdparty/mbedtls/library/x509write_crt.c index 10497e752b..61d7ba44a0 100644 --- a/thirdparty/mbedtls/library/x509write_crt.c +++ b/thirdparty/mbedtls/library/x509write_crt.c @@ -45,6 +45,16 @@ #include "mbedtls/pem.h" #endif /* MBEDTLS_PEM_WRITE_C */ +/* + * 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_crt_init( mbedtls_x509write_cert *ctx ) { memset( ctx, 0, sizeof( mbedtls_x509write_cert ) ); @@ -334,7 +344,7 @@ int mbedtls_x509write_crt_der( mbedtls_x509write_cert *ctx, unsigned char *buf, 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 sub_len = 0, pub_len = 0, sig_and_oid_len = 0, sig_len; size_t len = 0; |