class WebAuthn::ClientData
Constants
- VALID_TOKEN_BINDING_STATUSES
Attributes
client_data_json[R]
Public Class Methods
new(client_data_json)
click to toggle source
# File lib/webauthn/client_data.rb, line 14 def initialize(client_data_json) @client_data_json = client_data_json end
Public Instance Methods
challenge()
click to toggle source
# File lib/webauthn/client_data.rb, line 22 def challenge WebAuthn.standard_encoder.decode(data["challenge"]) end
hash()
click to toggle source
# File lib/webauthn/client_data.rb, line 42 def hash OpenSSL::Digest::SHA256.digest(client_data_json) end
origin()
click to toggle source
# File lib/webauthn/client_data.rb, line 26 def origin data["origin"] end
token_binding()
click to toggle source
# File lib/webauthn/client_data.rb, line 30 def token_binding data["tokenBinding"] end
type()
click to toggle source
# File lib/webauthn/client_data.rb, line 18 def type data["type"] end
valid_token_binding_format?()
click to toggle source
# File lib/webauthn/client_data.rb, line 34 def valid_token_binding_format? if token_binding token_binding.is_a?(Hash) && VALID_TOKEN_BINDING_STATUSES.include?(token_binding["status"]) else true end end
Private Instance Methods
data()
click to toggle source
# File lib/webauthn/client_data.rb, line 50 def data @data ||= begin if client_data_json JSON.parse(client_data_json) else raise ClientDataMissingError, "Client Data JSON is missing" end end end