Check for invalid leading zeros in CBS_get_asn1_uint64.
authordoug <doug@openbsd.org>
Sat, 25 Apr 2015 15:28:47 +0000 (15:28 +0000)
committerdoug <doug@openbsd.org>
Sat, 25 Apr 2015 15:28:47 +0000 (15:28 +0000)
commitd1ca61581d41ca664ca2be81b4cc385710e166f6
treed58baeb1814e9ead265fcc94377fb812de0ab208
parent51e30acc2a3a1929305c69fef9ad77db4ba35117
Check for invalid leading zeros in CBS_get_asn1_uint64.

ASN.1 integers cannot have all zeros or all ones for the first 9 bits.
This rule ensures the numbers are encoded with the smallest number of
content octets (see ITU-T Rec X.690 section 8.3.2).

Based on BoringSSL commit 5933723b7b592e9914f703d630b596e140c93e16

ok deraadt@ jsing@
lib/libssl/bs_cbs.c
lib/libssl/src/ssl/bs_cbs.c
regress/lib/libssl/bytestring/bytestringtest.c