The parent class for all primitive encodings. Attributes are the same as
for ASN1Data, with the addition of
tagging
. Primitive values can
never be infinite length encodings, thus it is not possible to set the
infinite_length
attribute for Primitive and its sub-classes.
Primitive sub-classes and their mapping to Ruby classes
-
OpenSSL::ASN1::EndOfContent <=>
value
is alwaysnil
-
OpenSSL::ASN1::Boolean <=>
value
is aBoolean
-
OpenSSL::ASN1::Integer <=>
value
is aNumber
-
OpenSSL::ASN1::BitString <=>
value
is aString
-
OpenSSL::ASN1::OctetString <=>
value
is aString
-
OpenSSL::ASN1::Null <=>
value
is alwaysnil
-
OpenSSL::ASN1::Object <=>
value
is aString
-
OpenSSL::ASN1::Enumerated <=>
value
is aNumber
-
OpenSSL::ASN1::UTF8String <=>
value
is aString
-
OpenSSL::ASN1::NumericString <=>
value
is aString
-
OpenSSL::ASN1::PrintableString <=>
value
is aString
-
OpenSSL::ASN1::T61String <=>
value
is aString
-
OpenSSL::ASN1::VideotexString <=>
value
is aString
-
OpenSSL::ASN1::IA5String <=>
value
is aString
-
OpenSSL::ASN1::UTCTime <=>
value
is aTime
-
OpenSSL::ASN1::GeneralizedTime <=>
value
is aTime
-
OpenSSL::ASN1::GraphicString <=>
value
is aString
-
OpenSSL::ASN1::ISO64String <=>
value
is aString
-
OpenSSL::ASN1::GeneralString <=>
value
is aString
-
OpenSSL::ASN1::UniversalString <=>
value
is aString
-
OpenSSL::ASN1::BMPString <=>
value
is aString
OpenSSL::ASN1::BitString
Additional attributes
unused_bits
: if the underlying BIT STRING's length is a
multiple of 8 then unused_bits
is 0. Otherwise
unused_bits
indicates the number of bits that are to be
ignored in the final octet of the BitString
's
value
.
OpenSSL::ASN1::ObjectId
Additional attributes
-
sn
: the short name as defined in <openssl/objects.h>. -
ln
: the long name as defined in <openssl/objects.h>. -
oid
: the object identifier as aString
, e.g. “1.2.3.4.5” -
short_name
: alias forsn
. -
long_name
: alias forln
.
Examples
With the Exception of
OpenSSL::ASN1::EndOfContent, each Primitive
class constructor takes at least one parameter, the value
.
Creating EndOfContent
eoc = OpenSSL::ASN1::EndOfContent.new
Creating any other Primitive
prim = <class>.new(value) # <class> being one of the sub-classes except EndOfContent prim_zero_tagged_implicit = <class>.new(value, 0, :IMPLICIT) prim_zero_tagged_explicit = <class>.new(value, 0, :EXPLICIT)