Class: CrystalApi::MessageVerifier

Inherits:
Object
  • Object
show all
Includes:
HmacRequestSigning
Defined in:
lib/crystal_api/message_verifier.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from HmacRequestSigning

#canonicalize_params, #hmac_sha256, #inject_signature_header, #request_signature, #serialized_params, #sign_params

Constructor Details

#initialize(shared_secret, request) ⇒ MessageVerifier

Returns a new instance of MessageVerifier.



7
8
9
10
# File 'lib/crystal_api/message_verifier.rb', line 7

def initialize(shared_secret, request)
  @shared_secret = shared_secret
  @request = request
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



5
6
7
# File 'lib/crystal_api/message_verifier.rb', line 5

def request
  @request
end

#shared_secretObject (readonly)

Returns the value of attribute shared_secret.



5
6
7
# File 'lib/crystal_api/message_verifier.rb', line 5

def shared_secret
  @shared_secret
end

Instance Method Details

#expected_signatureObject



16
17
18
19
20
21
22
23
24
# File 'lib/crystal_api/message_verifier.rb', line 16

def expected_signature
  rack_request = Rack::Request.new(request.env)

  sign_params(rack_request.request_method,
              rack_request.host,
              rack_request.path,
              shared_secret,
              rack_request.params)
end

#verified?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/crystal_api/message_verifier.rb', line 12

def verified?
  request_signature(request) == expected_signature
end