class COSE::Sign1

Constants

CONTEXT

Attributes

payload[R]
signature[R]

Public Class Methods

keyword_arguments_for_initialize(decoded) click to toggle source
# File lib/cose/sign1.rb, line 13
def self.keyword_arguments_for_initialize(decoded)
  { payload: decoded[0], signature: decoded[1] }
end
new(payload:, signature:, **keyword_arguments) click to toggle source
Calls superclass method COSE::SecurityMessage::new
# File lib/cose/sign1.rb, line 21
def initialize(payload:, signature:, **keyword_arguments)
  super(**keyword_arguments)

  @payload = payload
  @signature = signature
end
tag() click to toggle source
# File lib/cose/sign1.rb, line 17
def self.tag
  18
end

Public Instance Methods

verify(key, external_aad = nil) click to toggle source
# File lib/cose/sign1.rb, line 28
def verify(key, external_aad = nil)
  if key.kid == headers.kid
    algorithm.verify(key, signature, verification_data(external_aad))
  else
    raise(COSE::Error, "Non matching kid")
  end
end

Private Instance Methods

verification_data(external_aad = nil) click to toggle source
# File lib/cose/sign1.rb, line 38
def verification_data(external_aad = nil)
  CBOR.encode([CONTEXT, serialized_map(protected_headers), external_aad || ZERO_LENGTH_BIN_STRING, payload])
end