]> granicus.if.org Git - openssl/commit
Fix decoding of ASN.1 LONG and ZLONG items
authorRichard Levitte <levitte@openssl.org>
Mon, 20 Mar 2017 20:31:02 +0000 (21:31 +0100)
committerRichard Levitte <levitte@openssl.org>
Mon, 20 Mar 2017 21:10:31 +0000 (22:10 +0100)
commit249452df67f7a5e4b203d71837cc0e8a31d62c75
treec107897d94e57101ae1697fcdc922b1c26e2c28c
parent201eb73cfdbdb744a8ef767e481ac42436650f41
Fix decoding of ASN.1 LONG and ZLONG items

LONG and ZLONG items (which are OpenSSL private special cases of
ASN1_INTEGER) are encoded into DER with padding if the leading octet
has the high bit set, where the padding can be 0x00 (for positive
numbers) or 0xff (for negative ones).

When decoding DER to LONG or ZLONG, the padding wasn't taken in
account at all, which means that if the encoded size with padding
is one byte more than the size of long, decoding fails.  This change
fixes that issue.

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3000)
crypto/asn1/x_long.c