module GpWebpay::OpensslSecurity

Public Class Methods

generate_digest(configuration, digest_text) click to toggle source
# File lib/gp_webpay/openssl_security.rb, line 3
def self.generate_digest(configuration, digest_text)
  private_pem = OpenSSL::PKey::RSA.new(configuration.merchant_pem, configuration.merchant_password)
  sign = private_pem.sign(OpenSSL::Digest.new('SHA1'), digest_text)
  Base64.encode64(sign).gsub("\n", '')
end
validate_digests(configuration, data) click to toggle source
# File lib/gp_webpay/openssl_security.rb, line 9
def self.validate_digests(configuration, data)
  public_pem = OpenSSL::X509::Certificate.new(configuration.gpe_pem).public_key
  data.all? do |received, expected|
    public_pem.verify(OpenSSL::Digest.new('SHA1'), Base64.decode64(received), expected)
  end
end