mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 05:15:45 +00:00
907f818103
This patch adds a Cancel() method to the U2FTokenTransport interface so that we can forward request cancellations to the actual token manager implementation. The current softtoken doesn't need that as it processes API calls synchronously, USB HID tokens however need a cancellation mechanism. The SendRequestCancel() call has been removed from WebAuthnManager::Cancel() as we're currently only calling this method either when the chrome process cancels the request (and then we don't need to send it back again) or the content process fails to process the data after a request was fulfilled and thus there's nothing to cancel. We will touch this again later when the UI cancels requests on tab switch and similar user actions.
49 lines
1.6 KiB
C++
49 lines
1.6 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
|
/* 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/. */
|
|
|
|
#ifndef mozilla_dom_U2FTokenTransport_h
|
|
#define mozilla_dom_U2FTokenTransport_h
|
|
|
|
#include "mozilla/dom/PWebAuthnTransaction.h"
|
|
|
|
/*
|
|
* Abstract class representing a transport manager for U2F Keys (software,
|
|
* bluetooth, usb, etc.). Hides the implementation details for specific key
|
|
* transport types.
|
|
*/
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
|
|
class U2FTokenTransport
|
|
{
|
|
public:
|
|
NS_INLINE_DECL_REFCOUNTING(U2FTokenTransport);
|
|
U2FTokenTransport() {}
|
|
|
|
virtual nsresult Register(const nsTArray<WebAuthnScopedCredentialDescriptor>& aDescriptors,
|
|
const nsTArray<uint8_t>& aApplication,
|
|
const nsTArray<uint8_t>& aChallenge,
|
|
/* out */ nsTArray<uint8_t>& aRegistration,
|
|
/* out */ nsTArray<uint8_t>& aSignature) = 0;
|
|
|
|
virtual nsresult Sign(const nsTArray<WebAuthnScopedCredentialDescriptor>& aDescriptors,
|
|
const nsTArray<uint8_t>& aApplication,
|
|
const nsTArray<uint8_t>& aChallenge,
|
|
/* out */ nsTArray<uint8_t>& aKeyHandle,
|
|
/* out */ nsTArray<uint8_t>& aSignature) = 0;
|
|
|
|
virtual void Cancel() = 0;
|
|
|
|
protected:
|
|
virtual ~U2FTokenTransport() = default;
|
|
};
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
#endif // mozilla_dom_U2FTokenTransport_h
|