The parent class for all primitive encodings. Attributes are the same as for ASN1Data
, with the addition of tagging. Primitive
values can never be encoded with indefinite length form, thus it is not possible to set the indefinite_length attribute for Primitive
and its sub-classes.
Primitive
sub-classes and their mapping to Ruby classes OpenSSL::ASN1::EndOfContent
<=> value is always nil
OpenSSL::ASN1::Boolean
<=> value is true
or false
OpenSSL::ASN1::Integer
<=> value is an OpenSSL::BN
OpenSSL::ASN1::BitString
<=> value is a String
OpenSSL::ASN1::OctetString <=> value is a String
OpenSSL::ASN1::Null <=> value is always nil
OpenSSL::ASN1::Object
<=> value is a String
OpenSSL::ASN1::Enumerated
<=> value is an OpenSSL::BN
OpenSSL::ASN1::UTF8String <=> value is a String
OpenSSL::ASN1::NumericString <=> value is a String
OpenSSL::ASN1::PrintableString <=> value is a String
OpenSSL::ASN1::T61String <=> value is a String
OpenSSL::ASN1::VideotexString <=> value is a String
OpenSSL::ASN1::IA5String <=> value is a String
OpenSSL::ASN1::UTCTime <=> value is a Time
OpenSSL::ASN1::GeneralizedTime <=> value is a Time
OpenSSL::ASN1::GraphicString <=> value is a String
OpenSSL::ASN1::ISO64String <=> value is a String
OpenSSL::ASN1::GeneralString <=> value is a String
OpenSSL::ASN1::UniversalString <=> value is a String
OpenSSL::ASN1::BMPString <=> value is a String
OpenSSL::ASN1::BitString
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
NOTE: While OpenSSL::ASN1::ObjectId.new
will allocate a new ObjectId
, it is not typically allocated this way, but rather that are received from parsed ASN1
encodings.
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 a String
, e.g. “1.2.3.4.5”
short_name: alias for sn.
long_name: alias for ln.
With the Exception
of OpenSSL::ASN1::EndOfContent
, each Primitive
class constructor takes at least one parameter, the value.
EndOfContent
eoc = OpenSSL::ASN1::EndOfContent.new
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)
This is the generic exception for OpenSSL::Engine
related errors
An OpenSSL::OCSP::SingleResponse
represents an OCSP
SingleResponse
structure, which contains the basic information of the status of the certificate.
Immutable and read-only representation of a timestamp token info from a Response
.
Predefined Keys
Raised if you try to access a buffer slice which no longer references a valid memory range of the underlying source.
Raised if the mask given to a binary operation is invalid, e.g. zero length or overlaps the target buffer.
Class for representing WebDAV method PROPFIND:
require 'net/http' uri = URI('http://example.com') hostname = uri.hostname # => "example.com" req = Net::HTTP::Propfind.new(uri) # => #<Net::HTTP::Propfind PROPFIND> res = Net::HTTP.start(hostname) do |http| http.request(req) end
See Request Headers.
Related:
Net::HTTP#propfind
: sends PROPFIND
request, returns response object.
Ignored newlines can occasionally have a LABEL state attached to them, so we compare the state differently here.
The result of parsing a pack template.
The :line tracepoint event gets fired whenever the Ruby VM encounters an expression on a new line. The types of expressions that can trigger this event are:
if statements
unless statements
nodes that are children of statements lists
In order to keep track of the newlines, we have a list of offsets that come back from the parser. We assign these offsets to the first nodes that we find in the tree that are on those lines.
Note that the logic in this file should be kept in sync with the Java MarkNewlinesVisitor, since that visitor is responsible for marking the newlines for JRuby/TruffleRuby.
This file is autoloaded only when ‘mark_newlines!` is called, so the re-opening of the various nodes in this file will only be performed in that case. We do that to avoid storing the extra `@newline` instance variable on every node if we don’t need it.