Class: OpenSSL::ASN1::Primitive
- Inherits:
-
Object
- Object
- OpenSSL::ASN1::Primitive
- Defined in:
- ossl_asn1.c
Overview
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)