Add off-by-one checks for key length.

This commit is contained in:
Nick Mathewson 2020-03-17 10:07:54 -04:00
parent 8abdb39489
commit 2328c79a5f

View File

@ -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);