@simplewebauthn/server 13.0.0 → 13.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/helpers/fetch.d.ts.map +1 -1
- package/esm/helpers/fetch.js +1 -2
- package/esm/helpers/iso/isoCrypto/getWebCrypto.d.ts +1 -1
- package/esm/registration/verifications/tpm/constants.d.ts.map +1 -1
- package/esm/registration/verifications/tpm/constants.js +31 -80
- package/esm/registration/verifications/verifyAttestationAndroidKey.d.ts.map +1 -1
- package/esm/registration/verifications/verifyAttestationAndroidKey.js +44 -16
- package/esm/services/defaultRootCerts/android-key.d.ts +24 -0
- package/esm/services/defaultRootCerts/android-key.d.ts.map +1 -1
- package/esm/services/defaultRootCerts/android-key.js +86 -0
- package/esm/services/settingsService.d.ts +1 -1
- package/esm/services/settingsService.d.ts.map +1 -1
- package/esm/services/settingsService.js +3 -1
- package/package.json +2 -3
- package/script/helpers/fetch.d.ts.map +1 -1
- package/script/helpers/fetch.js +1 -2
- package/script/helpers/iso/isoCrypto/getWebCrypto.d.ts +1 -1
- package/script/registration/verifications/tpm/constants.d.ts.map +1 -1
- package/script/registration/verifications/tpm/constants.js +31 -80
- package/script/registration/verifications/verifyAttestationAndroidKey.d.ts.map +1 -1
- package/script/registration/verifications/verifyAttestationAndroidKey.js +44 -16
- package/script/services/defaultRootCerts/android-key.d.ts +24 -0
- package/script/services/defaultRootCerts/android-key.d.ts.map +1 -1
- package/script/services/defaultRootCerts/android-key.js +87 -1
- package/script/services/settingsService.d.ts +1 -1
- package/script/services/settingsService.d.ts.map +1 -1
- package/script/services/settingsService.js +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEpD;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe;oBACV,MAAM;CACvB,CAAC"}
|
package/esm/helpers/fetch.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { fetch as crossFetch } from 'cross-fetch';
|
|
2
1
|
/**
|
|
3
2
|
* A simple method for requesting data via standard `fetch`. Should work
|
|
4
3
|
* across multiple runtimes.
|
|
@@ -11,5 +10,5 @@ export function fetch(url) {
|
|
|
11
10
|
* @ignore Don't include this in docs output
|
|
12
11
|
*/
|
|
13
12
|
export const _fetchInternals = {
|
|
14
|
-
stubThis: (url) =>
|
|
13
|
+
stubThis: (url) => globalThis.fetch(url),
|
|
15
14
|
};
|
|
@@ -8,7 +8,7 @@ export declare class MissingWebCrypto extends Error {
|
|
|
8
8
|
constructor();
|
|
9
9
|
}
|
|
10
10
|
export declare const _getWebCryptoInternals: {
|
|
11
|
-
stubThisGlobalThisCrypto: () =>
|
|
11
|
+
stubThisGlobalThisCrypto: () => import("crypto").webcrypto.Crypto;
|
|
12
12
|
setCachedCrypto: (newCrypto: Crypto | undefined) => void;
|
|
13
13
|
};
|
|
14
14
|
//# sourceMappingURL=getWebCrypto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/registration/verifications/tpm/constants.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAkB3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAsC5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAUlD,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/registration/verifications/tpm/constants.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAkB3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAsC5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAUlD,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAgChE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAM/D,CAAC"}
|
|
@@ -93,86 +93,37 @@ export const TPM_ECC_CURVE = {
|
|
|
93
93
|
* https://trustedcomputinggroup.org/wp-content/uploads/TCG-TPM-Vendor-ID-Registry-Version-1.02-Revision-1.00.pdf
|
|
94
94
|
*/
|
|
95
95
|
export const TPM_MANUFACTURERS = {
|
|
96
|
-
'id:414D4400': {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
},
|
|
100
|
-
'id:
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
},
|
|
104
|
-
'id:
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
},
|
|
108
|
-
'id:
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
},
|
|
112
|
-
'id:
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
},
|
|
116
|
-
'id:
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
},
|
|
120
|
-
'id:
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
},
|
|
124
|
-
'id:
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
},
|
|
128
|
-
'id:4E534D20': {
|
|
129
|
-
name: 'National Semiconductor',
|
|
130
|
-
id: 'NSM',
|
|
131
|
-
},
|
|
132
|
-
'id:4E545A00': {
|
|
133
|
-
name: 'Nationz',
|
|
134
|
-
id: 'NTZ',
|
|
135
|
-
},
|
|
136
|
-
'id:4E544300': {
|
|
137
|
-
name: 'Nuvoton Technology',
|
|
138
|
-
id: 'NTC',
|
|
139
|
-
},
|
|
140
|
-
'id:51434F4D': {
|
|
141
|
-
name: 'Qualcomm',
|
|
142
|
-
id: 'QCOM',
|
|
143
|
-
},
|
|
144
|
-
'id:534D5343': {
|
|
145
|
-
name: 'SMSC',
|
|
146
|
-
id: 'SMSC',
|
|
147
|
-
},
|
|
148
|
-
'id:53544D20': {
|
|
149
|
-
name: 'ST Microelectronics',
|
|
150
|
-
id: 'STM',
|
|
151
|
-
},
|
|
152
|
-
'id:534D534E': {
|
|
153
|
-
name: 'Samsung',
|
|
154
|
-
id: 'SMSN',
|
|
155
|
-
},
|
|
156
|
-
'id:534E5300': {
|
|
157
|
-
name: 'Sinosun',
|
|
158
|
-
id: 'SNS',
|
|
159
|
-
},
|
|
160
|
-
'id:54584E00': {
|
|
161
|
-
name: 'Texas Instruments',
|
|
162
|
-
id: 'TXN',
|
|
163
|
-
},
|
|
164
|
-
'id:57454300': {
|
|
165
|
-
name: 'Winbond',
|
|
166
|
-
id: 'WEC',
|
|
167
|
-
},
|
|
168
|
-
'id:524F4343': {
|
|
169
|
-
name: 'Fuzhouk Rockchip',
|
|
170
|
-
id: 'ROCC',
|
|
171
|
-
},
|
|
172
|
-
'id:FFFFF1D0': {
|
|
173
|
-
name: 'FIDO Alliance',
|
|
174
|
-
id: 'FIDO',
|
|
175
|
-
},
|
|
96
|
+
'id:414D4400': { name: 'AMD', id: 'AMD' },
|
|
97
|
+
'id:414E5400': { name: 'Ant Group', id: 'ANT' },
|
|
98
|
+
'id:41544D4C': { name: 'Atmel', id: 'ATML' },
|
|
99
|
+
'id:4252434D': { name: 'Broadcom', id: 'BRCM' },
|
|
100
|
+
'id:4353434F': { name: 'Cisco', id: 'CSCO' },
|
|
101
|
+
'id:464C5953': { name: 'Flyslice Technologies', id: 'FLYS' },
|
|
102
|
+
'id:524F4343': { name: 'Fuzhou Rockchip', id: 'ROCC' },
|
|
103
|
+
'id:474F4F47': { name: 'Google', id: 'GOOG' },
|
|
104
|
+
'id:48504900': { name: 'HPI', id: 'HPI' },
|
|
105
|
+
'id:48504500': { name: 'HPE', id: 'HPE' },
|
|
106
|
+
'id:48495349': { name: 'Huawei', id: 'HISI' },
|
|
107
|
+
'id:49424d00': { name: 'IBM', id: 'IBM' },
|
|
108
|
+
'id:49424D00': { name: 'IBM', id: 'IBM' }, // Same ID for IBM as above, except the "D" is capitalized as per TPM spec
|
|
109
|
+
'id:49465800': { name: 'Infineon', id: 'IFX' },
|
|
110
|
+
'id:494E5443': { name: 'Intel', id: 'INTC' },
|
|
111
|
+
'id:4C454E00': { name: 'Lenovo', id: 'LEN' },
|
|
112
|
+
'id:4D534654': { name: 'Microsoft', id: 'MSFT' },
|
|
113
|
+
'id:4E534D20': { name: 'National Semiconductor', id: 'NSM' },
|
|
114
|
+
'id:4E545A00': { name: 'Nationz', id: 'NTZ' },
|
|
115
|
+
'id:4E534700': { name: 'NSING', id: 'NSG' },
|
|
116
|
+
'id:4E544300': { name: 'Nuvoton Technology', id: 'NTC' },
|
|
117
|
+
'id:51434F4D': { name: 'Qualcomm', id: 'QCOM' },
|
|
118
|
+
'id:534D534E': { name: 'Samsung', id: 'SMSN' },
|
|
119
|
+
'id:53454345': { name: 'SecEdge', id: 'SECE' },
|
|
120
|
+
'id:534E5300': { name: 'Sinosun', id: 'SNS' },
|
|
121
|
+
'id:534D5343': { name: 'SMSC', id: 'SMSC' },
|
|
122
|
+
'id:53544D20': { name: 'STMicroelectronics', id: 'STM' },
|
|
123
|
+
'id:54584E00': { name: 'Texas Instruments', id: 'TXN' },
|
|
124
|
+
'id:57454300': { name: 'Winbond', id: 'WEC' },
|
|
125
|
+
'id:5345414C': { name: 'Wisekey', id: 'SEAL' },
|
|
126
|
+
'id:FFFFF1D0': { name: 'FIDO Alliance', id: 'FIDO' }, // FIDO Conformance
|
|
176
127
|
};
|
|
177
128
|
/**
|
|
178
129
|
* Match TPM public area curve ID's to `crv` numbers used in COSE public keys
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifyAttestationAndroidKey.d.ts","sourceRoot":"","sources":["../../../src/registration/verifications/verifyAttestationAndroidKey.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAUtF;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"verifyAttestationAndroidKey.d.ts","sourceRoot":"","sources":["../../../src/registration/verifications/verifyAttestationAndroidKey.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAUtF;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,OAAO,CAAC,CA0JlB"}
|
|
@@ -18,44 +18,55 @@ export async function verifyAttestationAndroidKey(options) {
|
|
|
18
18
|
const sig = attStmt.get('sig');
|
|
19
19
|
const alg = attStmt.get('alg');
|
|
20
20
|
if (!x5c) {
|
|
21
|
-
throw new Error('No attestation certificate provided in attestation statement (
|
|
21
|
+
throw new Error('No attestation certificate provided in attestation statement (Android Key)');
|
|
22
22
|
}
|
|
23
23
|
if (!sig) {
|
|
24
|
-
throw new Error('No attestation signature provided in attestation statement (
|
|
24
|
+
throw new Error('No attestation signature provided in attestation statement (Android Key)');
|
|
25
25
|
}
|
|
26
26
|
if (!alg) {
|
|
27
|
-
throw new Error(`Attestation statement did not contain alg (
|
|
27
|
+
throw new Error(`Attestation statement did not contain alg (Android Key)`);
|
|
28
28
|
}
|
|
29
29
|
if (!isCOSEAlg(alg)) {
|
|
30
|
-
throw new Error(`Attestation statement contained invalid alg ${alg} (
|
|
30
|
+
throw new Error(`Attestation statement contained invalid alg ${alg} (Android Key)`);
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Verify that the public key in the first certificate in x5c matches the credentialPublicKey in
|
|
34
|
+
* the attestedCredentialData in authenticatorData.
|
|
35
|
+
*/
|
|
33
36
|
// Find the public cert in the certificate as PKCS
|
|
34
37
|
const parsedCert = AsnParser.parse(x5c[0], Certificate);
|
|
35
38
|
const parsedCertPubKey = new Uint8Array(parsedCert.tbsCertificate.subjectPublicKeyInfo.subjectPublicKey);
|
|
36
39
|
// Convert the credentialPublicKey to PKCS
|
|
37
40
|
const credPubKeyPKCS = convertCOSEtoPKCS(credentialPublicKey);
|
|
38
41
|
if (!isoUint8Array.areEqual(credPubKeyPKCS, parsedCertPubKey)) {
|
|
39
|
-
throw new Error('Credential public key does not equal leaf cert public key (
|
|
42
|
+
throw new Error('Credential public key does not equal leaf cert public key (Android Key)');
|
|
40
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Verify that the attestationChallenge field in the attestation certificate extension data is
|
|
46
|
+
* identical to clientDataHash.
|
|
47
|
+
*/
|
|
41
48
|
// Find Android KeyStore Extension in certificate extensions
|
|
42
49
|
const extKeyStore = parsedCert.tbsCertificate.extensions?.find((ext) => ext.extnID === id_ce_keyDescription);
|
|
43
50
|
if (!extKeyStore) {
|
|
44
|
-
throw new Error('Certificate did not contain extKeyStore (
|
|
51
|
+
throw new Error('Certificate did not contain extKeyStore (Android Key)');
|
|
45
52
|
}
|
|
46
53
|
const parsedExtKeyStore = AsnParser.parse(extKeyStore.extnValue, KeyDescription);
|
|
47
54
|
// Verify extKeyStore values
|
|
48
55
|
const { attestationChallenge, teeEnforced, softwareEnforced } = parsedExtKeyStore;
|
|
49
56
|
if (!isoUint8Array.areEqual(new Uint8Array(attestationChallenge.buffer), clientDataHash)) {
|
|
50
|
-
throw new Error('Attestation challenge was not equal to client data hash (
|
|
57
|
+
throw new Error('Attestation challenge was not equal to client data hash (Android Key)');
|
|
51
58
|
}
|
|
52
|
-
|
|
53
|
-
|
|
59
|
+
/**
|
|
60
|
+
* The AuthorizationList.allApplications field is not present on either authorization list
|
|
61
|
+
* (softwareEnforced nor teeEnforced), since PublicKeyCredential MUST be scoped to the RP ID.
|
|
62
|
+
*
|
|
63
|
+
* (i.e. These shouldn't contain the [600] tag)
|
|
64
|
+
*/
|
|
54
65
|
if (teeEnforced.allApplications !== undefined) {
|
|
55
|
-
throw new Error('teeEnforced contained "allApplications [600]" tag (
|
|
66
|
+
throw new Error('teeEnforced contained "allApplications [600]" tag (Android Key)');
|
|
56
67
|
}
|
|
57
68
|
if (softwareEnforced.allApplications !== undefined) {
|
|
58
|
-
throw new Error('teeEnforced contained "allApplications [600]" tag (
|
|
69
|
+
throw new Error('teeEnforced contained "allApplications [600]" tag (Android Key)');
|
|
59
70
|
}
|
|
60
71
|
const statement = await MetadataService.getStatement(aaguid);
|
|
61
72
|
if (statement) {
|
|
@@ -69,19 +80,36 @@ export async function verifyAttestationAndroidKey(options) {
|
|
|
69
80
|
}
|
|
70
81
|
catch (err) {
|
|
71
82
|
const _err = err;
|
|
72
|
-
throw new Error(`${_err.message} (
|
|
83
|
+
throw new Error(`${_err.message} (Android Key)`);
|
|
73
84
|
}
|
|
74
85
|
}
|
|
75
86
|
else {
|
|
87
|
+
/**
|
|
88
|
+
* Verify that x5c contains a full certificate path.
|
|
89
|
+
*/
|
|
90
|
+
const x5cNoRootPEM = x5c.slice(0, -1).map(convertCertBufferToPEM);
|
|
91
|
+
const x5cRootPEM = x5c.slice(-1).map(convertCertBufferToPEM);
|
|
76
92
|
try {
|
|
77
|
-
|
|
78
|
-
await validateCertificatePath(x5c.map(convertCertBufferToPEM), rootCertificates);
|
|
93
|
+
await validateCertificatePath(x5cNoRootPEM, x5cRootPEM);
|
|
79
94
|
}
|
|
80
95
|
catch (err) {
|
|
81
96
|
const _err = err;
|
|
82
|
-
throw new Error(`${_err.message} (
|
|
97
|
+
throw new Error(`${_err.message} (Android Key)`);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Make sure the root certificate is one of the Google Hardware Attestation Root certificates
|
|
101
|
+
*
|
|
102
|
+
* https://developer.android.com/privacy-and-security/security-key-attestation#root_certificate
|
|
103
|
+
*/
|
|
104
|
+
if (rootCertificates.length > 0 && rootCertificates.indexOf(x5cRootPEM[0]) < 0) {
|
|
105
|
+
throw new Error('x5c root certificate was not a known root certificate (Android Key)');
|
|
83
106
|
}
|
|
84
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Verify that sig is a valid signature over the concatenation of authenticatorData and
|
|
110
|
+
* clientDataHash using the public key in the first certificate in x5c with the algorithm
|
|
111
|
+
* specified in alg.
|
|
112
|
+
*/
|
|
85
113
|
const signatureBase = isoUint8Array.concat([authData, clientDataHash]);
|
|
86
114
|
return verifySignature({
|
|
87
115
|
signature: sig,
|
|
@@ -22,4 +22,28 @@ export declare const Google_Hardware_Attestation_Root_1 = "-----BEGIN CERTIFICAT
|
|
|
22
22
|
* 1E:F1:A0:4B:8B:A5:8A:B9:45:89:AC:49:8C:89:82:A7:83:F2:4E:A7:30:7E:01:59:A0:C3:A7:3B:37:7D:87:CC
|
|
23
23
|
*/
|
|
24
24
|
export declare const Google_Hardware_Attestation_Root_2 = "-----BEGIN CERTIFICATE-----\nMIIFHDCCAwSgAwIBAgIJANUP8luj8tazMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV\nBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTkxMTIyMjAzNzU4WhcNMzQxMTE4MjAz\nNzU4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B\nAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS\nSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7\ntv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj\nnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq\nC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ\noVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O\nJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg\nsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi\nigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M\nRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E\naDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um\nAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud\nIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD\nVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBOMaBc8oumXb2voc7XCWnu\nXKhBBK3e2KMGz39t7lA3XXRe2ZLLAkLM5y3J7tURkf5a1SutfdOyXAmeE6SRo83U\nh6WszodmMkxK5GM4JGrnt4pBisu5igXEydaW7qq2CdC6DOGjG+mEkN8/TA6p3cno\nL/sPyz6evdjLlSeJ8rFBH6xWyIZCbrcpYEJzXaUOEaxxXxgYz5/cTiVKN2M1G2ok\nQBUIYSY6bjEL4aUN5cfo7ogP3UvliEo3Eo0YgwuzR2v0KR6C1cZqZJSTnghIC/vA\nD32KdNQ+c3N+vl2OTsUVMC1GiWkngNx1OO1+kXW+YTnnTUOtOIswUP/Vqd5SYgAI\nmMAfY8U9/iIgkQj6T2W6FsScy94IN9fFhE1UtzmLoBIuUFsVXJMTz+Jucth+IqoW\nFua9v1R93/k98p41pjtFX+H8DslVgfP097vju4KDlqN64xV1grw3ZLl4CiOe/A91\noeLm2UHOq6wn3esB4r2EIQKb6jTVGu5sYCcdWpXr0AUVqcABPdgL+H7qJguBw09o\njm6xNIrw2OocrDKsudk/okr/AwqEyPKw9WnMlQgLIKw1rODG2NvU9oR3GVGdMkUB\nZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCH\nex0SdDrx+tWUDqG8At2JHA==\n-----END CERTIFICATE-----\n";
|
|
25
|
+
/**
|
|
26
|
+
* Google Hardware Attestation Root 3
|
|
27
|
+
*
|
|
28
|
+
* Downloaded from https://developer.android.com/training/articles/security-key-attestation#root_certificate
|
|
29
|
+
* (third entry)
|
|
30
|
+
*
|
|
31
|
+
* Valid until 2036-11-13 @ 15:10 PST
|
|
32
|
+
*
|
|
33
|
+
* SHA256 Fingerprint
|
|
34
|
+
* AB:66:41:17:8A:36:E1:79:AA:0C:1C:DD:DF:9A:16:EB:45:FA:20:94:3E:2B:8C:D7:C7:C0:5C:26:CF:8B:48:7A
|
|
35
|
+
*/
|
|
36
|
+
export declare const Google_Hardware_Attestation_Root_3 = "\n-----BEGIN CERTIFICATE-----\nMIIFHDCCAwSgAwIBAgIJAMNrfES5rhgxMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV\nBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjExMTE3MjMxMDQyWhcNMzYxMTEzMjMx\nMDQyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B\nAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS\nSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7\ntv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj\nnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq\nC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ\noVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O\nJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg\nsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi\nigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M\nRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E\naDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um\nAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud\nIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD\nVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBTNNZe5cuf8oiq+jV0itTG\nzWVhSTjOBEk2FQvh11J3o3lna0o7rd8RFHnN00q4hi6TapFhh4qaw/iG6Xg+xOan\n63niLWIC5GOPFgPeYXM9+nBb3zZzC8ABypYuCusWCmt6Tn3+Pjbz3MTVhRGXuT/T\nQH4KGFY4PhvzAyXwdjTOCXID+aHud4RLcSySr0Fq/L+R8TWalvM1wJJPhyRjqRCJ\nerGtfBagiALzvhnmY7U1qFcS0NCnKjoO7oFedKdWlZz0YAfu3aGCJd4KHT0MsGiL\nZez9WP81xYSrKMNEsDK+zK5fVzw6jA7cxmpXcARTnmAuGUeI7VVDhDzKeVOctf3a\n0qQLwC+d0+xrETZ4r2fRGNw2YEs2W8Qj6oDcfPvq9JySe7pJ6wcHnl5EZ0lwc4xH\n7Y4Dx9RA1JlfooLMw3tOdJZH0enxPXaydfAD3YifeZpFaUzicHeLzVJLt9dvGB0b\nHQLE4+EqKFgOZv2EoP686DQqbVS1u+9k0p2xbMA105TBIk7npraa8VM0fnrRKi7w\nlZKwdH+aNAyhbXRW9xsnODJ+g8eF452zvbiKKngEKirK5LGieoXBX7tZ9D1GNBH2\nOb3bKOwwIWdEFle/YF/h6zWgdeoaNGDqVBrLr2+0DtWoiB1aDEjLWl9FmyIUyUm7\nmD/vFDkzF+wm7cyWpQpCVQ==\n-----END CERTIFICATE-----\n";
|
|
37
|
+
/**
|
|
38
|
+
* Google Hardware Attestation Root 4
|
|
39
|
+
*
|
|
40
|
+
* Downloaded from https://developer.android.com/training/articles/security-key-attestation#root_certificate
|
|
41
|
+
* (fourth entry)
|
|
42
|
+
*
|
|
43
|
+
* Valid until 2042-03-15 @ 11:07 PDT
|
|
44
|
+
*
|
|
45
|
+
* SHA256 Fingerprint
|
|
46
|
+
* CE:DB:1C:B6:DC:89:6A:E5:EC:79:73:48:BC:E9:28:67:53:C2:B3:8E:E7:1C:E0:FB:E3:4A:9A:12:48:80:0D:FC
|
|
47
|
+
*/
|
|
48
|
+
export declare const Google_Hardware_Attestation_Root_4 = "\n-----BEGIN CERTIFICATE-----\nMIIFHDCCAwSgAwIBAgIJAPHBcqaZ6vUdMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV\nBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjIwMzIwMTgwNzQ4WhcNNDIwMzE1MTgw\nNzQ4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B\nAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS\nSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7\ntv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj\nnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq\nC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ\noVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O\nJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg\nsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi\nigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M\nRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E\naDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um\nAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud\nIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD\nVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQB8cMqTllHc8U+qCrOlg3H7\n174lmaCsbo/bJ0C17JEgMLb4kvrqsXZs01U3mB/qABg/1t5Pd5AORHARs1hhqGIC\nW/nKMav574f9rZN4PC2ZlufGXb7sIdJpGiO9ctRhiLuYuly10JccUZGEHpHSYM2G\ntkgYbZba6lsCPYAAP83cyDV+1aOkTf1RCp/lM0PKvmxYN10RYsK631jrleGdcdkx\noSK//mSQbgcWnmAEZrzHoF1/0gso1HZgIn0YLzVhLSA/iXCX4QT2h3J5z3znluKG\n1nv8NQdxei2DIIhASWfu804CA96cQKTTlaae2fweqXjdN1/v2nqOhngNyz1361mF\nmr4XmaKH/ItTwOe72NI9ZcwS1lVaCvsIkTDCEXdm9rCNPAY10iTunIHFXRh+7KPz\nlHGewCq/8TOohBRn0/NNfh7uRslOSZ/xKbN9tMBtw37Z8d2vvnXq/YWdsm1+JLVw\nn6yYD/yacNJBlwpddla8eaVMjsF6nBnIgQOf9zKSe06nSTqvgwUHosgOECZJZ1Eu\nzbH4yswbt02tKtKEFhx+v+OTge/06V+jGsqTWLsfrOCNLuA8H++z+pUENmpqnnHo\nvaI47gC+TNpkgYGkkBT6B/m/U01BuOBBTzhIlMEZq9qkDWuM2cA5kW5V3FJUcfHn\nw1IdYIg2Wxg7yHcQZemFQg==\n-----END CERTIFICATE-----\n";
|
|
25
49
|
//# sourceMappingURL=android-key.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android-key.d.ts","sourceRoot":"","sources":["../../../src/services/defaultRootCerts/android-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,u6DA+B9C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,60DA8B9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"android-key.d.ts","sourceRoot":"","sources":["../../../src/services/defaultRootCerts/android-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,u6DA+B9C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,60DA8B9C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,+0DA+B9C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,+0DA+B9C,CAAC"}
|
|
@@ -83,3 +83,89 @@ ZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCH
|
|
|
83
83
|
ex0SdDrx+tWUDqG8At2JHA==
|
|
84
84
|
-----END CERTIFICATE-----
|
|
85
85
|
`;
|
|
86
|
+
/**
|
|
87
|
+
* Google Hardware Attestation Root 3
|
|
88
|
+
*
|
|
89
|
+
* Downloaded from https://developer.android.com/training/articles/security-key-attestation#root_certificate
|
|
90
|
+
* (third entry)
|
|
91
|
+
*
|
|
92
|
+
* Valid until 2036-11-13 @ 15:10 PST
|
|
93
|
+
*
|
|
94
|
+
* SHA256 Fingerprint
|
|
95
|
+
* AB:66:41:17:8A:36:E1:79:AA:0C:1C:DD:DF:9A:16:EB:45:FA:20:94:3E:2B:8C:D7:C7:C0:5C:26:CF:8B:48:7A
|
|
96
|
+
*/
|
|
97
|
+
export const Google_Hardware_Attestation_Root_3 = `
|
|
98
|
+
-----BEGIN CERTIFICATE-----
|
|
99
|
+
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
|
|
126
|
+
mD/vFDkzF+wm7cyWpQpCVQ==
|
|
127
|
+
-----END CERTIFICATE-----
|
|
128
|
+
`;
|
|
129
|
+
/**
|
|
130
|
+
* Google Hardware Attestation Root 4
|
|
131
|
+
*
|
|
132
|
+
* Downloaded from https://developer.android.com/training/articles/security-key-attestation#root_certificate
|
|
133
|
+
* (fourth entry)
|
|
134
|
+
*
|
|
135
|
+
* Valid until 2042-03-15 @ 11:07 PDT
|
|
136
|
+
*
|
|
137
|
+
* SHA256 Fingerprint
|
|
138
|
+
* CE:DB:1C:B6:DC:89:6A:E5:EC:79:73:48:BC:E9:28:67:53:C2:B3:8E:E7:1C:E0:FB:E3:4A:9A:12:48:80:0D:FC
|
|
139
|
+
*/
|
|
140
|
+
export const Google_Hardware_Attestation_Root_4 = `
|
|
141
|
+
-----BEGIN CERTIFICATE-----
|
|
142
|
+
MIIFHDCCAwSgAwIBAgIJAPHBcqaZ6vUdMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV
|
|
143
|
+
BAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjIwMzIwMTgwNzQ4WhcNNDIwMzE1MTgw
|
|
144
|
+
NzQ4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B
|
|
145
|
+
AQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS
|
|
146
|
+
Sxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7
|
|
147
|
+
tv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj
|
|
148
|
+
nar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq
|
|
149
|
+
C4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ
|
|
150
|
+
oVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O
|
|
151
|
+
JtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg
|
|
152
|
+
sTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi
|
|
153
|
+
igHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M
|
|
154
|
+
RPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E
|
|
155
|
+
aDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um
|
|
156
|
+
AGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud
|
|
157
|
+
IwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD
|
|
158
|
+
VR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQB8cMqTllHc8U+qCrOlg3H7
|
|
159
|
+
174lmaCsbo/bJ0C17JEgMLb4kvrqsXZs01U3mB/qABg/1t5Pd5AORHARs1hhqGIC
|
|
160
|
+
W/nKMav574f9rZN4PC2ZlufGXb7sIdJpGiO9ctRhiLuYuly10JccUZGEHpHSYM2G
|
|
161
|
+
tkgYbZba6lsCPYAAP83cyDV+1aOkTf1RCp/lM0PKvmxYN10RYsK631jrleGdcdkx
|
|
162
|
+
oSK//mSQbgcWnmAEZrzHoF1/0gso1HZgIn0YLzVhLSA/iXCX4QT2h3J5z3znluKG
|
|
163
|
+
1nv8NQdxei2DIIhASWfu804CA96cQKTTlaae2fweqXjdN1/v2nqOhngNyz1361mF
|
|
164
|
+
mr4XmaKH/ItTwOe72NI9ZcwS1lVaCvsIkTDCEXdm9rCNPAY10iTunIHFXRh+7KPz
|
|
165
|
+
lHGewCq/8TOohBRn0/NNfh7uRslOSZ/xKbN9tMBtw37Z8d2vvnXq/YWdsm1+JLVw
|
|
166
|
+
n6yYD/yacNJBlwpddla8eaVMjsF6nBnIgQOf9zKSe06nSTqvgwUHosgOECZJZ1Eu
|
|
167
|
+
zbH4yswbt02tKtKEFhx+v+OTge/06V+jGsqTWLsfrOCNLuA8H++z+pUENmpqnnHo
|
|
168
|
+
vaI47gC+TNpkgYGkkBT6B/m/U01BuOBBTzhIlMEZq9qkDWuM2cA5kW5V3FJUcfHn
|
|
169
|
+
w1IdYIg2Wxg7yHcQZemFQg==
|
|
170
|
+
-----END CERTIFICATE-----
|
|
171
|
+
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settingsService.d.ts","sourceRoot":"","sources":["../../src/services/settingsService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"settingsService.d.ts","sourceRoot":"","sources":["../../src/services/settingsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAa/E,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,KAAK,CAAC;AAE3D,UAAU,eAAe;IACvB;;;;;;OAMG;IACH,mBAAmB,CAAC,IAAI,EAAE;QACxB,UAAU,EAAE,kBAAkB,CAAC;QAC/B,YAAY,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;KACvC,GAAG,IAAI,CAAC;IAET;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,kBAAkB,CAAA;KAAE,GAAG,MAAM,EAAE,CAAC;CACzE;AAkCD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,EAAE,eAA2C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { convertCertBufferToPEM } from '../helpers/convertCertBufferToPEM.js';
|
|
2
2
|
import { GlobalSign_Root_CA } from './defaultRootCerts/android-safetynet.js';
|
|
3
|
-
import { Google_Hardware_Attestation_Root_1, Google_Hardware_Attestation_Root_2, } from './defaultRootCerts/android-key.js';
|
|
3
|
+
import { Google_Hardware_Attestation_Root_1, Google_Hardware_Attestation_Root_2, Google_Hardware_Attestation_Root_3, Google_Hardware_Attestation_Root_4, } from './defaultRootCerts/android-key.js';
|
|
4
4
|
import { Apple_WebAuthn_Root_CA } from './defaultRootCerts/apple.js';
|
|
5
5
|
import { GlobalSign_Root_CA_R3 } from './defaultRootCerts/mds.js';
|
|
6
6
|
class BaseSettingsService {
|
|
@@ -53,6 +53,8 @@ SettingsService.setRootCertificates({
|
|
|
53
53
|
certificates: [
|
|
54
54
|
Google_Hardware_Attestation_Root_1,
|
|
55
55
|
Google_Hardware_Attestation_Root_2,
|
|
56
|
+
Google_Hardware_Attestation_Root_3,
|
|
57
|
+
Google_Hardware_Attestation_Root_4,
|
|
56
58
|
],
|
|
57
59
|
});
|
|
58
60
|
SettingsService.setRootCertificates({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplewebauthn/server",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.1.1",
|
|
4
4
|
"description": "SimpleWebAuthn for Servers",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -55,8 +55,7 @@
|
|
|
55
55
|
"@peculiar/asn1-ecc": "^2.3.8",
|
|
56
56
|
"@peculiar/asn1-rsa": "^2.3.8",
|
|
57
57
|
"@peculiar/asn1-schema": "^2.3.8",
|
|
58
|
-
"@peculiar/asn1-x509": "^2.3.8"
|
|
59
|
-
"cross-fetch": "^4.0.0"
|
|
58
|
+
"@peculiar/asn1-x509": "^2.3.8"
|
|
60
59
|
},
|
|
61
60
|
"devDependencies": {
|
|
62
61
|
"@types/node": "^20.9.0"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/helpers/fetch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEpD;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe;oBACV,MAAM;CACvB,CAAC"}
|
package/script/helpers/fetch.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports._fetchInternals = void 0;
|
|
4
4
|
exports.fetch = fetch;
|
|
5
|
-
const cross_fetch_1 = require("cross-fetch");
|
|
6
5
|
/**
|
|
7
6
|
* A simple method for requesting data via standard `fetch`. Should work
|
|
8
7
|
* across multiple runtimes.
|
|
@@ -15,5 +14,5 @@ function fetch(url) {
|
|
|
15
14
|
* @ignore Don't include this in docs output
|
|
16
15
|
*/
|
|
17
16
|
exports._fetchInternals = {
|
|
18
|
-
stubThis: (url) =>
|
|
17
|
+
stubThis: (url) => globalThis.fetch(url),
|
|
19
18
|
};
|
|
@@ -8,7 +8,7 @@ export declare class MissingWebCrypto extends Error {
|
|
|
8
8
|
constructor();
|
|
9
9
|
}
|
|
10
10
|
export declare const _getWebCryptoInternals: {
|
|
11
|
-
stubThisGlobalThisCrypto: () =>
|
|
11
|
+
stubThisGlobalThisCrypto: () => import("crypto").webcrypto.Crypto;
|
|
12
12
|
setCachedCrypto: (newCrypto: Crypto | undefined) => void;
|
|
13
13
|
};
|
|
14
14
|
//# sourceMappingURL=getWebCrypto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/registration/verifications/tpm/constants.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAkB3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAsC5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAUlD,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/registration/verifications/tpm/constants.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAkB3C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAsC5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAUlD,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAgChE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAM/D,CAAC"}
|
|
@@ -96,86 +96,37 @@ exports.TPM_ECC_CURVE = {
|
|
|
96
96
|
* https://trustedcomputinggroup.org/wp-content/uploads/TCG-TPM-Vendor-ID-Registry-Version-1.02-Revision-1.00.pdf
|
|
97
97
|
*/
|
|
98
98
|
exports.TPM_MANUFACTURERS = {
|
|
99
|
-
'id:414D4400': {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
},
|
|
103
|
-
'id:
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
},
|
|
107
|
-
'id:
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
},
|
|
111
|
-
'id:
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
},
|
|
115
|
-
'id:
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
},
|
|
119
|
-
'id:
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
},
|
|
123
|
-
'id:
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
},
|
|
127
|
-
'id:
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
},
|
|
131
|
-
'id:4E534D20': {
|
|
132
|
-
name: 'National Semiconductor',
|
|
133
|
-
id: 'NSM',
|
|
134
|
-
},
|
|
135
|
-
'id:4E545A00': {
|
|
136
|
-
name: 'Nationz',
|
|
137
|
-
id: 'NTZ',
|
|
138
|
-
},
|
|
139
|
-
'id:4E544300': {
|
|
140
|
-
name: 'Nuvoton Technology',
|
|
141
|
-
id: 'NTC',
|
|
142
|
-
},
|
|
143
|
-
'id:51434F4D': {
|
|
144
|
-
name: 'Qualcomm',
|
|
145
|
-
id: 'QCOM',
|
|
146
|
-
},
|
|
147
|
-
'id:534D5343': {
|
|
148
|
-
name: 'SMSC',
|
|
149
|
-
id: 'SMSC',
|
|
150
|
-
},
|
|
151
|
-
'id:53544D20': {
|
|
152
|
-
name: 'ST Microelectronics',
|
|
153
|
-
id: 'STM',
|
|
154
|
-
},
|
|
155
|
-
'id:534D534E': {
|
|
156
|
-
name: 'Samsung',
|
|
157
|
-
id: 'SMSN',
|
|
158
|
-
},
|
|
159
|
-
'id:534E5300': {
|
|
160
|
-
name: 'Sinosun',
|
|
161
|
-
id: 'SNS',
|
|
162
|
-
},
|
|
163
|
-
'id:54584E00': {
|
|
164
|
-
name: 'Texas Instruments',
|
|
165
|
-
id: 'TXN',
|
|
166
|
-
},
|
|
167
|
-
'id:57454300': {
|
|
168
|
-
name: 'Winbond',
|
|
169
|
-
id: 'WEC',
|
|
170
|
-
},
|
|
171
|
-
'id:524F4343': {
|
|
172
|
-
name: 'Fuzhouk Rockchip',
|
|
173
|
-
id: 'ROCC',
|
|
174
|
-
},
|
|
175
|
-
'id:FFFFF1D0': {
|
|
176
|
-
name: 'FIDO Alliance',
|
|
177
|
-
id: 'FIDO',
|
|
178
|
-
},
|
|
99
|
+
'id:414D4400': { name: 'AMD', id: 'AMD' },
|
|
100
|
+
'id:414E5400': { name: 'Ant Group', id: 'ANT' },
|
|
101
|
+
'id:41544D4C': { name: 'Atmel', id: 'ATML' },
|
|
102
|
+
'id:4252434D': { name: 'Broadcom', id: 'BRCM' },
|
|
103
|
+
'id:4353434F': { name: 'Cisco', id: 'CSCO' },
|
|
104
|
+
'id:464C5953': { name: 'Flyslice Technologies', id: 'FLYS' },
|
|
105
|
+
'id:524F4343': { name: 'Fuzhou Rockchip', id: 'ROCC' },
|
|
106
|
+
'id:474F4F47': { name: 'Google', id: 'GOOG' },
|
|
107
|
+
'id:48504900': { name: 'HPI', id: 'HPI' },
|
|
108
|
+
'id:48504500': { name: 'HPE', id: 'HPE' },
|
|
109
|
+
'id:48495349': { name: 'Huawei', id: 'HISI' },
|
|
110
|
+
'id:49424d00': { name: 'IBM', id: 'IBM' },
|
|
111
|
+
'id:49424D00': { name: 'IBM', id: 'IBM' }, // Same ID for IBM as above, except the "D" is capitalized as per TPM spec
|
|
112
|
+
'id:49465800': { name: 'Infineon', id: 'IFX' },
|
|
113
|
+
'id:494E5443': { name: 'Intel', id: 'INTC' },
|
|
114
|
+
'id:4C454E00': { name: 'Lenovo', id: 'LEN' },
|
|
115
|
+
'id:4D534654': { name: 'Microsoft', id: 'MSFT' },
|
|
116
|
+
'id:4E534D20': { name: 'National Semiconductor', id: 'NSM' },
|
|
117
|
+
'id:4E545A00': { name: 'Nationz', id: 'NTZ' },
|
|
118
|
+
'id:4E534700': { name: 'NSING', id: 'NSG' },
|
|
119
|
+
'id:4E544300': { name: 'Nuvoton Technology', id: 'NTC' },
|
|
120
|
+
'id:51434F4D': { name: 'Qualcomm', id: 'QCOM' },
|
|
121
|
+
'id:534D534E': { name: 'Samsung', id: 'SMSN' },
|
|
122
|
+
'id:53454345': { name: 'SecEdge', id: 'SECE' },
|
|
123
|
+
'id:534E5300': { name: 'Sinosun', id: 'SNS' },
|
|
124
|
+
'id:534D5343': { name: 'SMSC', id: 'SMSC' },
|
|
125
|
+
'id:53544D20': { name: 'STMicroelectronics', id: 'STM' },
|
|
126
|
+
'id:54584E00': { name: 'Texas Instruments', id: 'TXN' },
|
|
127
|
+
'id:57454300': { name: 'Winbond', id: 'WEC' },
|
|
128
|
+
'id:5345414C': { name: 'Wisekey', id: 'SEAL' },
|
|
129
|
+
'id:FFFFF1D0': { name: 'FIDO Alliance', id: 'FIDO' }, // FIDO Conformance
|
|
179
130
|
};
|
|
180
131
|
/**
|
|
181
132
|
* Match TPM public area curve ID's to `crv` numbers used in COSE public keys
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifyAttestationAndroidKey.d.ts","sourceRoot":"","sources":["../../../src/registration/verifications/verifyAttestationAndroidKey.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAUtF;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"verifyAttestationAndroidKey.d.ts","sourceRoot":"","sources":["../../../src/registration/verifications/verifyAttestationAndroidKey.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAUtF;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,OAAO,CAAC,CA0JlB"}
|
|
@@ -21,44 +21,55 @@ async function verifyAttestationAndroidKey(options) {
|
|
|
21
21
|
const sig = attStmt.get('sig');
|
|
22
22
|
const alg = attStmt.get('alg');
|
|
23
23
|
if (!x5c) {
|
|
24
|
-
throw new Error('No attestation certificate provided in attestation statement (
|
|
24
|
+
throw new Error('No attestation certificate provided in attestation statement (Android Key)');
|
|
25
25
|
}
|
|
26
26
|
if (!sig) {
|
|
27
|
-
throw new Error('No attestation signature provided in attestation statement (
|
|
27
|
+
throw new Error('No attestation signature provided in attestation statement (Android Key)');
|
|
28
28
|
}
|
|
29
29
|
if (!alg) {
|
|
30
|
-
throw new Error(`Attestation statement did not contain alg (
|
|
30
|
+
throw new Error(`Attestation statement did not contain alg (Android Key)`);
|
|
31
31
|
}
|
|
32
32
|
if (!(0, cose_js_1.isCOSEAlg)(alg)) {
|
|
33
|
-
throw new Error(`Attestation statement contained invalid alg ${alg} (
|
|
33
|
+
throw new Error(`Attestation statement contained invalid alg ${alg} (Android Key)`);
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Verify that the public key in the first certificate in x5c matches the credentialPublicKey in
|
|
37
|
+
* the attestedCredentialData in authenticatorData.
|
|
38
|
+
*/
|
|
36
39
|
// Find the public cert in the certificate as PKCS
|
|
37
40
|
const parsedCert = asn1_schema_1.AsnParser.parse(x5c[0], asn1_x509_1.Certificate);
|
|
38
41
|
const parsedCertPubKey = new Uint8Array(parsedCert.tbsCertificate.subjectPublicKeyInfo.subjectPublicKey);
|
|
39
42
|
// Convert the credentialPublicKey to PKCS
|
|
40
43
|
const credPubKeyPKCS = (0, convertCOSEtoPKCS_js_1.convertCOSEtoPKCS)(credentialPublicKey);
|
|
41
44
|
if (!index_js_1.isoUint8Array.areEqual(credPubKeyPKCS, parsedCertPubKey)) {
|
|
42
|
-
throw new Error('Credential public key does not equal leaf cert public key (
|
|
45
|
+
throw new Error('Credential public key does not equal leaf cert public key (Android Key)');
|
|
43
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Verify that the attestationChallenge field in the attestation certificate extension data is
|
|
49
|
+
* identical to clientDataHash.
|
|
50
|
+
*/
|
|
44
51
|
// Find Android KeyStore Extension in certificate extensions
|
|
45
52
|
const extKeyStore = parsedCert.tbsCertificate.extensions?.find((ext) => ext.extnID === asn1_android_1.id_ce_keyDescription);
|
|
46
53
|
if (!extKeyStore) {
|
|
47
|
-
throw new Error('Certificate did not contain extKeyStore (
|
|
54
|
+
throw new Error('Certificate did not contain extKeyStore (Android Key)');
|
|
48
55
|
}
|
|
49
56
|
const parsedExtKeyStore = asn1_schema_1.AsnParser.parse(extKeyStore.extnValue, asn1_android_1.KeyDescription);
|
|
50
57
|
// Verify extKeyStore values
|
|
51
58
|
const { attestationChallenge, teeEnforced, softwareEnforced } = parsedExtKeyStore;
|
|
52
59
|
if (!index_js_1.isoUint8Array.areEqual(new Uint8Array(attestationChallenge.buffer), clientDataHash)) {
|
|
53
|
-
throw new Error('Attestation challenge was not equal to client data hash (
|
|
60
|
+
throw new Error('Attestation challenge was not equal to client data hash (Android Key)');
|
|
54
61
|
}
|
|
55
|
-
|
|
56
|
-
|
|
62
|
+
/**
|
|
63
|
+
* The AuthorizationList.allApplications field is not present on either authorization list
|
|
64
|
+
* (softwareEnforced nor teeEnforced), since PublicKeyCredential MUST be scoped to the RP ID.
|
|
65
|
+
*
|
|
66
|
+
* (i.e. These shouldn't contain the [600] tag)
|
|
67
|
+
*/
|
|
57
68
|
if (teeEnforced.allApplications !== undefined) {
|
|
58
|
-
throw new Error('teeEnforced contained "allApplications [600]" tag (
|
|
69
|
+
throw new Error('teeEnforced contained "allApplications [600]" tag (Android Key)');
|
|
59
70
|
}
|
|
60
71
|
if (softwareEnforced.allApplications !== undefined) {
|
|
61
|
-
throw new Error('teeEnforced contained "allApplications [600]" tag (
|
|
72
|
+
throw new Error('teeEnforced contained "allApplications [600]" tag (Android Key)');
|
|
62
73
|
}
|
|
63
74
|
const statement = await metadataService_js_1.MetadataService.getStatement(aaguid);
|
|
64
75
|
if (statement) {
|
|
@@ -72,19 +83,36 @@ async function verifyAttestationAndroidKey(options) {
|
|
|
72
83
|
}
|
|
73
84
|
catch (err) {
|
|
74
85
|
const _err = err;
|
|
75
|
-
throw new Error(`${_err.message} (
|
|
86
|
+
throw new Error(`${_err.message} (Android Key)`);
|
|
76
87
|
}
|
|
77
88
|
}
|
|
78
89
|
else {
|
|
90
|
+
/**
|
|
91
|
+
* Verify that x5c contains a full certificate path.
|
|
92
|
+
*/
|
|
93
|
+
const x5cNoRootPEM = x5c.slice(0, -1).map(convertCertBufferToPEM_js_1.convertCertBufferToPEM);
|
|
94
|
+
const x5cRootPEM = x5c.slice(-1).map(convertCertBufferToPEM_js_1.convertCertBufferToPEM);
|
|
79
95
|
try {
|
|
80
|
-
|
|
81
|
-
await (0, validateCertificatePath_js_1.validateCertificatePath)(x5c.map(convertCertBufferToPEM_js_1.convertCertBufferToPEM), rootCertificates);
|
|
96
|
+
await (0, validateCertificatePath_js_1.validateCertificatePath)(x5cNoRootPEM, x5cRootPEM);
|
|
82
97
|
}
|
|
83
98
|
catch (err) {
|
|
84
99
|
const _err = err;
|
|
85
|
-
throw new Error(`${_err.message} (
|
|
100
|
+
throw new Error(`${_err.message} (Android Key)`);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Make sure the root certificate is one of the Google Hardware Attestation Root certificates
|
|
104
|
+
*
|
|
105
|
+
* https://developer.android.com/privacy-and-security/security-key-attestation#root_certificate
|
|
106
|
+
*/
|
|
107
|
+
if (rootCertificates.length > 0 && rootCertificates.indexOf(x5cRootPEM[0]) < 0) {
|
|
108
|
+
throw new Error('x5c root certificate was not a known root certificate (Android Key)');
|
|
86
109
|
}
|
|
87
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Verify that sig is a valid signature over the concatenation of authenticatorData and
|
|
113
|
+
* clientDataHash using the public key in the first certificate in x5c with the algorithm
|
|
114
|
+
* specified in alg.
|
|
115
|
+
*/
|
|
88
116
|
const signatureBase = index_js_1.isoUint8Array.concat([authData, clientDataHash]);
|
|
89
117
|
return (0, verifySignature_js_1.verifySignature)({
|
|
90
118
|
signature: sig,
|
|
@@ -22,4 +22,28 @@ export declare const Google_Hardware_Attestation_Root_1 = "-----BEGIN CERTIFICAT
|
|
|
22
22
|
* 1E:F1:A0:4B:8B:A5:8A:B9:45:89:AC:49:8C:89:82:A7:83:F2:4E:A7:30:7E:01:59:A0:C3:A7:3B:37:7D:87:CC
|
|
23
23
|
*/
|
|
24
24
|
export declare const Google_Hardware_Attestation_Root_2 = "-----BEGIN CERTIFICATE-----\nMIIFHDCCAwSgAwIBAgIJANUP8luj8tazMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV\nBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMTkxMTIyMjAzNzU4WhcNMzQxMTE4MjAz\nNzU4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B\nAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS\nSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7\ntv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj\nnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq\nC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ\noVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O\nJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg\nsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi\nigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M\nRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E\naDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um\nAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud\nIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD\nVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBOMaBc8oumXb2voc7XCWnu\nXKhBBK3e2KMGz39t7lA3XXRe2ZLLAkLM5y3J7tURkf5a1SutfdOyXAmeE6SRo83U\nh6WszodmMkxK5GM4JGrnt4pBisu5igXEydaW7qq2CdC6DOGjG+mEkN8/TA6p3cno\nL/sPyz6evdjLlSeJ8rFBH6xWyIZCbrcpYEJzXaUOEaxxXxgYz5/cTiVKN2M1G2ok\nQBUIYSY6bjEL4aUN5cfo7ogP3UvliEo3Eo0YgwuzR2v0KR6C1cZqZJSTnghIC/vA\nD32KdNQ+c3N+vl2OTsUVMC1GiWkngNx1OO1+kXW+YTnnTUOtOIswUP/Vqd5SYgAI\nmMAfY8U9/iIgkQj6T2W6FsScy94IN9fFhE1UtzmLoBIuUFsVXJMTz+Jucth+IqoW\nFua9v1R93/k98p41pjtFX+H8DslVgfP097vju4KDlqN64xV1grw3ZLl4CiOe/A91\noeLm2UHOq6wn3esB4r2EIQKb6jTVGu5sYCcdWpXr0AUVqcABPdgL+H7qJguBw09o\njm6xNIrw2OocrDKsudk/okr/AwqEyPKw9WnMlQgLIKw1rODG2NvU9oR3GVGdMkUB\nZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCH\nex0SdDrx+tWUDqG8At2JHA==\n-----END CERTIFICATE-----\n";
|
|
25
|
+
/**
|
|
26
|
+
* Google Hardware Attestation Root 3
|
|
27
|
+
*
|
|
28
|
+
* Downloaded from https://developer.android.com/training/articles/security-key-attestation#root_certificate
|
|
29
|
+
* (third entry)
|
|
30
|
+
*
|
|
31
|
+
* Valid until 2036-11-13 @ 15:10 PST
|
|
32
|
+
*
|
|
33
|
+
* SHA256 Fingerprint
|
|
34
|
+
* AB:66:41:17:8A:36:E1:79:AA:0C:1C:DD:DF:9A:16:EB:45:FA:20:94:3E:2B:8C:D7:C7:C0:5C:26:CF:8B:48:7A
|
|
35
|
+
*/
|
|
36
|
+
export declare const Google_Hardware_Attestation_Root_3 = "\n-----BEGIN CERTIFICATE-----\nMIIFHDCCAwSgAwIBAgIJAMNrfES5rhgxMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV\nBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjExMTE3MjMxMDQyWhcNMzYxMTEzMjMx\nMDQyWjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B\nAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS\nSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7\ntv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj\nnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq\nC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ\noVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O\nJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg\nsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi\nigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M\nRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E\naDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um\nAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud\nIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD\nVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQBTNNZe5cuf8oiq+jV0itTG\nzWVhSTjOBEk2FQvh11J3o3lna0o7rd8RFHnN00q4hi6TapFhh4qaw/iG6Xg+xOan\n63niLWIC5GOPFgPeYXM9+nBb3zZzC8ABypYuCusWCmt6Tn3+Pjbz3MTVhRGXuT/T\nQH4KGFY4PhvzAyXwdjTOCXID+aHud4RLcSySr0Fq/L+R8TWalvM1wJJPhyRjqRCJ\nerGtfBagiALzvhnmY7U1qFcS0NCnKjoO7oFedKdWlZz0YAfu3aGCJd4KHT0MsGiL\nZez9WP81xYSrKMNEsDK+zK5fVzw6jA7cxmpXcARTnmAuGUeI7VVDhDzKeVOctf3a\n0qQLwC+d0+xrETZ4r2fRGNw2YEs2W8Qj6oDcfPvq9JySe7pJ6wcHnl5EZ0lwc4xH\n7Y4Dx9RA1JlfooLMw3tOdJZH0enxPXaydfAD3YifeZpFaUzicHeLzVJLt9dvGB0b\nHQLE4+EqKFgOZv2EoP686DQqbVS1u+9k0p2xbMA105TBIk7npraa8VM0fnrRKi7w\nlZKwdH+aNAyhbXRW9xsnODJ+g8eF452zvbiKKngEKirK5LGieoXBX7tZ9D1GNBH2\nOb3bKOwwIWdEFle/YF/h6zWgdeoaNGDqVBrLr2+0DtWoiB1aDEjLWl9FmyIUyUm7\nmD/vFDkzF+wm7cyWpQpCVQ==\n-----END CERTIFICATE-----\n";
|
|
37
|
+
/**
|
|
38
|
+
* Google Hardware Attestation Root 4
|
|
39
|
+
*
|
|
40
|
+
* Downloaded from https://developer.android.com/training/articles/security-key-attestation#root_certificate
|
|
41
|
+
* (fourth entry)
|
|
42
|
+
*
|
|
43
|
+
* Valid until 2042-03-15 @ 11:07 PDT
|
|
44
|
+
*
|
|
45
|
+
* SHA256 Fingerprint
|
|
46
|
+
* CE:DB:1C:B6:DC:89:6A:E5:EC:79:73:48:BC:E9:28:67:53:C2:B3:8E:E7:1C:E0:FB:E3:4A:9A:12:48:80:0D:FC
|
|
47
|
+
*/
|
|
48
|
+
export declare const Google_Hardware_Attestation_Root_4 = "\n-----BEGIN CERTIFICATE-----\nMIIFHDCCAwSgAwIBAgIJAPHBcqaZ6vUdMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV\nBAUTEGY5MjAwOWU4NTNiNmIwNDUwHhcNMjIwMzIwMTgwNzQ4WhcNNDIwMzE1MTgw\nNzQ4WjAbMRkwFwYDVQQFExBmOTIwMDllODUzYjZiMDQ1MIICIjANBgkqhkiG9w0B\nAQEFAAOCAg8AMIICCgKCAgEAr7bHgiuxpwHsK7Qui8xUFmOr75gvMsd/dTEDDJdS\nSxtf6An7xyqpRR90PL2abxM1dEqlXnf2tqw1Ne4Xwl5jlRfdnJLmN0pTy/4lj4/7\ntv0Sk3iiKkypnEUtR6WfMgH0QZfKHM1+di+y9TFRtv6y//0rb+T+W8a9nsNL/ggj\nnar86461qO0rOs2cXjp3kOG1FEJ5MVmFmBGtnrKpa73XpXyTqRxB/M0n1n/W9nGq\nC4FSYa04T6N5RIZGBN2z2MT5IKGbFlbC8UrW0DxW7AYImQQcHtGl/m00QLVWutHQ\noVJYnFPlXTcHYvASLu+RhhsbDmxMgJJ0mcDpvsC4PjvB+TxywElgS70vE0XmLD+O\nJtvsBslHZvPBKCOdT0MS+tgSOIfga+z1Z1g7+DVagf7quvmag8jfPioyKvxnK/Eg\nsTUVi2ghzq8wm27ud/mIM7AY2qEORR8Go3TVB4HzWQgpZrt3i5MIlCaY504LzSRi\nigHCzAPlHws+W0rB5N+er5/2pJKnfBSDiCiFAVtCLOZ7gLiMm0jhO2B6tUXHI/+M\nRPjy02i59lINMRRev56GKtcd9qO/0kUJWdZTdA2XoS82ixPvZtXQpUpuL12ab+9E\naDK8Z4RHJYYfCT3Q5vNAXaiWQ+8PTWm2QgBR/bkwSWc+NpUFgNPN9PvQi8WEg5Um\nAGMCAwEAAaNjMGEwHQYDVR0OBBYEFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMB8GA1Ud\nIwQYMBaAFDZh4QB8iAUJUYtEbEf/GkzJ6k8SMA8GA1UdEwEB/wQFMAMBAf8wDgYD\nVR0PAQH/BAQDAgIEMA0GCSqGSIb3DQEBCwUAA4ICAQB8cMqTllHc8U+qCrOlg3H7\n174lmaCsbo/bJ0C17JEgMLb4kvrqsXZs01U3mB/qABg/1t5Pd5AORHARs1hhqGIC\nW/nKMav574f9rZN4PC2ZlufGXb7sIdJpGiO9ctRhiLuYuly10JccUZGEHpHSYM2G\ntkgYbZba6lsCPYAAP83cyDV+1aOkTf1RCp/lM0PKvmxYN10RYsK631jrleGdcdkx\noSK//mSQbgcWnmAEZrzHoF1/0gso1HZgIn0YLzVhLSA/iXCX4QT2h3J5z3znluKG\n1nv8NQdxei2DIIhASWfu804CA96cQKTTlaae2fweqXjdN1/v2nqOhngNyz1361mF\nmr4XmaKH/ItTwOe72NI9ZcwS1lVaCvsIkTDCEXdm9rCNPAY10iTunIHFXRh+7KPz\nlHGewCq/8TOohBRn0/NNfh7uRslOSZ/xKbN9tMBtw37Z8d2vvnXq/YWdsm1+JLVw\nn6yYD/yacNJBlwpddla8eaVMjsF6nBnIgQOf9zKSe06nSTqvgwUHosgOECZJZ1Eu\nzbH4yswbt02tKtKEFhx+v+OTge/06V+jGsqTWLsfrOCNLuA8H++z+pUENmpqnnHo\nvaI47gC+TNpkgYGkkBT6B/m/U01BuOBBTzhIlMEZq9qkDWuM2cA5kW5V3FJUcfHn\nw1IdYIg2Wxg7yHcQZemFQg==\n-----END CERTIFICATE-----\n";
|
|
25
49
|
//# sourceMappingURL=android-key.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android-key.d.ts","sourceRoot":"","sources":["../../../src/services/defaultRootCerts/android-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,u6DA+B9C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,60DA8B9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"android-key.d.ts","sourceRoot":"","sources":["../../../src/services/defaultRootCerts/android-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,u6DA+B9C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,60DA8B9C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,+0DA+B9C,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,+0DA+B9C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Google_Hardware_Attestation_Root_2 = exports.Google_Hardware_Attestation_Root_1 = void 0;
|
|
3
|
+
exports.Google_Hardware_Attestation_Root_4 = exports.Google_Hardware_Attestation_Root_3 = exports.Google_Hardware_Attestation_Root_2 = exports.Google_Hardware_Attestation_Root_1 = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Google Hardware Attestation Root 1
|
|
6
6
|
*
|
|
@@ -86,3 +86,89 @@ ZutL8VuFkERQGt6vQ2OCw0sV47VMkuYbacK/xyZFiRcrPJPb41zgbQj9XAEyLKCH
|
|
|
86
86
|
ex0SdDrx+tWUDqG8At2JHA==
|
|
87
87
|
-----END CERTIFICATE-----
|
|
88
88
|
`;
|
|
89
|
+
/**
|
|
90
|
+
* Google Hardware Attestation Root 3
|
|
91
|
+
*
|
|
92
|
+
* Downloaded from https://developer.android.com/training/articles/security-key-attestation#root_certificate
|
|
93
|
+
* (third entry)
|
|
94
|
+
*
|
|
95
|
+
* Valid until 2036-11-13 @ 15:10 PST
|
|
96
|
+
*
|
|
97
|
+
* SHA256 Fingerprint
|
|
98
|
+
* AB:66:41:17:8A:36:E1:79:AA:0C:1C:DD:DF:9A:16:EB:45:FA:20:94:3E:2B:8C:D7:C7:C0:5C:26:CF:8B:48:7A
|
|
99
|
+
*/
|
|
100
|
+
exports.Google_Hardware_Attestation_Root_3 = `
|
|
101
|
+
-----BEGIN CERTIFICATE-----
|
|
102
|
+
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
|
|
129
|
+
mD/vFDkzF+wm7cyWpQpCVQ==
|
|
130
|
+
-----END CERTIFICATE-----
|
|
131
|
+
`;
|
|
132
|
+
/**
|
|
133
|
+
* Google Hardware Attestation Root 4
|
|
134
|
+
*
|
|
135
|
+
* Downloaded from https://developer.android.com/training/articles/security-key-attestation#root_certificate
|
|
136
|
+
* (fourth entry)
|
|
137
|
+
*
|
|
138
|
+
* Valid until 2042-03-15 @ 11:07 PDT
|
|
139
|
+
*
|
|
140
|
+
* SHA256 Fingerprint
|
|
141
|
+
* CE:DB:1C:B6:DC:89:6A:E5:EC:79:73:48:BC:E9:28:67:53:C2:B3:8E:E7:1C:E0:FB:E3:4A:9A:12:48:80:0D:FC
|
|
142
|
+
*/
|
|
143
|
+
exports.Google_Hardware_Attestation_Root_4 = `
|
|
144
|
+
-----BEGIN CERTIFICATE-----
|
|
145
|
+
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
|
|
172
|
+
w1IdYIg2Wxg7yHcQZemFQg==
|
|
173
|
+
-----END CERTIFICATE-----
|
|
174
|
+
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settingsService.d.ts","sourceRoot":"","sources":["../../src/services/settingsService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"settingsService.d.ts","sourceRoot":"","sources":["../../src/services/settingsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAa/E,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,KAAK,CAAC;AAE3D,UAAU,eAAe;IACvB;;;;;;OAMG;IACH,mBAAmB,CAAC,IAAI,EAAE;QACxB,UAAU,EAAE,kBAAkB,CAAC;QAC/B,YAAY,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;KACvC,GAAG,IAAI,CAAC;IAET;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,kBAAkB,CAAA;KAAE,GAAG,MAAM,EAAE,CAAC;CACzE;AAkCD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,EAAE,eAA2C,CAAC"}
|
|
@@ -56,6 +56,8 @@ exports.SettingsService.setRootCertificates({
|
|
|
56
56
|
certificates: [
|
|
57
57
|
android_key_js_1.Google_Hardware_Attestation_Root_1,
|
|
58
58
|
android_key_js_1.Google_Hardware_Attestation_Root_2,
|
|
59
|
+
android_key_js_1.Google_Hardware_Attestation_Root_3,
|
|
60
|
+
android_key_js_1.Google_Hardware_Attestation_Root_4,
|
|
59
61
|
],
|
|
60
62
|
});
|
|
61
63
|
exports.SettingsService.setRootCertificates({
|