module Signed

module for signing string

can create and verify signature with expiry

Constants

VERSION

Public Instance Methods

create_signature(data, secret, expiry: nil, algo: 'SHA256') click to toggle source

signature format is signature(“#{data}:#{expiry}:#{secret}”):base64(secondary)

# File lib/signed.rb, line 13
def create_signature(data, secret, expiry: nil, algo: 'SHA256')
  expiry = 'infinit' unless expiry
  signature = Signature.sign_with(algo, "#{data}:#{expiry}:#{secret}")

  "#{signature}:#{Base64.encode64(expiry.to_s)}"
end
verify_signature(data, signature, secret, algo: 'SHA256') click to toggle source
# File lib/signed.rb, line 20
def verify_signature(data, signature, secret, algo: 'SHA256')
  sign = signature.split(':')
  return false if sign.count < 2
  hash = sign[0]
  expiry = Base64.decode64(sign[1])
  return false if Utils.check_expiry(expiry)
  Signature.verify_hash(algo, hash, "#{data}:#{expiry}:#{secret}")
end