summaryrefslogtreecommitdiffstats
path: root/security/manager/ssl/nsIU2FToken.idl
diff options
context:
space:
mode:
Diffstat (limited to 'security/manager/ssl/nsIU2FToken.idl')
-rw-r--r--security/manager/ssl/nsIU2FToken.idl66
1 files changed, 66 insertions, 0 deletions
diff --git a/security/manager/ssl/nsIU2FToken.idl b/security/manager/ssl/nsIU2FToken.idl
new file mode 100644
index 000000000..119c18593
--- /dev/null
+++ b/security/manager/ssl/nsIU2FToken.idl
@@ -0,0 +1,66 @@
+/* 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"
+
+interface nsIArray;
+
+/**
+ * Interface used to interact with U2F Token devices
+ */
+[scriptable, uuid(5778242f-1f42-47a2-b514-fa1adde2d904)]
+interface nsIU2FToken : nsISupports {
+ /**
+ * Is this token compatible with the provided version?
+ *
+ * @param version The offered version to test
+ * @return True if the offered version is compatible
+ */
+ void isCompatibleVersion(in AString version, [retval] out boolean result);
+
+ /**
+ * Return whether the provided KeyHandle belongs to this Token
+ *
+ * @param keyHandle Key Handle to evaluate.
+ * @return True if the Key Handle is ours.
+ */
+ void isRegistered([array, size_is(keyHandleLen)] in octet keyHandle,
+ in uint32_t keyHandleLen,
+ [retval] out boolean result);
+
+ /**
+ * Generates a public/private keypair for the provided application
+ * and challenge, returning the pubkey, challenge response, and
+ * key handle in the registration data.
+ *
+ * @param application The FIDO Application data to associate with the key.
+ * @param challenge The Challenge to satisfy in the response.
+ * @param registration An array containing the pubkey, challenge response,
+ * and key handle.
+ */
+ void register([array, size_is(applicationLen)] in octet application,
+ in uint32_t applicationLen,
+ [array, size_is(challengeLen)] in octet challenge,
+ in uint32_t challengeLen,
+ [array, size_is(registrationLen)] out octet registration,
+ out uint32_t registrationLen);
+
+ /**
+ * Creates a signature over the "param" arguments using the private key
+ * provided in the key handle argument.
+ *
+ * @param application The FIDO Application data to associate with the key.
+ * @param challenge The Challenge to satisfy in the response.
+ * @param keyHandle The Key Handle opaque object to use.
+ * @param signature The resulting signature.
+ */
+ void sign([array, size_is(applicationLen)] in octet application,
+ in uint32_t applicationLen,
+ [array, size_is(challengeLen)] in octet challenge,
+ in uint32_t challengeLen,
+ [array, size_is(keyHandleLen)] in octet keyHandle,
+ in uint32_t keyHandleLen,
+ [array, size_is(signatureLen)] out octet signature,
+ out uint32_t signatureLen);
+};