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