module Bifubao::Sign
Public Class Methods
generate(params)
click to toggle source
# File lib/bifubao/sign.rb, line 12 def self.generate(params) Base64.encode64(Bifubao.private_key.sign(OpenSSL::Digest::SHA1.new, to_sign_data(params))) end
to_sign_data(params)
click to toggle source
# File lib/bifubao/sign.rb, line 6 def self.to_sign_data(params) params.sort.map do |key, value| "#{key}#{value}" end.join('') end
verify?(params)
click to toggle source
# File lib/bifubao/sign.rb, line 16 def self.verify?(params) params = Bifubao::Utils.stringify_keys(params) params.delete '_signature_sha1_' sign = params.delete('_signature_') Bifubao::OFFICIAL_PUBLIC_KEY.verify(OpenSSL::Digest::SHA1.new, Base64.decode64(sign), to_sign_data(params)) end