/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* 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" /** * TODO: U2FTokenManager needs to be renamed to CTAPTokenManager or similar, * because it now contains also CTAP2 functionality (e.g. pinCallback) * See bug 1801643 * nsIU2FTokenManager * * An interface to the U2FTokenManager singleton. * * This should be used only by the WebAuthn browser UI prompts. */ [scriptable, uuid(745e1eac-e449-4342-bca1-ee0e6ead09fc)] interface nsIU2FTokenManager : nsISupports { /** * Resumes the current WebAuthn/U2F transaction if that matches the given * transaction ID. This is used only when direct attestation was requested * and we have to wait for user input to proceed. * * @param aTransactionID : The ID of the transaction to resume. * @param aForceNoneAttestation : The user might enforce none attestation. */ void resumeRegister(in uint64_t aTransactionID, in bool aForceNoneAttestation); /** * Resumes the current WebAuthn transaction. * This is used only when the hardware token requires * user-verification and is thus protected by a PIN. * * @param aPin : PIN the user entered after being prompted. */ void pinCallback(in ACString aPin); /** * Resumes the current WebAuthn transaction if that matches the given * transaction ID. This is used only when the hardware token returned * multiple results for signin in and the user needs to select with which * to log in. * TODO(MS): This is a CTAP2 operation, so U2FTokenManager is probably * not the ideal place for this function. It is a shortcut for now. * * @param aTransactionID : The ID of the transaction to resume. * @param idx : The index of the selected result */ void resumeWithSelectedSignResult(in uint64_t aTransactionID, in uint64_t idx); /** * Cancels the current WebAuthn/U2F transaction if that matches the given * transaction ID. * * @param aTransactionID : The ID of the transaction to cancel. */ void cancel(in uint64_t aTransactionID); };