зеркало из https://github.com/mozilla/gecko-dev.git
73 строки
2.2 KiB
Plaintext
73 строки
2.2 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/. */
|
|
|
|
/*
|
|
* IPC Transaction protocol for the WebAuthn DOM API. This IPC protocol allows
|
|
* the content process to call to the parent to access hardware for
|
|
* authentication registration and challenges. All transactions start in the
|
|
* child process, and the parent replies with a "Confirm*" message, or a
|
|
* "Cancel" message if there was an error (no hardware available, no registered
|
|
* keys, etc) or interruption (another transaction was started in another
|
|
* content process). Similarly, the content process can also request a cancel,
|
|
* either triggered explicitly by the user/script or due to UI events like
|
|
* selecting a different tab.
|
|
*/
|
|
|
|
include protocol PBackground;
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
|
|
struct WebAuthnAuthenticatorSelection {
|
|
bool requireResidentKey;
|
|
bool requireUserVerification;
|
|
bool requirePlatformAttachment;
|
|
};
|
|
|
|
struct WebAuthnScopedCredential {
|
|
uint8_t[] id;
|
|
uint8_t transports;
|
|
};
|
|
|
|
struct WebAuthnExtension {
|
|
/* TODO Fill in with predefined extensions */
|
|
};
|
|
|
|
struct WebAuthnMakeCredentialInfo {
|
|
uint8_t[] RpIdHash;
|
|
uint8_t[] ClientDataHash;
|
|
uint32_t TimeoutMS;
|
|
WebAuthnScopedCredential[] ExcludeList;
|
|
WebAuthnExtension[] Extensions;
|
|
WebAuthnAuthenticatorSelection AuthenticatorSelection;
|
|
};
|
|
|
|
struct WebAuthnGetAssertionInfo {
|
|
uint8_t[] RpIdHash;
|
|
uint8_t[] ClientDataHash;
|
|
uint32_t TimeoutMS;
|
|
WebAuthnScopedCredential[] AllowList;
|
|
bool RequireUserVerification;
|
|
WebAuthnExtension[] Extensions;
|
|
};
|
|
|
|
async protocol PWebAuthnTransaction {
|
|
manager PBackground;
|
|
|
|
parent:
|
|
async RequestRegister(uint64_t aTransactionId, WebAuthnMakeCredentialInfo aTransactionInfo);
|
|
async RequestSign(uint64_t aTransactionId, WebAuthnGetAssertionInfo aTransactionInfo);
|
|
async RequestCancel(uint64_t aTransactionId);
|
|
async DestroyMe();
|
|
|
|
child:
|
|
async __delete__();
|
|
async ConfirmRegister(uint64_t aTransactionId, uint8_t[] RegBuffer);
|
|
async ConfirmSign(uint64_t aTransactionId, uint8_t[] CredentialID, uint8_t[] ReplyBuffer);
|
|
async Abort(uint64_t aTransactionId, nsresult Error);
|
|
};
|
|
|
|
}
|
|
}
|