Spec-Zone.ru › Ruby 3.4
  1. OpenSSL::
  2. ASN1::
  3. TaggedASN1Data

module OpenSSL::ASN1::TaggedASN1Data

Атрибуты

tagging [RW]

Может использоваться в качестве подсказки для кодирования значения — неявно или явно — путём установки в :IMPLICIT или :EXPLICIT. tagging не устанавливается при разборе структуры ASN.1 с помощью OpenSSL::ASN1.decode.

Публичные методы класса

OpenSSL::ASN1::Primitive.new(value [, tag, tagging, tag_class ]) → Primitive Показать исходный код
# 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 не указан, по умолчанию используется тег UNIVERSAL, соответствующий подклассу 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–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API