class WebAuthn::FakeAuthenticator::AttestationObject

Attributes

attested_credential_data[R]
client_data_hash[R]
credential_id[R]
credential_key[R]
extensions[R]
rp_id_hash[R]
sign_count[R]
user_present[R]
user_verified[R]

Public Class Methods

new( client_data_hash:, rp_id_hash:, credential_id:, credential_key:, user_present: true, user_verified: false, attested_credential_data: true, sign_count: 0, extensions: nil ) click to toggle source
# File lib/webauthn/fake_authenticator/attestation_object.rb, line 9
def initialize(
  client_data_hash:,
  rp_id_hash:,
  credential_id:,
  credential_key:,
  user_present: true,
  user_verified: false,
  attested_credential_data: true,
  sign_count: 0,
  extensions: nil
)
  @client_data_hash = client_data_hash
  @rp_id_hash = rp_id_hash
  @credential_id = credential_id
  @credential_key = credential_key
  @user_present = user_present
  @user_verified = user_verified
  @attested_credential_data = attested_credential_data
  @sign_count = sign_count
  @extensions = extensions
end

Public Instance Methods

serialize() click to toggle source
# File lib/webauthn/fake_authenticator/attestation_object.rb, line 31
def serialize
  CBOR.encode(
    "fmt" => "none",
    "attStmt" => {},
    "authData" => authenticator_data.serialize
  )
end

Private Instance Methods

authenticator_data() click to toggle source
# File lib/webauthn/fake_authenticator/attestation_object.rb, line 53
def authenticator_data
  @authenticator_data ||=
    begin
      credential_data =
        if attested_credential_data
          { id: credential_id, public_key: credential_key.public_key }
        end

      AuthenticatorData.new(
        rp_id_hash: rp_id_hash,
        credential: credential_data,
        user_present: user_present,
        user_verified: user_verified,
        sign_count: 0,
        extensions: extensions
      )
    end
end