Sha256: faacef3b6f3f7ba7b2779676353e72113b256e03a39b08a04ccc5d760e272d37

Contents?: true

Size: 717 Bytes

Versions: 104

Compression:

Stored size: 717 Bytes

Contents

module Braintree
  module Digest # :nodoc:
    def self.hexdigest(private_key, string)
      _hmac_sha1(private_key, string)
    end

    def self.secure_compare(left, right)
      return false unless left && right

      left_bytes = left.unpack("C*")
      right_bytes = right.unpack("C*")
      return false if left_bytes.size != right_bytes.size

      result = 0
      left_bytes.zip(right_bytes).each do |left_byte, right_byte|
        result |= left_byte ^ right_byte
      end
      result == 0
    end

    def self._hmac_sha1(key, message)
      key_digest = ::Digest::SHA1.digest(key)
      sha1 = OpenSSL::Digest.new("sha1")
      OpenSSL::HMAC.hexdigest(sha1, key_digest, message.to_s)
    end
  end
end

Version data entries

104 entries across 104 versions & 1 rubygems

Version Path
braintree-2.86.0 lib/braintree/digest.rb
braintree-2.85.0 lib/braintree/digest.rb
braintree-2.84.0 lib/braintree/digest.rb
braintree-2.83.0 lib/braintree/digest.rb
braintree-2.82.0 lib/braintree/digest.rb
braintree-2.81.0 lib/braintree/digest.rb
braintree-2.80.1 lib/braintree/digest.rb
braintree-2.80.0 lib/braintree/digest.rb
braintree-2.79.0 lib/braintree/digest.rb
braintree-2.78.0 lib/braintree/digest.rb
braintree-2.77.0 lib/braintree/digest.rb
braintree-2.76.0 lib/braintree/digest.rb
braintree-2.75.0 lib/braintree/digest.rb
braintree-2.74.0 lib/braintree/digest.rb
braintree-2.73.0 lib/braintree/digest.rb
braintree-2.72.0 lib/braintree/digest.rb
braintree-2.71.0 lib/braintree/digest.rb
braintree-2.70.0 lib/braintree/digest.rb
braintree-2.69.1 lib/braintree/digest.rb
braintree-2.69.0 lib/braintree/digest.rb