class Net::HTTP::Signature::Signer

Public Class Methods

new(request:, algorithm:, secret:) click to toggle source
# File lib/net/http/signature/signer.rb, line 5
def initialize(request:, algorithm:, secret:)
  @request = request
  @algorithm = algorithm
  @secret = secret

  unless @algorithm =~ /.+-.+/
    fail ArgumentError, "Invalid algorithm format: {{key}}-{{digester}}"
  end

  unless key
    fail ArgumentError, "Crypto scheme not supported"
  end
end

Public Instance Methods

algorithm() click to toggle source
# File lib/net/http/signature/signer.rb, line 19
def algorithm
  @algorithm
end
to_s() click to toggle source
# File lib/net/http/signature/signer.rb, line 23
def to_s
  Base64.encode64(key.update(request).digest)
end

Private Instance Methods

digester() click to toggle source
# File lib/net/http/signature/signer.rb, line 41
        def digester
  algorithm.split("-").last.upcase
end
key() click to toggle source
# File lib/net/http/signature/signer.rb, line 35
        def key
  case algorithm.split("-").first
  when "hmac" then OpenSSL::HMAC.new(secret, digester)
  end
end
request() click to toggle source
# File lib/net/http/signature/signer.rb, line 31
        def request
  @request.to_s
end
secret() click to toggle source
# File lib/net/http/signature/signer.rb, line 27
        def secret
  @secret
end