Module: PayHyper::Security

Defined in:
lib/payhyper/security.rb

Class Method Summary collapse

Class Method Details

._sign(key, data) ⇒ Object



4
5
6
# File 'lib/payhyper/security.rb', line 4

def self._sign(key, data)
  OpenSSL::HMAC.digest(OpenSSL::Digest.new('sha1'), key, data)
end

.secure_compare(a, b) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/payhyper/security.rb', line 12

def self.secure_compare(a, b)
  return false if a.nil? || b.nil? || a.length.zero? || b.length.zero? || a.bytesize != b.bytesize
  l = a.unpack "C#{a.bytesize}"
  res = 0
  b.each_byte { |byte| res |= byte ^ l.shift }
  res == 0
end

.sign(key, data) ⇒ Object



8
9
10
# File 'lib/payhyper/security.rb', line 8

def self.sign(key, data)
  Base64.encode64(_sign(key, data)).gsub("\n", "")
end