class COSE::Mac0

Constants

CONTEXT

Attributes

payload[R]
tag[R]

Public Class Methods

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

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

Public Instance Methods

verify(key, external_aad = nil) click to toggle source
# File lib/cose/mac0.rb, line 28
def verify(key, external_aad = nil)
  tag == algorithm.mac(key.k, data(external_aad)) || raise(COSE::Error, "Mac0 verification failed")
end

Private Instance Methods

context() click to toggle source
# File lib/cose/mac0.rb, line 38
def context
  CONTEXT
end
data(external_aad = nil) click to toggle source
# File lib/cose/mac0.rb, line 34
def data(external_aad = nil)
  CBOR.encode([context, serialized_map(protected_headers), external_aad || zero_length_bin_string, payload])
end