-
Notifications
You must be signed in to change notification settings - Fork 73
/
webauthn.idl
193 lines (154 loc) · 5.47 KB
/
webauthn.idl
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into reffy-reports
// (https://github.com/tidoust/reffy-reports)
// Source: Web Authentication: An API for accessing Public Key Credentials - Level 2 (https://w3c.github.io/webauthn/)
[SecureContext, Exposed=Window]
interface PublicKeyCredential : Credential {
[SameObject] readonly attribute ArrayBuffer rawId;
[SameObject] readonly attribute AuthenticatorResponse response;
AuthenticationExtensionsClientOutputs getClientExtensionResults();
};
partial dictionary CredentialCreationOptions {
PublicKeyCredentialCreationOptions publicKey;
};
partial dictionary CredentialRequestOptions {
PublicKeyCredentialRequestOptions publicKey;
};
partial interface PublicKeyCredential {
static Promise<boolean> isUserVerifyingPlatformAuthenticatorAvailable();
};
[SecureContext, Exposed=Window]
interface AuthenticatorResponse {
[SameObject] readonly attribute ArrayBuffer clientDataJSON;
};
[SecureContext, Exposed=Window]
interface AuthenticatorAttestationResponse : AuthenticatorResponse {
[SameObject] readonly attribute ArrayBuffer attestationObject;
sequence<DOMString> getTransports();
ArrayBuffer getAuthenticatorData();
ArrayBuffer? getPublicKey();
COSEAlgorithmIdentifier getPublicKeyAlgorithm();
};
[SecureContext, Exposed=Window]
interface AuthenticatorAssertionResponse : AuthenticatorResponse {
[SameObject] readonly attribute ArrayBuffer authenticatorData;
[SameObject] readonly attribute ArrayBuffer signature;
[SameObject] readonly attribute ArrayBuffer? userHandle;
};
dictionary PublicKeyCredentialParameters {
required DOMString type;
required COSEAlgorithmIdentifier alg;
};
dictionary PublicKeyCredentialCreationOptions {
required PublicKeyCredentialRpEntity rp;
required PublicKeyCredentialUserEntity user;
required BufferSource challenge;
required sequence<PublicKeyCredentialParameters> pubKeyCredParams;
unsigned long timeout;
sequence<PublicKeyCredentialDescriptor> excludeCredentials = [];
AuthenticatorSelectionCriteria authenticatorSelection;
DOMString attestation = "none";
AuthenticationExtensionsClientInputs extensions;
};
dictionary PublicKeyCredentialEntity {
required DOMString name;
};
dictionary PublicKeyCredentialRpEntity : PublicKeyCredentialEntity {
DOMString id;
};
dictionary PublicKeyCredentialUserEntity : PublicKeyCredentialEntity {
required BufferSource id;
required DOMString displayName;
};
dictionary AuthenticatorSelectionCriteria {
DOMString authenticatorAttachment;
boolean requireResidentKey = false;
DOMString residentKey;
DOMString userVerification = "preferred";
};
enum AuthenticatorAttachment {
"platform",
"cross-platform"
};
enum ResidentKeyRequirement {
"discouraged",
"preferred",
"required"
};
enum AttestationConveyancePreference {
"none",
"indirect",
"direct",
"enterprise"
};
dictionary PublicKeyCredentialRequestOptions {
required BufferSource challenge;
unsigned long timeout;
USVString rpId;
sequence<PublicKeyCredentialDescriptor> allowCredentials = [];
DOMString userVerification = "preferred";
AuthenticationExtensionsClientInputs extensions;
};
dictionary AuthenticationExtensionsClientInputs {
};
dictionary AuthenticationExtensionsClientOutputs {
};
typedef record<DOMString, DOMString> AuthenticationExtensionsAuthenticatorInputs;
dictionary CollectedClientData {
required DOMString type;
required DOMString challenge;
required DOMString origin;
boolean crossOrigin;
TokenBinding tokenBinding;
};
dictionary TokenBinding {
required DOMString status;
DOMString id;
};
enum TokenBindingStatus { "present", "supported" };
enum PublicKeyCredentialType {
"public-key"
};
dictionary PublicKeyCredentialDescriptor {
required DOMString type;
required BufferSource id;
sequence<DOMString> transports;
};
enum AuthenticatorTransport {
"usb",
"nfc",
"ble",
"internal"
};
typedef long COSEAlgorithmIdentifier;
enum UserVerificationRequirement {
"required",
"preferred",
"discouraged"
};
partial dictionary AuthenticationExtensionsClientInputs {
USVString appid;
};
partial dictionary AuthenticationExtensionsClientOutputs {
boolean appid;
};
partial dictionary AuthenticationExtensionsClientInputs {
USVString appidExclude;
};
partial dictionary AuthenticationExtensionsClientInputs {
boolean uvm;
};
typedef sequence<unsigned long> UvmEntry;
typedef sequence<UvmEntry> UvmEntries;
partial dictionary AuthenticationExtensionsClientOutputs {
UvmEntries uvm;
};
partial dictionary AuthenticationExtensionsClientInputs {
boolean credProps;
};
dictionary CredentialPropertiesOutput {
boolean rk;
};
partial dictionary AuthenticationExtensionsClientOutputs {
CredentialPropertiesOutput credProps;
};