12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /* 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);
- };
|