summaryrefslogtreecommitdiffstats
path: root/dom/webauthn/nsIU2FTokenManager.idl
diff options
context:
space:
mode:
Diffstat (limited to 'dom/webauthn/nsIU2FTokenManager.idl')
-rw-r--r--dom/webauthn/nsIU2FTokenManager.idl63
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);
+};