From 7f0ab13ebd0342dbcffbeb726ac50dac95e35c88 Mon Sep 17 00:00:00 2001 From: lloyd Date: Thu, 8 May 2008 15:16:22 +0000 Subject: The BER decoder assumed that all constructed types would be tagged as universal: this prevented it from decoding application, context-specific, or private-class constructions. Add a new parameter to BER_Decoder::start_cons which specifies the expected class type (default universal). The decoder still verifies that the constructed bit is set in the class tag. This provides parity with the interface to the DER encoder. Problem was found and reported by Falko Strenzke --- include/ber_dec.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/ber_dec.h b/include/ber_dec.h index 1ea880595..9fec75832 100644 --- a/include/ber_dec.h +++ b/include/ber_dec.h @@ -1,6 +1,6 @@ /************************************************* * BER Decoder Header File * -* (C) 1999-2007 Jack Lloyd * +* (C) 1999-2008 Jack Lloyd * *************************************************/ #ifndef BOTAN_BER_DECODER_H__ @@ -25,7 +25,7 @@ class BOTAN_DLL BER_Decoder BER_Decoder& verify_end(); BER_Decoder& discard_remaining(); - BER_Decoder start_cons(ASN1_Tag); + BER_Decoder start_cons(ASN1_Tag, ASN1_Tag = UNIVERSAL); BER_Decoder& end_cons(); BER_Decoder& raw_bytes(MemoryRegion&); -- cgit v1.2.3