class SesameOs2::Sign

Attributes

secret_key[R]

Public Class Methods

create(secret_key:) click to toggle source
# File lib/sesame_os2/sign.rb, line 8
def create(secret_key:)
  new(secret_key: secret_key).create
end
new(secret_key:) click to toggle source
# File lib/sesame_os2/sign.rb, line 3
def initialize(secret_key:)
  @secret_key = secret_key
end

Public Instance Methods

create() click to toggle source
# File lib/sesame_os2/sign.rb, line 13
def create
  digest.unpack1("H*")
end

Private Instance Methods

cmac() click to toggle source
# File lib/sesame_os2/sign.rb, line 29
def cmac
  Digest::CMAC.new(OpenSSL::Cipher.new("aes-128-cbc"), key).tap do |c|
    c.update([message].pack("H*"))
  end
end
digest() click to toggle source
# File lib/sesame_os2/sign.rb, line 35
def digest
  cmac.digest
end
key() click to toggle source
# File lib/sesame_os2/sign.rb, line 25
def key
  [secret_key].pack("H*")
end
message() click to toggle source
# File lib/sesame_os2/sign.rb, line 21
def message
  [Time.now.to_i].pack("i*").unpack1("H*")[2, 8]
end