зеркало из https://github.com/mozilla/gecko-dev.git
67 строки
2.5 KiB
Plaintext
67 строки
2.5 KiB
Plaintext
/* 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);
|
|
};
|