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