diff options
author | Nick Mathewson <nickm@torproject.org> | 2020-03-17 10:07:54 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2020-03-17 10:44:38 -0400 |
commit | 2328c79a5fbc2f1995390dd08002244bc952246d (patch) | |
tree | 6bb6ab462ce48a0e3931345b432963178a77ba97 | |
parent | 8abdb394893a1704f885278f5f5d7913cdf516c9 (diff) | |
download | tor-2328c79a5fbc2f1995390dd08002244bc952246d.tar.gz tor-2328c79a5fbc2f1995390dd08002244bc952246d.zip |
Add off-by-one checks for key length.
-rw-r--r-- | src/test/test_crypto.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/test/test_crypto.c b/src/test/test_crypto.c index 2373e5bf86..5af0cce130 100644 --- a/src/test/test_crypto.c +++ b/src/test/test_crypto.c @@ -1505,6 +1505,21 @@ test_crypto_pk_bad_size(void *arg) pk2 = crypto_pk_asn1_decode_private(buf, n, 1020); tt_assert(! pk2); + /* Set the max bit count one bit smaller: we should refuse to decode the + key.*/ + pk2 = crypto_pk_asn1_decode_private(buf, n, 1023); + tt_assert(! pk2); + + /* Correct size: should work. */ + pk2 = crypto_pk_asn1_decode_private(buf, n, 1024); + tt_assert(pk2); + crypto_pk_free(pk2); + + /* One bit larger: should work. */ + pk2 = crypto_pk_asn1_decode_private(buf, n, 1025); + tt_assert(pk2); + crypto_pk_free(pk2); + /* Set the max bit count larger: it should decode fine. */ pk2 = crypto_pk_asn1_decode_private(buf, n, 2048); tt_assert(pk2); |