class WebAuthn::AuthenticatorData
Constants
- FLAGS_LENGTH
- RP_ID_HASH_LENGTH
- SIGN_COUNT_LENGTH
Public Class Methods
deserialize(data)
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 33 def self.deserialize(data) read(data) rescue EOFError raise AuthenticatorDataFormatError end
Public Instance Methods
aaguid()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 86 def aaguid raw_aaguid = attested_credential_data.raw_aaguid unless raw_aaguid == WebAuthn::AuthenticatorData::AttestedCredentialData::ZEROED_AAGUID attested_credential_data.aaguid end end
attested_credential_data()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 75 def attested_credential_data @attested_credential_data ||= AttestedCredentialData.deserialize(trailing_bytes) rescue AttestedCredentialDataFormatError raise AuthenticatorDataFormatError end
attested_credential_data_included?()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 61 def attested_credential_data_included? flags.attested_credential_data_included == 1 end
credential()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 69 def credential if attested_credential_data_included? attested_credential_data.credential end end
data()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 39 def data to_binary_s end
extension_data()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 82 def extension_data @extension_data ||= CBOR.decode(raw_extension_data) end
extension_data_included?()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 65 def extension_data_included? flags.extension_data_included == 1 end
user_flagged?()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 49 def user_flagged? user_present? || user_verified? end
user_present?()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 53 def user_present? flags.user_present == 1 end
user_verified?()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 57 def user_verified? flags.user_verified == 1 end
valid?()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 43 def valid? (!attested_credential_data_included? || attested_credential_data.valid?) && (!extension_data_included? || extension_data) && valid_length? end
Private Instance Methods
attested_credential_data_length()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 110 def attested_credential_data_length if attested_credential_data_included? attested_credential_data.length else 0 end end
base_length()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 126 def base_length RP_ID_HASH_LENGTH + FLAGS_LENGTH + SIGN_COUNT_LENGTH end
extension_data_length()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 118 def extension_data_length if extension_data_included? raw_extension_data.length else 0 end end
raw_extension_data()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 100 def raw_extension_data if extension_data_included? if attested_credential_data_included? trailing_bytes[attested_credential_data.length..-1] else trailing_bytes.snapshot end end end
valid_length?()
click to toggle source
# File lib/webauthn/authenticator_data.rb, line 96 def valid_length? data_length == base_length + attested_credential_data_length + extension_data_length end