The unified diff between revisions [853c4385..] and [965528e6..] is displayed below. It can also be downloaded as a raw diff.

This diff has been restricted to the following files: 'src/ber_dec.cpp'

#
#
# patch "src/ber_dec.cpp"
#  from [fae966ded54d6eec3652e2f664b1ec759dc9cd95]
#    to [21f3a6da1ece347863688014e018a014f1bb2b4e]
#
============================================================
--- src/ber_dec.cpp	fae966ded54d6eec3652e2f664b1ec759dc9cd95
+++ src/ber_dec.cpp	21f3a6da1ece347863688014e018a014f1bb2b4e
@@ -1,6 +1,6 @@
 /*************************************************
 * BER Decoder Source File                        *
-* (C) 1999-2007 The Botan Project                *
+* (C) 1999-2008 Jack Lloyd                       *
 *************************************************/

 #include <botan/ber_dec.h>
@@ -104,7 +104,7 @@ u32bit find_eoc(DataSource* ber)
       const u32bit got = ber->peek(buffer, buffer.size(), data.size());
       if(got == 0)
          break;
-      data.push_back(buffer, got);
+      data.append(buffer, got);
       }

    DataSource_Memory source(data);
@@ -169,7 +169,7 @@ BER_Decoder& BER_Decoder::raw_bytes(Memo
    out.destroy();
    byte buf;
    while(source->read_byte(buf))
-      out.push_back(buf);
+      out.append(buf);
    return (*this);
    }

@@ -226,10 +226,12 @@ void BER_Decoder::push_back(const BER_Ob
 /*************************************************
 * Begin decoding a CONSTRUCTED type              *
 *************************************************/
-BER_Decoder BER_Decoder::start_cons(ASN1_Tag type_tag)
+BER_Decoder BER_Decoder::start_cons(ASN1_Tag type_tag,
+                                    ASN1_Tag class_tag)
    {
    BER_Object obj = get_next_object();
-   obj.assert_is_a(type_tag, CONSTRUCTED);
+   obj.assert_is_a(type_tag, ASN1_Tag(class_tag | CONSTRUCTED));
+
    BER_Decoder result(obj.value, obj.value.size());
    result.parent = this;
    return result;