Module: VirtualAuthenticatorTestHelper
- Included in:
- ManageWebauthnCredentialsTest
- Defined in:
- lib/generators/test_unit/webauthn_authentication/templates/test/test_helpers/virtual_authenticator_test_helper.rb
Instance Method Summary collapse
- #add_credential_to_authenticator(authenticator, user, passkey:) ⇒ Object
- #add_passkey_to_authenticator(authenticator, user) ⇒ Object
- #add_security_key_to_authenticator(authenticator, user) ⇒ Object
- #add_virtual_authenticator ⇒ Object
Instance Method Details
#add_credential_to_authenticator(authenticator, user, passkey:) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/generators/test_unit/webauthn_authentication/templates/test/test_helpers/virtual_authenticator_test_helper.rb', line 18 def add_credential_to_authenticator(authenticator, user, passkey:) credential_id = SecureRandom.random_bytes(16) encoded_credential_id = Base64.urlsafe_encode64(credential_id) key = OpenSSL::PKey.generate_key("ED25519") encoded_private_key = Base64.urlsafe_encode64(key.private_to_der) cose_public_key = COSE::Key::OKP.from_pkey(OpenSSL::PKey.read(key.public_to_der)) cose_public_key.alg = -8 encoded_cose_public_key = Base64.urlsafe_encode64(cose_public_key.serialize) credential_json = { "credentialId" => encoded_credential_id, "isResidentCredential" => passkey, "rpId" => "localhost", "privateKey" => encoded_private_key, "signCount" => 0 } credential_json["userHandle"] = user.webauthn_id if passkey authenticator.add_credential(credential_json) user.webauthn_credentials.create!( nickname: "My Credential", external_id: Base64.urlsafe_encode64(credential_id, padding: false), public_key: encoded_cose_public_key, sign_count: 0, authentication_factor: passkey ? :first_factor : :second_factor ) end |
#add_passkey_to_authenticator(authenticator, user) ⇒ Object
10 11 12 |
# File 'lib/generators/test_unit/webauthn_authentication/templates/test/test_helpers/virtual_authenticator_test_helper.rb', line 10 def add_passkey_to_authenticator(authenticator, user) add_credential_to_authenticator(authenticator, user, passkey: true) end |
#add_security_key_to_authenticator(authenticator, user) ⇒ Object
14 15 16 |
# File 'lib/generators/test_unit/webauthn_authentication/templates/test/test_helpers/virtual_authenticator_test_helper.rb', line 14 def add_security_key_to_authenticator(authenticator, user) add_credential_to_authenticator(authenticator, user, passkey: false) end |
#add_virtual_authenticator ⇒ Object
2 3 4 5 6 7 8 |
# File 'lib/generators/test_unit/webauthn_authentication/templates/test/test_helpers/virtual_authenticator_test_helper.rb', line 2 def add_virtual_authenticator = ::Selenium::WebDriver::VirtualAuthenticatorOptions.new .user_verification = true .user_verified = true .resident_key = true page.driver.browser.add_virtual_authenticator() end |