Initial commit
This commit is contained in:
17
app/services/api_keys_verifier.rb
Normal file
17
app/services/api_keys_verifier.rb
Normal file
@@ -0,0 +1,17 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class APIKeysVerifier
|
||||
def initialize(params = {})
|
||||
@kid = params[:kid]
|
||||
@signature = params[:signature]
|
||||
@nonce = params[:nonce] || nil
|
||||
@api_key = APIKey.find_by!(kid: @kid)
|
||||
end
|
||||
|
||||
def verify_hmac_payload?
|
||||
data = @nonce.to_s + @kid
|
||||
algorithm = 'SHA' + @api_key.algorithm[2..4]
|
||||
true_signature = OpenSSL::HMAC.hexdigest(algorithm, @api_key.secret, data)
|
||||
true_signature == @signature
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user