class CyberSource::TokenVerification

Public Instance Methods

CamelCasetoUnderscore(str) click to toggle source

Converting response field from camelCase to Underscore

# File lib/cybersource_rest_client/utilities/flex/token_verification.rb, line 34
def CamelCasetoUnderscore(str)
    str.gsub(/::/, '/').
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    gsub(/([a-z\d])([A-Z])/,'\1_\2').
    tr("-", "_").
    downcase
end
verifyToken(public_key, post_param) click to toggle source
# File lib/cybersource_rest_client/utilities/flex/token_verification.rb, line 3
def verifyToken(public_key, post_param)
    post_param = JSON.parse(post_param)
    signed_fields = Array.new
    get_signed_fields =  Array.new
    signed_values = ""
    signature = ""
    if post_param['signedFields'].to_s.empty?
    raise StandardError.new("Missing required field: signed_fields")
    else
    signed_fields = post_param['signedFields'].split(',')
    end
    signed_fields.each do |value|
    signed_values << ','
    signed_values << post_param[value].to_s
    end
    if signed_values.length > 0
    signed_values.slice!(0)
    end
    if post_param['signature'].to_s.empty?
    raise StandardError.new("Missing required field: signature")
    else
    signature = post_param['signature']
    end
    string_to_pem = Base64.decode64(public_key)
    public_key_to_pem = OpenSSL::PKey::RSA.new(string_to_pem)
    verify = public_key_to_pem.verify(OpenSSL::Digest::SHA512.new, Base64.decode64(signature), signed_values)
rescue StandardError => err 
    puts err.message
end