diff options
Diffstat (limited to 'dom/webauthn/nsIU2FTokenManager.idl')
-rw-r--r-- | dom/webauthn/nsIU2FTokenManager.idl | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/dom/webauthn/nsIU2FTokenManager.idl b/dom/webauthn/nsIU2FTokenManager.idl new file mode 100644 index 0000000000..685342d9eb --- /dev/null +++ b/dom/webauthn/nsIU2FTokenManager.idl @@ -0,0 +1,63 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* 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/. */ + +#include "nsISupports.idl" + +/** + * TODO: U2FTokenManager needs to be renamed to CTAPTokenManager or similar, + * because it now contains also CTAP2 functionality (e.g. pinCallback) + * See bug 1801643 + * nsIU2FTokenManager + * + * An interface to the U2FTokenManager singleton. + * + * This should be used only by the WebAuthn browser UI prompts. + */ + +[scriptable, uuid(745e1eac-e449-4342-bca1-ee0e6ead09fc)] +interface nsIU2FTokenManager : nsISupports +{ + /** + * Resumes the current WebAuthn/U2F transaction if that matches the given + * transaction ID. This is used only when direct attestation was requested + * and we have to wait for user input to proceed. + * + * @param aTransactionID : The ID of the transaction to resume. + * @param aForceNoneAttestation : The user might enforce none attestation. + */ + void resumeRegister(in uint64_t aTransactionID, + in bool aForceNoneAttestation); + + /** + * Resumes the current WebAuthn transaction. + * This is used only when the hardware token requires + * user-verification and is thus protected by a PIN. + * + * @param aPin : PIN the user entered after being prompted. + */ + void pinCallback(in ACString aPin); + + /** + * Resumes the current WebAuthn transaction if that matches the given + * transaction ID. This is used only when the hardware token returned + * multiple results for signin in and the user needs to select with which + * to log in. + * TODO(MS): This is a CTAP2 operation, so U2FTokenManager is probably + * not the ideal place for this function. It is a shortcut for now. + * + * @param aTransactionID : The ID of the transaction to resume. + * @param idx : The index of the selected result + */ + void resumeWithSelectedSignResult(in uint64_t aTransactionID, + in uint64_t idx); + + /** + * Cancels the current WebAuthn/U2F transaction if that matches the given + * transaction ID. + * + * @param aTransactionID : The ID of the transaction to cancel. + */ + void cancel(in uint64_t aTransactionID); +}; |