mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 13:21:05 +00:00
3b26eb3c70
Differential Revision: https://phabricator.services.mozilla.com/D189846
135 lines
4.1 KiB
JavaScript
135 lines
4.1 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
|
|
|
|
const lazy = {};
|
|
|
|
XPCOMUtils.defineLazyServiceGetter(
|
|
lazy,
|
|
"webauthnService",
|
|
"@mozilla.org/webauthn/service;1",
|
|
"nsIWebAuthnService"
|
|
);
|
|
|
|
/** @namespace */
|
|
export const webauthn = {};
|
|
|
|
/**
|
|
* Add a virtual authenticator.
|
|
*
|
|
* @param {string} protocol one of "ctap1/u2f", "ctap2", "ctap2_1"
|
|
* @param {string} transport one of "usb", "nfc", "ble", "smart-card",
|
|
* "hybrid", "internal"
|
|
* @param {boolean} hasResidentKey
|
|
* @param {boolean} hasUserVerification
|
|
* @param {boolean} isUserConsenting
|
|
* @param {boolean} isUserVerified
|
|
* @returns {id} the id of the added authenticator
|
|
*/
|
|
webauthn.addVirtualAuthenticator = function (
|
|
protocol,
|
|
transport,
|
|
hasResidentKey,
|
|
hasUserVerification,
|
|
isUserConsenting,
|
|
isUserVerified
|
|
) {
|
|
return lazy.webauthnService.addVirtualAuthenticator(
|
|
protocol,
|
|
transport,
|
|
hasResidentKey,
|
|
hasUserVerification,
|
|
isUserConsenting,
|
|
isUserVerified
|
|
);
|
|
};
|
|
|
|
/**
|
|
* Removes a virtual authenticator.
|
|
*
|
|
* @param {id} authenticatorId the id of the virtual authenticator
|
|
*/
|
|
webauthn.removeVirtualAuthenticator = function (authenticatorId) {
|
|
lazy.webauthnService.removeVirtualAuthenticator(authenticatorId);
|
|
};
|
|
|
|
/**
|
|
* Adds a credential to a previously-added virtual authenticator.
|
|
*
|
|
* @param {id} authenticatorId the id of the virtual authenticator
|
|
* @param {string} credentialId a probabilistically-unique byte sequence
|
|
* identifying a public key credential source and its
|
|
* authentication assertions (encoded using Base64url
|
|
* Encoding).
|
|
* @param {boolean} isResidentCredential if set to true, a client-side
|
|
* discoverable credential is created. If set to false, a
|
|
* server-side credential is created instead.
|
|
* @param {string} rpId The Relying Party ID the credential is scoped to.
|
|
* @param {string} privateKey An asymmetric key package containing a single
|
|
* private key per RFC5958, encoded using Base64url Encoding.
|
|
* @param {string} userHandle The userHandle associated to the credential
|
|
* encoded using Base64url Encoding.
|
|
* @param {number} signCount The initial value for a signature counter
|
|
* associated to the public key credential source.
|
|
*/
|
|
webauthn.addCredential = function (
|
|
authenticatorId,
|
|
credentialId,
|
|
isResidentCredential,
|
|
rpId,
|
|
privateKey,
|
|
userHandle,
|
|
signCount
|
|
) {
|
|
lazy.webauthnService.addCredential(
|
|
authenticatorId,
|
|
credentialId,
|
|
isResidentCredential,
|
|
rpId,
|
|
privateKey,
|
|
userHandle,
|
|
signCount
|
|
);
|
|
};
|
|
|
|
/**
|
|
* Gets all credentials from a virtual authenticator.
|
|
*
|
|
* @param {id} authenticatorId the id of the virtual authenticator
|
|
* @returns {object} the credentials on the authenticator
|
|
*/
|
|
webauthn.getCredentials = function (authenticatorId) {
|
|
return lazy.webauthnService.getCredentials(authenticatorId);
|
|
};
|
|
|
|
/**
|
|
* Removes a credential from a virtual authenticator.
|
|
*
|
|
* @param {id} authenticatorId the id of the virtual authenticator
|
|
* @param {string} credentialId the id of the credential
|
|
*/
|
|
webauthn.removeCredential = function (authenticatorId, credentialId) {
|
|
lazy.webauthnService.removeCredential(authenticatorId, credentialId);
|
|
};
|
|
|
|
/**
|
|
* Removes all credentials from a virtual authenticator.
|
|
*
|
|
* @param {id} authenticatorId the id of the virtual authenticator
|
|
*/
|
|
webauthn.removeAllCredentials = function (authenticatorId) {
|
|
lazy.webauthnService.removeAllCredentials(authenticatorId);
|
|
};
|
|
|
|
/**
|
|
* Sets the "isUserVerified" bit on a virtual authenticator.
|
|
*
|
|
* @param {id} authenticatorId the id of the virtual authenticator
|
|
* @param {bool} isUserVerified the value to set the "isUserVerified" bit to
|
|
*/
|
|
webauthn.setUserVerified = function (authenticatorId, isUserVerified) {
|
|
lazy.webauthnService.setUserVerified(authenticatorId, isUserVerified);
|
|
};
|