summaryrefslogtreecommitdiffstats
path: root/dom/webauthn/nsIWebAuthnResult.idl
blob: 32ce6982773ac118c6148e1089d52065a56835fb (plain)
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
/* -*- 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"

[uuid(0567c384-a728-11ed-85f7-030324a370f0)]
interface nsIWebAuthnRegisterResult : nsISupports {
    readonly attribute ACString clientDataJSON;

    // The serialied attestation object as defined in
    // https://www.w3.org/TR/webauthn-2/#sctn-attestation
    // Includes the format, the attestation statement, and
    // the authenticator data.
    readonly attribute Array<octet> attestationObject;

    // The Credential ID field of the Attestation Object's Attested
    // Credential Data. This is used to construct the rawID field of a
    // WebAuthn PublicKeyCredential without having to parse the
    // attestationObject.
    readonly attribute Array<octet> credentialId;

    readonly attribute Array<AString> transports;

    readonly attribute boolean hmacCreateSecret;

    [must_use] attribute boolean credPropsRk;

    [must_use] readonly attribute AString authenticatorAttachment;

    boolean hasIdentifyingAttestation();
    void anonymize();
};

// The nsIWebAuthnSignResult interface is used to construct IPDL-defined
// WebAuthnGetAssertionResult from either Rust or C++.
//
[uuid(05fff816-a728-11ed-b9ac-ff38cc2c8c28)]
interface nsIWebAuthnSignResult : nsISupports {
    readonly attribute ACString clientDataJSON;

    // The ID field of the PublicKeyCredentialDescriptor returned
    // from authenticatorGetAssertion.
    readonly attribute Array<octet> credentialId;

    // The authData field of the authenticatorGetAssertion response
    readonly attribute Array<octet> authenticatorData;

    // The signature field of the authenticatorGetAssertion response
    readonly attribute Array<octet> signature;

    // The ID field of the PublicKeyCredentialUserEntity returned from
    // authenticatorGetAssertion. (Optional)
    [must_use] readonly attribute Array<octet> userHandle;

    // The displayName field of the PublicKeyCredentialUserEntity
    // returned from authenticatorGetAssertion. (Optional)
    [must_use] readonly attribute ACString userName;

    // appId field of AuthenticationExtensionsClientOutputs (Optional)
    [must_use] attribute boolean usedAppId;

    [must_use] readonly attribute AString authenticatorAttachment;
};