Class: Fido2Client::Client
- Inherits:
- 
      Object
      
        - Object
- Fido2Client::Client
 
- Defined in:
- lib/fido2_client.rb
Instance Method Summary collapse
- #get_assertion(passkey, challenge) ⇒ Object
- 
  
    
      #initialize  ⇒ Client 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Client. 
Constructor Details
#initialize ⇒ Client
Returns a new instance of Client.
| 11 12 13 14 | # File 'lib/fido2_client.rb', line 11 def initialize @origin = "https://app.simplicity.kiwi" @rp_id = "simplicity.kiwi" end | 
Instance Method Details
#get_assertion(passkey, challenge) ⇒ Object
| 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | # File 'lib/fido2_client.rb', line 16 def get_assertion(passkey, challenge) collected_client_data = { type: "webauthn.get", challenge: challenge, origin: @origin, crossOrigin: false, } client_data_json = JSON.dump(collected_client_data) client_data_hash = Digest::SHA256.digest(client_data_json) # Assertion auth_data = generate_auth_data private_key = parse_private_key(passkey.keyAlgorithm, passkey.keyCurve, passkey.keyValue) signature = generate_signature(auth_data, client_data_hash, private_key) Assertion.new( authenticator_data: Base64.urlsafe_encode64(auth_data.pack("c*"), padding: false), client_data_json: Base64.urlsafe_encode64(client_data_json, padding: false), credential_id: Base64.urlsafe_encode64(guid_to_raw_format(passkey.credentialId), padding: false), user_handle: passkey.userHandle, signature: Base64.urlsafe_encode64(signature, padding: false), ) end |