summaryrefslogtreecommitdiff
path: root/src/lib/crypt_ops
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-03-14 14:20:51 -0400
committerNick Mathewson <nickm@torproject.org>2020-03-14 14:20:51 -0400
commitdd6e2277e0d336f3d519f88d792b832d04e2c323 (patch)
tree5537a2c2d84d3feecd6401c97584162657af4019 /src/lib/crypt_ops
parent1a375c3b193f73e73e7c9c640dccdf1eb027234b (diff)
parent29c9675bdeb5a63564e9a76dcd7162bef884b240 (diff)
downloadtor-dd6e2277e0d336f3d519f88d792b832d04e2c323.tar.gz
tor-dd6e2277e0d336f3d519f88d792b832d04e2c323.zip
Merge branch 'trove_2020_002_035' into trove_2020_002_041
Diffstat (limited to 'src/lib/crypt_ops')
-rw-r--r--src/lib/crypt_ops/crypto_rsa_openssl.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/crypt_ops/crypto_rsa_openssl.c b/src/lib/crypt_ops/crypto_rsa_openssl.c
index 022a0dc093..0db25f3473 100644
--- a/src/lib/crypt_ops/crypto_rsa_openssl.c
+++ b/src/lib/crypt_ops/crypto_rsa_openssl.c
@@ -584,8 +584,13 @@ crypto_pk_asn1_decode_private(const char *str, size_t len, int max_bits)
crypto_openssl_log_errors(LOG_WARN,"decoding private key");
return NULL;
}
+#ifdef OPENSSL_1_1_API
if (max_bits >= 0 && RSA_bits(rsa) > max_bits) {
+#else
+ if (max_bits >= 0 && rsa->n && BN_num_bits(rsa->n) > max_bits) {
+#endif
log_info(LD_CRYPTO, "Private key longer than expected.");
+ RSA_free(rsa);
return NULL;
}
crypto_pk_t *result = crypto_new_pk_from_openssl_rsa_(rsa);