Mypal/security/manager/ssl/nsIU2FToken.idl

67 lines
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);
};