]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Add off-by-one checks for key length.
authorNick Mathewson <nickm@torproject.org>
Tue, 17 Mar 2020 14:07:54 +0000 (10:07 -0400)
committerNick Mathewson <nickm@torproject.org>
Tue, 17 Mar 2020 14:44:38 +0000 (10:44 -0400)
src/test/test_crypto.c

index 2373e5bf8614fd276de88cef2443879e2309ee22..5af0cce130e4a1a979545b888ee7bf3e2859eaf1 100644 (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);