модуль OpenSSL::ASN1::TaggedASN1Data
Атрибуты
Может использоваться как подсказка для кодирования значения неявно или явно, установив его либо в :IMPLICIT, либо в :EXPLICIT. tagging не устанавливается, когда структура ASN.1 парсится с помощью OpenSSL::ASN1.decode.
Публичные методы класса
Исходный код
# File ext/openssl/lib/openssl/asn1.rb, line 107
def initialize(value, tag = nil, tagging = nil, tag_class = nil)
tag ||= ASN1.take_default_tag(self.class)
raise ASN1Error, "must specify tag number" unless tag
if tagging
raise ASN1Error, "invalid tagging method" unless tagging.is_a?(Symbol)
end
tag_class ||= tagging ? :CONTEXT_SPECIFIC : :UNIVERSAL
raise ASN1Error, "invalid tag class" unless tag_class.is_a?(Symbol)
@tagging = tagging
super(value ,tag, tag_class)
end value: является обязательным.
tag: необязательный, может быть указан для помеченных значений. Если tag не указан, используется универсальный тег, соответствующий подклассу Primitive по умолчанию.
tagging: может использоваться как подсказка кодирования для кодирования значения явно или неявно, см. ASN1 для возможных значений.
tag_class: если tag и tagging nil, то он устанавливается в :UNIVERSAL по умолчанию. Если установлен либо tag, либо tagging, то :CONTEXT_SPECIFIC используется в качестве значения по умолчанию. Для возможных значений см. ASN1.
Пример
int = OpenSSL::ASN1::Integer.new(42) zero_tagged_int = OpenSSL::ASN1::Integer.new(42, 0, :IMPLICIT) private_explicit_zero_tagged_int = OpenSSL::ASN1::Integer.new(42, 0, :EXPLICIT, :PRIVATE)
Ruby Core © 1993–2024 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.