diff options
Diffstat (limited to 'security/manager/ssl/nsIU2FToken.idl')
-rw-r--r-- | security/manager/ssl/nsIU2FToken.idl | 66 |
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); +}; |