module Cpay::Utils

Public Instance Methods

aes_decrypt(data, key) click to toggle source
# File lib/cpay.rb, line 45
def aes_decrypt(data, key)
  aes = OpenSSL::Cipher.new('AES-128-ECB')
  aes.decrypt
  aes.key = key
  aes.update(Base64.decode64(data)) + aes.final
end
aes_encrypt(data, key) click to toggle source
# File lib/cpay.rb, line 37
def aes_encrypt(data, key)
  cipher = OpenSSL::Cipher.new 'AES-128-ECB'
  cipher.encrypt
  cipher.key = key
  txt = cipher.update(data) << cipher.final
  Base64.encode64(txt).delete("\n").delete("\r")
end
rsa_decrypt_by_pri(data, private_key) click to toggle source
# File lib/cpay.rb, line 32
def rsa_decrypt_by_pri(data, private_key)
  pri = OpenSSL::PKey::RSA.new private_key
  pri.private_decrypt(Base64.decode64(data))
end
rsa_encrypt_by_pub(data, public_key) click to toggle source
# File lib/cpay.rb, line 27
def rsa_encrypt_by_pub(data, public_key)
  pub = OpenSSL::PKey::RSA.new public_key
  Base64.encode64(pub.public_encrypt(data)).delete("\n").delete("\r")
end
rsa_sign(data, private_key) click to toggle source
# File lib/cpay.rb, line 14
def rsa_sign(data, private_key)
  pri = OpenSSL::PKey::RSA.new private_key
  sign = pri.sign('sha1', data.force_encoding('utf-8'))
  Base64.encode64(sign).delete("\n").delete("\r")
end
rsa_verify(data, sign, public_key) click to toggle source
# File lib/cpay.rb, line 20
def rsa_verify(data, sign, public_key)
  pub = OpenSSL::PKey::RSA.new public_key
  digester = OpenSSL::Digest::SHA1.new
  sign = Base64.decode64(sign)
  pub.verify(digester, sign, data)
end
url_decode(str) click to toggle source
# File lib/cpay.rb, line 52
def url_decode(str)
  str.gsub!(/%[a-fA-F0-9]{2}/) {|x| x = x[1..2].hex.chr}
end