U:RDoc::NormalClass[iI"Constructive:ETI" OpenSSL::ASN1::Constructive;TI"OpenSSL::ASN1::ASN1Data;Fo:RDoc::Markup::Document: @parts[o;;[o:RDoc::Markup::Paragraph;[I"KThe parent class for all constructed encodings. The +value+ attribute ;TI"Hof a Constructive is always an +Array+. Attributes are the same as ;TI"2for ASN1Data, with the addition of +tagging+.;To:RDoc::Markup::BlankLineS:RDoc::Markup::Heading: leveli: textI"SET and SEQUENCE;T@o; ;[I"IMost constructed encodings come in the form of a SET or a SEQUENCE. ;TI"FThese encodings are represented by one of the two sub-classes of ;TI"Constructive:;To:RDoc::Markup::List: @type: BULLET: @items[o:RDoc::Markup::ListItem: @label0;[o; ;[I"OpenSSL::ASN1::Set;To;;0;[o; ;[I"OpenSSL::ASN1::Sequence;To; ;[I"DPlease note that tagged sequences and sets are still parsed as ;TI"Binstances of ASN1Data. Find further details on tagged values ;TI" there.;T@S; ; i; I"&Example - constructing a SEQUENCE;To:RDoc::Markup::Verbatim;[I")int = OpenSSL::ASN1::Integer.new(1) ;TI"5str = OpenSSL::ASN1::PrintableString.new('abc') ;TI"array of the outer infinite length value must end with a ;TI"*OpenSSL::ASN1::EndOfContent instance.;T@o; ;[I"HPlease note that it is not possible to encode Constructive without ;TI">the +infinite_length+ attribute being set to +true+, use ;TI"JOpenSSL::ASN1::Sequence or OpenSSL::ASN1::Set in these cases instead.;T@S; ; i; I"+Example - Infinite length OCTET STRING;To;;[I"7partial1 = OpenSSL::ASN1::OctetString.new("\x01") ;TI"7partial2 = OpenSSL::ASN1::OctetString.new("\x02") ;TI"?inf_octets = OpenSSL::ASN1::Constructive.new( [ partial1, ;TI"? partial2, ;TI"X OpenSSL::ASN1::EndOfContent.new ], ;TI"P OpenSSL::ASN1::OCTET_STRING, ;TI"8 nil, ;TI"@ :UNIVERSAL ) ;TI"J# The real value of inf_octets is "\x01\x02", i.e. the concatenation ;TI" # of partial1 and partial2 ;TI"'inf_octets.infinite_length = true ;TI"der = inf_octets.to_der ;TI"&asn1 = OpenSSL::ASN1.decode(der) ;TI"(puts asn1.infinite_length # => true;T;0: @fileI"ext/openssl/ossl_asn1.c;T:0@omit_headings_from_table_of_contents_below0;0;0[[ I" tagging;TI"RW;T: publicFI"ext/openssl/ossl_asn1.c;T[[[I"Enumerable;To;;[;@a;0@f[[I" class;T[[;[[I"new;T@f[:protected[[: private[[I" instance;T[[;[[I" each;T@f[I" to_der;T@f[;[[;[[[U:RDoc::Context::Section[i0o;;[;0;0[@aI"OpenSSL::ASN1;TcRDoc::NormalModule