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