DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (5350524bb654)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 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);
};