Skip to content

Instantly share code, notes, and snippets.

@elricstorm
Created June 19, 2011 22:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elricstorm/1034839 to your computer and use it in GitHub Desktop.
Save elricstorm/1034839 to your computer and use it in GitHub Desktop.
def callback_test
require 'openssl'
require 'base64'
# Pull the original signature
@signature = params[:signature]
# Capture all of our parameters
@parameters = params
# delete signature, action, and controller params
@parameters.delete('action')
@parameters.delete('controller')
@parameters.delete('signature')
@parameters['signature'] = ''
# Rebuild URL
rebuilturl = "?"
firstelement = true
@parameters.sort.each do |p|
if firstelement == true
rebuilturl << "#{p[0].to_s}=#{p[1].to_s}"
firstelement = false
else
rebuilturl << '&' << "#{p[0].to_s}=#{p[1].to_s}"
end
end
@rebuilturl = rebuilturl
# Verify Signature
publickeyid = OpenSSL::PKey::RSA.new(File.read("#{Rails.root}/certs/zong.pem"))
@verified = publickeyid.verify( OpenSSL::Digest::SHA1.new, Base64.decode64(@signature), @rebuilturl )
if @verified == true
return true
else
return false
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment