@simplewebauthn/server 13.1.2 → 13.2.0

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.
Files changed (184) hide show
  1. package/esm/authentication/generateAuthenticationOptions.d.ts +2 -2
  2. package/esm/authentication/generateAuthenticationOptions.d.ts.map +1 -1
  3. package/esm/helpers/convertAAGUIDToString.d.ts +2 -1
  4. package/esm/helpers/convertAAGUIDToString.d.ts.map +1 -1
  5. package/esm/helpers/convertCOSEtoPKCS.d.ts +2 -1
  6. package/esm/helpers/convertCOSEtoPKCS.d.ts.map +1 -1
  7. package/esm/helpers/convertCertBufferToPEM.d.ts +2 -2
  8. package/esm/helpers/convertCertBufferToPEM.d.ts.map +1 -1
  9. package/esm/helpers/convertPEMToBytes.d.ts +2 -1
  10. package/esm/helpers/convertPEMToBytes.d.ts.map +1 -1
  11. package/esm/helpers/convertX509PublicKeyToCOSE.d.ts +2 -1
  12. package/esm/helpers/convertX509PublicKeyToCOSE.d.ts.map +1 -1
  13. package/esm/helpers/convertX509PublicKeyToCOSE.js +2 -2
  14. package/esm/helpers/cose.d.ts +11 -10
  15. package/esm/helpers/cose.d.ts.map +1 -1
  16. package/esm/helpers/cose.js +0 -11
  17. package/esm/helpers/decodeAttestationObject.d.ts +8 -7
  18. package/esm/helpers/decodeAttestationObject.d.ts.map +1 -1
  19. package/esm/helpers/decodeAuthenticatorExtensions.d.ts +2 -1
  20. package/esm/helpers/decodeAuthenticatorExtensions.d.ts.map +1 -1
  21. package/esm/helpers/decodeCredentialPublicKey.d.ts +3 -2
  22. package/esm/helpers/decodeCredentialPublicKey.d.ts.map +1 -1
  23. package/esm/helpers/generateChallenge.d.ts +3 -2
  24. package/esm/helpers/generateChallenge.d.ts.map +1 -1
  25. package/esm/helpers/generateUserID.d.ts +3 -2
  26. package/esm/helpers/generateUserID.d.ts.map +1 -1
  27. package/esm/helpers/getCertificateInfo.d.ts +2 -1
  28. package/esm/helpers/getCertificateInfo.d.ts.map +1 -1
  29. package/esm/helpers/isCertRevoked.d.ts +2 -2
  30. package/esm/helpers/isCertRevoked.d.ts.map +1 -1
  31. package/esm/helpers/isCertRevoked.js +19 -22
  32. package/esm/helpers/iso/isoBase64URL.d.ts +3 -3
  33. package/esm/helpers/iso/isoBase64URL.d.ts.map +1 -1
  34. package/esm/helpers/iso/isoBase64URL.js +1 -1
  35. package/esm/helpers/iso/isoCBOR.d.ts +3 -2
  36. package/esm/helpers/iso/isoCBOR.d.ts.map +1 -1
  37. package/esm/helpers/iso/isoCrypto/digest.d.ts +3 -2
  38. package/esm/helpers/iso/isoCrypto/digest.d.ts.map +1 -1
  39. package/esm/helpers/iso/isoCrypto/getRandomValues.d.ts +2 -1
  40. package/esm/helpers/iso/isoCrypto/getRandomValues.d.ts.map +1 -1
  41. package/esm/helpers/iso/isoCrypto/unwrapEC2Signature.d.ts +2 -1
  42. package/esm/helpers/iso/isoCrypto/unwrapEC2Signature.d.ts.map +1 -1
  43. package/esm/helpers/iso/isoCrypto/verify.d.ts +4 -3
  44. package/esm/helpers/iso/isoCrypto/verify.d.ts.map +1 -1
  45. package/esm/helpers/iso/isoCrypto/verifyEC2.d.ts +4 -3
  46. package/esm/helpers/iso/isoCrypto/verifyEC2.d.ts.map +1 -1
  47. package/esm/helpers/iso/isoCrypto/verifyOKP.d.ts +4 -3
  48. package/esm/helpers/iso/isoCrypto/verifyOKP.d.ts.map +1 -1
  49. package/esm/helpers/iso/isoCrypto/verifyRSA.d.ts +4 -3
  50. package/esm/helpers/iso/isoCrypto/verifyRSA.d.ts.map +1 -1
  51. package/esm/helpers/iso/isoUint8Array.d.ts +9 -8
  52. package/esm/helpers/iso/isoUint8Array.d.ts.map +1 -1
  53. package/esm/helpers/matchExpectedRPID.d.ts +2 -1
  54. package/esm/helpers/matchExpectedRPID.d.ts.map +1 -1
  55. package/esm/helpers/parseAuthenticatorData.d.ts +10 -9
  56. package/esm/helpers/parseAuthenticatorData.d.ts.map +1 -1
  57. package/esm/helpers/toHash.d.ts +3 -2
  58. package/esm/helpers/toHash.d.ts.map +1 -1
  59. package/esm/helpers/validateCertificatePath.d.ts.map +1 -1
  60. package/esm/helpers/validateCertificatePath.js +85 -90
  61. package/esm/helpers/validateExtFIDOGenCEAAGUID.d.ts +3 -2
  62. package/esm/helpers/validateExtFIDOGenCEAAGUID.d.ts.map +1 -1
  63. package/esm/helpers/verifySignature.d.ts +5 -4
  64. package/esm/helpers/verifySignature.d.ts.map +1 -1
  65. package/esm/metadata/verifyAttestationWithMetadata.d.ts +3 -2
  66. package/esm/metadata/verifyAttestationWithMetadata.d.ts.map +1 -1
  67. package/esm/metadata/verifyJWT.d.ts +2 -1
  68. package/esm/metadata/verifyJWT.d.ts.map +1 -1
  69. package/esm/registration/generateRegistrationOptions.d.ts +3 -3
  70. package/esm/registration/generateRegistrationOptions.d.ts.map +1 -1
  71. package/esm/registration/verifications/tpm/parseCertInfo.d.ts +9 -8
  72. package/esm/registration/verifications/tpm/parseCertInfo.d.ts.map +1 -1
  73. package/esm/registration/verifications/tpm/parsePubArea.d.ts +4 -3
  74. package/esm/registration/verifications/tpm/parsePubArea.d.ts.map +1 -1
  75. package/esm/registration/verifications/tpm/verifyAttestationTPM.d.ts.map +1 -1
  76. package/esm/registration/verifications/verifyAttestationAndroidKey.js +2 -2
  77. package/esm/registration/verifications/verifyAttestationAndroidSafetyNet.d.ts.map +1 -1
  78. package/esm/registration/verifications/verifyAttestationAndroidSafetyNet.js +2 -2
  79. package/esm/registration/verifyRegistrationResponse.d.ts +16 -10
  80. package/esm/registration/verifyRegistrationResponse.d.ts.map +1 -1
  81. package/esm/registration/verifyRegistrationResponse.js +12 -10
  82. package/esm/services/defaultRootCerts/mds.d.ts +1 -1
  83. package/esm/services/defaultRootCerts/mds.d.ts.map +1 -1
  84. package/esm/services/defaultRootCerts/mds.js +20 -20
  85. package/esm/services/metadataService.d.ts +2 -1
  86. package/esm/services/metadataService.d.ts.map +1 -1
  87. package/esm/services/metadataService.js +1 -1
  88. package/esm/services/settingsService.d.ts +2 -1
  89. package/esm/services/settingsService.d.ts.map +1 -1
  90. package/esm/types/index.d.ts +16 -1
  91. package/esm/types/index.d.ts.map +1 -1
  92. package/package.json +3 -2
  93. package/script/authentication/generateAuthenticationOptions.d.ts +2 -2
  94. package/script/authentication/generateAuthenticationOptions.d.ts.map +1 -1
  95. package/script/helpers/convertAAGUIDToString.d.ts +2 -1
  96. package/script/helpers/convertAAGUIDToString.d.ts.map +1 -1
  97. package/script/helpers/convertCOSEtoPKCS.d.ts +2 -1
  98. package/script/helpers/convertCOSEtoPKCS.d.ts.map +1 -1
  99. package/script/helpers/convertCertBufferToPEM.d.ts +2 -2
  100. package/script/helpers/convertCertBufferToPEM.d.ts.map +1 -1
  101. package/script/helpers/convertPEMToBytes.d.ts +2 -1
  102. package/script/helpers/convertPEMToBytes.d.ts.map +1 -1
  103. package/script/helpers/convertX509PublicKeyToCOSE.d.ts +2 -1
  104. package/script/helpers/convertX509PublicKeyToCOSE.d.ts.map +1 -1
  105. package/script/helpers/convertX509PublicKeyToCOSE.js +2 -2
  106. package/script/helpers/cose.d.ts +11 -10
  107. package/script/helpers/cose.d.ts.map +1 -1
  108. package/script/helpers/cose.js +0 -11
  109. package/script/helpers/decodeAttestationObject.d.ts +8 -7
  110. package/script/helpers/decodeAttestationObject.d.ts.map +1 -1
  111. package/script/helpers/decodeAuthenticatorExtensions.d.ts +2 -1
  112. package/script/helpers/decodeAuthenticatorExtensions.d.ts.map +1 -1
  113. package/script/helpers/decodeCredentialPublicKey.d.ts +3 -2
  114. package/script/helpers/decodeCredentialPublicKey.d.ts.map +1 -1
  115. package/script/helpers/generateChallenge.d.ts +3 -2
  116. package/script/helpers/generateChallenge.d.ts.map +1 -1
  117. package/script/helpers/generateUserID.d.ts +3 -2
  118. package/script/helpers/generateUserID.d.ts.map +1 -1
  119. package/script/helpers/getCertificateInfo.d.ts +2 -1
  120. package/script/helpers/getCertificateInfo.d.ts.map +1 -1
  121. package/script/helpers/isCertRevoked.d.ts +2 -2
  122. package/script/helpers/isCertRevoked.d.ts.map +1 -1
  123. package/script/helpers/isCertRevoked.js +19 -22
  124. package/script/helpers/iso/isoBase64URL.d.ts +3 -3
  125. package/script/helpers/iso/isoBase64URL.d.ts.map +1 -1
  126. package/script/helpers/iso/isoBase64URL.js +1 -1
  127. package/script/helpers/iso/isoCBOR.d.ts +3 -2
  128. package/script/helpers/iso/isoCBOR.d.ts.map +1 -1
  129. package/script/helpers/iso/isoCrypto/digest.d.ts +3 -2
  130. package/script/helpers/iso/isoCrypto/digest.d.ts.map +1 -1
  131. package/script/helpers/iso/isoCrypto/getRandomValues.d.ts +2 -1
  132. package/script/helpers/iso/isoCrypto/getRandomValues.d.ts.map +1 -1
  133. package/script/helpers/iso/isoCrypto/unwrapEC2Signature.d.ts +2 -1
  134. package/script/helpers/iso/isoCrypto/unwrapEC2Signature.d.ts.map +1 -1
  135. package/script/helpers/iso/isoCrypto/verify.d.ts +4 -3
  136. package/script/helpers/iso/isoCrypto/verify.d.ts.map +1 -1
  137. package/script/helpers/iso/isoCrypto/verifyEC2.d.ts +4 -3
  138. package/script/helpers/iso/isoCrypto/verifyEC2.d.ts.map +1 -1
  139. package/script/helpers/iso/isoCrypto/verifyOKP.d.ts +4 -3
  140. package/script/helpers/iso/isoCrypto/verifyOKP.d.ts.map +1 -1
  141. package/script/helpers/iso/isoCrypto/verifyRSA.d.ts +4 -3
  142. package/script/helpers/iso/isoCrypto/verifyRSA.d.ts.map +1 -1
  143. package/script/helpers/iso/isoUint8Array.d.ts +9 -8
  144. package/script/helpers/iso/isoUint8Array.d.ts.map +1 -1
  145. package/script/helpers/iso/isoUint8Array.js +4 -4
  146. package/script/helpers/matchExpectedRPID.d.ts +2 -1
  147. package/script/helpers/matchExpectedRPID.d.ts.map +1 -1
  148. package/script/helpers/parseAuthenticatorData.d.ts +10 -9
  149. package/script/helpers/parseAuthenticatorData.d.ts.map +1 -1
  150. package/script/helpers/toHash.d.ts +3 -2
  151. package/script/helpers/toHash.d.ts.map +1 -1
  152. package/script/helpers/validateCertificatePath.d.ts.map +1 -1
  153. package/script/helpers/validateCertificatePath.js +85 -90
  154. package/script/helpers/validateExtFIDOGenCEAAGUID.d.ts +3 -2
  155. package/script/helpers/validateExtFIDOGenCEAAGUID.d.ts.map +1 -1
  156. package/script/helpers/verifySignature.d.ts +5 -4
  157. package/script/helpers/verifySignature.d.ts.map +1 -1
  158. package/script/metadata/verifyAttestationWithMetadata.d.ts +3 -2
  159. package/script/metadata/verifyAttestationWithMetadata.d.ts.map +1 -1
  160. package/script/metadata/verifyJWT.d.ts +2 -1
  161. package/script/metadata/verifyJWT.d.ts.map +1 -1
  162. package/script/registration/generateRegistrationOptions.d.ts +3 -3
  163. package/script/registration/generateRegistrationOptions.d.ts.map +1 -1
  164. package/script/registration/verifications/tpm/parseCertInfo.d.ts +9 -8
  165. package/script/registration/verifications/tpm/parseCertInfo.d.ts.map +1 -1
  166. package/script/registration/verifications/tpm/parsePubArea.d.ts +4 -3
  167. package/script/registration/verifications/tpm/parsePubArea.d.ts.map +1 -1
  168. package/script/registration/verifications/tpm/verifyAttestationTPM.d.ts.map +1 -1
  169. package/script/registration/verifications/verifyAttestationAndroidKey.js +2 -2
  170. package/script/registration/verifications/verifyAttestationAndroidSafetyNet.d.ts.map +1 -1
  171. package/script/registration/verifications/verifyAttestationAndroidSafetyNet.js +2 -2
  172. package/script/registration/verifyRegistrationResponse.d.ts +16 -10
  173. package/script/registration/verifyRegistrationResponse.d.ts.map +1 -1
  174. package/script/registration/verifyRegistrationResponse.js +12 -10
  175. package/script/services/defaultRootCerts/mds.d.ts +1 -1
  176. package/script/services/defaultRootCerts/mds.d.ts.map +1 -1
  177. package/script/services/defaultRootCerts/mds.js +20 -20
  178. package/script/services/metadataService.d.ts +2 -1
  179. package/script/services/metadataService.d.ts.map +1 -1
  180. package/script/services/metadataService.js +1 -1
  181. package/script/services/settingsService.d.ts +2 -1
  182. package/script/services/settingsService.d.ts.map +1 -1
  183. package/script/types/index.d.ts +16 -1
  184. package/script/types/index.d.ts.map +1 -1
@@ -80,7 +80,7 @@ export async function verifyAttestationAndroidKey(options) {
80
80
  }
81
81
  catch (err) {
82
82
  const _err = err;
83
- throw new Error(`${_err.message} (Android Key)`);
83
+ throw new Error(`${_err.message} (Android Key)`, { cause: _err });
84
84
  }
85
85
  }
86
86
  else {
@@ -94,7 +94,7 @@ export async function verifyAttestationAndroidKey(options) {
94
94
  }
95
95
  catch (err) {
96
96
  const _err = err;
97
- throw new Error(`${_err.message} (Android Key)`);
97
+ throw new Error(`${_err.message} (Android Key)`, { cause: _err });
98
98
  }
99
99
  /**
100
100
  * Make sure the root certificate is one of the Google Hardware Attestation Root certificates
@@ -1 +1 @@
1
- {"version":3,"file":"verifyAttestationAndroidSafetyNet.d.ts","sourceRoot":"","sources":["../../../src/registration/verifications/verifyAttestationAndroidSafetyNet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAWtF;;GAEG;AACH,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,OAAO,CAAC,CA2IlB"}
1
+ {"version":3,"file":"verifyAttestationAndroidSafetyNet.d.ts","sourceRoot":"","sources":["../../../src/registration/verifications/verifyAttestationAndroidSafetyNet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAWtF;;GAEG;AACH,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,OAAO,CAAC,CA4IlB"}
@@ -10,7 +10,7 @@ import { verifyAttestationWithMetadata } from '../../metadata/verifyAttestationW
10
10
  * Verify an attestation response with fmt 'android-safetynet'
11
11
  */
12
12
  export async function verifyAttestationAndroidSafetyNet(options) {
13
- const { attStmt, clientDataHash, authData, aaguid, rootCertificates, verifyTimestampMS = true, credentialPublicKey, } = options;
13
+ const { attStmt, clientDataHash, authData, aaguid, rootCertificates, verifyTimestampMS = true, credentialPublicKey, attestationSafetyNetEnforceCTSCheck, } = options;
14
14
  const alg = attStmt.get('alg');
15
15
  const response = attStmt.get('response');
16
16
  const ver = attStmt.get('ver');
@@ -49,7 +49,7 @@ export async function verifyAttestationAndroidSafetyNet(options) {
49
49
  if (nonce !== expectedNonce) {
50
50
  throw new Error('Could not verify payload nonce (SafetyNet)');
51
51
  }
52
- if (!ctsProfileMatch) {
52
+ if (attestationSafetyNetEnforceCTSCheck && !ctsProfileMatch) {
53
53
  throw new Error('Could not verify device integrity (SafetyNet)');
54
54
  }
55
55
  /**
@@ -1,4 +1,4 @@
1
- import type { COSEAlgorithmIdentifier, CredentialDeviceType, RegistrationResponseJSON, WebAuthnCredential } from '../types/index.js';
1
+ import type { COSEAlgorithmIdentifier, CredentialDeviceType, RegistrationResponseJSON, Uint8Array_, WebAuthnCredential } from '../types/index.js';
2
2
  import { type AttestationFormat, type AttestationStatement } from '../helpers/decodeAttestationObject.js';
3
3
  import type { AuthenticationExtensionsAuthenticatorOutputs } from '../helpers/decodeAuthenticatorExtensions.js';
4
4
  /**
@@ -18,6 +18,7 @@ export type VerifyRegistrationResponseOpts = Parameters<typeof verifyRegistratio
18
18
  * @param requireUserPresence **(Optional)** - Enforce user presence by the authenticator (or skip it during auto registration) Defaults to `true`
19
19
  * @param requireUserVerification **(Optional)** - Enforce user verification by the authenticator (via PIN, fingerprint, etc...) Defaults to `true`
20
20
  * @param supportedAlgorithmIDs **(Optional)** - Array of numeric COSE algorithm identifiers supported for attestation by this RP. See https://www.iana.org/assignments/cose/cose.xhtml#algorithms. Defaults to all supported algorithm IDs
21
+ * @param attestationSafetyNetEnforceCTSCheck **(Optional)** - Require that an Android device's system integrity has not been tampered with if it uses SafetyNet attestation. Defaults to `true`
21
22
  */
22
23
  export declare function verifyRegistrationResponse(options: {
23
24
  response: RegistrationResponseJSON;
@@ -28,6 +29,7 @@ export declare function verifyRegistrationResponse(options: {
28
29
  requireUserPresence?: boolean;
29
30
  requireUserVerification?: boolean;
30
31
  supportedAlgorithmIDs?: COSEAlgorithmIdentifier[];
32
+ attestationSafetyNetEnforceCTSCheck?: boolean;
31
33
  }): Promise<VerifiedRegistrationResponse>;
32
34
  /**
33
35
  * Result of registration verification
@@ -56,13 +58,16 @@ export declare function verifyRegistrationResponse(options: {
56
58
  * by the browser
57
59
  */
58
60
  export type VerifiedRegistrationResponse = {
59
- verified: boolean;
60
- registrationInfo?: {
61
+ verified: false;
62
+ registrationInfo?: never;
63
+ } | {
64
+ verified: true;
65
+ registrationInfo: {
61
66
  fmt: AttestationFormat;
62
67
  aaguid: string;
63
68
  credential: WebAuthnCredential;
64
69
  credentialType: 'public-key';
65
- attestationObject: Uint8Array;
70
+ attestationObject: Uint8Array_;
66
71
  userVerified: boolean;
67
72
  credentialDeviceType: CredentialDeviceType;
68
73
  credentialBackedUp: boolean;
@@ -75,14 +80,15 @@ export type VerifiedRegistrationResponse = {
75
80
  * Values passed to all attestation format verifiers, from which they are free to use as they please
76
81
  */
77
82
  export type AttestationFormatVerifierOpts = {
78
- aaguid: Uint8Array;
83
+ aaguid: Uint8Array_;
79
84
  attStmt: AttestationStatement;
80
- authData: Uint8Array;
81
- clientDataHash: Uint8Array;
82
- credentialID: Uint8Array;
83
- credentialPublicKey: Uint8Array;
85
+ authData: Uint8Array_;
86
+ clientDataHash: Uint8Array_;
87
+ credentialID: Uint8Array_;
88
+ credentialPublicKey: Uint8Array_;
84
89
  rootCertificates: string[];
85
- rpIdHash: Uint8Array;
90
+ rpIdHash: Uint8Array_;
86
91
  verifyTimestampMS?: boolean;
92
+ attestationSafetyNetEnforceCTSCheck?: boolean;
87
93
  };
88
94
  //# sourceMappingURL=verifyRegistrationResponse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verifyRegistrationResponse.d.ts","sourceRoot":"","sources":["../../src/registration/verifyRegistrationResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAE1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,4CAA4C,EAAE,MAAM,6CAA6C,CAAC;AAoBhH;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9F;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE;IACP,QAAQ,EAAE,wBAAwB,CAAC;IACnC,iBAAiB,EAAE,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAChF,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qBAAqB,CAAC,EAAE,uBAAuB,EAAE,CAAC;CACnD,GACA,OAAO,CAAC,4BAA4B,CAAC,CAsPvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE;QACjB,GAAG,EAAE,iBAAiB,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,kBAAkB,CAAC;QAC/B,cAAc,EAAE,YAAY,CAAC;QAC7B,iBAAiB,EAAE,UAAU,CAAC;QAC9B,YAAY,EAAE,OAAO,CAAC;QACtB,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,kBAAkB,EAAE,OAAO,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,6BAA6B,CAAC,EAAE,4CAA4C,CAAC;KAC9E,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,QAAQ,EAAE,UAAU,CAAC;IACrB,cAAc,EAAE,UAAU,CAAC;IAC3B,YAAY,EAAE,UAAU,CAAC;IACzB,mBAAmB,EAAE,UAAU,CAAC;IAChC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,UAAU,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC"}
1
+ {"version":3,"file":"verifyRegistrationResponse.d.ts","sourceRoot":"","sources":["../../src/registration/verifyRegistrationResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,WAAW,EACX,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAE1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,4CAA4C,EAAE,MAAM,6CAA6C,CAAC;AAoBhH;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9F;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE;IACP,QAAQ,EAAE,wBAAwB,CAAC;IACnC,iBAAiB,EAAE,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAChF,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qBAAqB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAClD,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C,GACA,OAAO,CAAC,4BAA4B,CAAC,CAqPvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,KAAK,CAAC;IAChB,gBAAgB,CAAC,EAAE,KAAK,CAAC;CAC1B,GAAG;IACF,QAAQ,EAAE,IAAI,CAAC;IACf,gBAAgB,EAAE;QAChB,GAAG,EAAE,iBAAiB,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,kBAAkB,CAAC;QAC/B,cAAc,EAAE,YAAY,CAAC;QAC7B,iBAAiB,EAAE,WAAW,CAAC;QAC/B,YAAY,EAAE,OAAO,CAAC;QACtB,oBAAoB,EAAE,oBAAoB,CAAC;QAC3C,kBAAkB,EAAE,OAAO,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,6BAA6B,CAAC,EAAE,4CAA4C,CAAC;KAC9E,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,EAAE,WAAW,CAAC;IAC5B,YAAY,EAAE,WAAW,CAAC;IAC1B,mBAAmB,EAAE,WAAW,CAAC;IACjC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C,CAAC"}
@@ -29,9 +29,10 @@ import { verifyAttestationApple } from './verifications/verifyAttestationApple.j
29
29
  * @param requireUserPresence **(Optional)** - Enforce user presence by the authenticator (or skip it during auto registration) Defaults to `true`
30
30
  * @param requireUserVerification **(Optional)** - Enforce user verification by the authenticator (via PIN, fingerprint, etc...) Defaults to `true`
31
31
  * @param supportedAlgorithmIDs **(Optional)** - Array of numeric COSE algorithm identifiers supported for attestation by this RP. See https://www.iana.org/assignments/cose/cose.xhtml#algorithms. Defaults to all supported algorithm IDs
32
+ * @param attestationSafetyNetEnforceCTSCheck **(Optional)** - Require that an Android device's system integrity has not been tampered with if it uses SafetyNet attestation. Defaults to `true`
32
33
  */
33
34
  export async function verifyRegistrationResponse(options) {
34
- const { response, expectedChallenge, expectedOrigin, expectedRPID, expectedType, requireUserPresence = true, requireUserVerification = true, supportedAlgorithmIDs = supportedCOSEAlgorithmIdentifiers, } = options;
35
+ const { response, expectedChallenge, expectedOrigin, expectedRPID, expectedType, requireUserPresence = true, requireUserVerification = true, supportedAlgorithmIDs = supportedCOSEAlgorithmIdentifiers, attestationSafetyNetEnforceCTSCheck = true, } = options;
35
36
  const { id, rawId, type: credentialType, response: attestationResponse } = response;
36
37
  // Ensure credential specified an ID
37
38
  if (!id) {
@@ -150,6 +151,7 @@ export async function verifyRegistrationResponse(options) {
150
151
  credentialPublicKey,
151
152
  rootCertificates,
152
153
  rpIdHash,
154
+ attestationSafetyNetEnforceCTSCheck,
153
155
  };
154
156
  /**
155
157
  * Verification can only be performed when attestation = 'direct'
@@ -183,12 +185,13 @@ export async function verifyRegistrationResponse(options) {
183
185
  else {
184
186
  throw new Error(`Unsupported Attestation Format: ${fmt}`);
185
187
  }
186
- const toReturn = {
187
- verified,
188
- };
189
- if (toReturn.verified) {
190
- const { credentialDeviceType, credentialBackedUp } = parseBackupFlags(flags);
191
- toReturn.registrationInfo = {
188
+ if (!verified) {
189
+ return { verified: false };
190
+ }
191
+ const { credentialDeviceType, credentialBackedUp } = parseBackupFlags(flags);
192
+ return {
193
+ verified: true,
194
+ registrationInfo: {
192
195
  fmt,
193
196
  aaguid: convertAAGUIDToString(aaguid),
194
197
  credentialType,
@@ -205,7 +208,6 @@ export async function verifyRegistrationResponse(options) {
205
208
  origin: clientDataJSON.origin,
206
209
  rpID: matchedRPID,
207
210
  authenticatorExtensionResults: extensionsData,
208
- };
209
- }
210
- return toReturn;
211
+ },
212
+ };
211
213
  }
@@ -8,5 +8,5 @@
8
8
  * SHA256 Fingerprint
9
9
  * CB:B5:22:D7:B7:F1:27:AD:6A:01:13:86:5B:DF:1C:D4:10:2E:7D:07:59:AF:63:5A:7C:F4:72:0D:C9:63:C5:3B
10
10
  */
11
- export declare const GlobalSign_Root_CA_R3 = "-----BEGIN CERTIFICATE-----\n MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G\n A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp\n Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4\n MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG\n A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI\n hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8\n RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT\n gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm\n KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd\n QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ\n XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw\n DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o\n LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU\n RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp\n jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK\n 6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX\n mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs\n Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH\n WD9f\n -----END CERTIFICATE-----\n ";
11
+ export declare const GlobalSign_Root_CA_R3 = "-----BEGIN CERTIFICATE-----\nMIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G\nA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp\nZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4\nMTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG\nA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI\nhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8\nRgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT\ngHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm\nKPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd\nQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ\nXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw\nDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o\nLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU\nRUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp\njjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK\n6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX\nmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs\nMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH\nWD9f\n-----END CERTIFICATE-----\n ";
12
12
  //# sourceMappingURL=mds.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mds.d.ts","sourceRoot":"","sources":["../../../src/services/defaultRootCerts/mds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,4vCAqBhC,CAAC"}
1
+ {"version":3,"file":"mds.d.ts","sourceRoot":"","sources":["../../../src/services/defaultRootCerts/mds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,wuCAqBhC,CAAC"}
@@ -9,24 +9,24 @@
9
9
  * CB:B5:22:D7:B7:F1:27:AD:6A:01:13:86:5B:DF:1C:D4:10:2E:7D:07:59:AF:63:5A:7C:F4:72:0D:C9:63:C5:3B
10
10
  */
11
11
  export const GlobalSign_Root_CA_R3 = `-----BEGIN CERTIFICATE-----
12
- MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
13
- A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
14
- Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
15
- MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
16
- A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
17
- hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
18
- RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
19
- gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
20
- KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
21
- QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
22
- XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
23
- DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
24
- LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
25
- RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
26
- jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
27
- 6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
28
- mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
29
- Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
30
- WD9f
31
- -----END CERTIFICATE-----
12
+ MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
13
+ A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
14
+ Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
15
+ MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
16
+ A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
17
+ hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
18
+ RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
19
+ gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
20
+ KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
21
+ QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
22
+ XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
23
+ DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
24
+ LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
25
+ RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
26
+ jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
27
+ 6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
28
+ mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
29
+ Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
30
+ WD9f
31
+ -----END CERTIFICATE-----
32
32
  `;
@@ -1,4 +1,5 @@
1
1
  import type { MetadataStatement } from '../metadata/mdsTypes.js';
2
+ import type { Uint8Array_ } from '../types/index.js';
2
3
  /**
3
4
  * Allow MetadataService to accommodate unregistered AAGUIDs (`"permissive"`), or only allow
4
5
  * registered AAGUIDs (`"strict"`). Currently primarily impacts how `getStatement()` operates
@@ -47,7 +48,7 @@ export declare class BaseMetadataService implements MetadataService {
47
48
  statements?: MetadataStatement[];
48
49
  verificationMode?: VerificationMode;
49
50
  }): Promise<void>;
50
- getStatement(aaguid: string | Uint8Array): Promise<MetadataStatement | undefined>;
51
+ getStatement(aaguid: string | Uint8Array_): Promise<MetadataStatement | undefined>;
51
52
  /**
52
53
  * Download and process the latest BLOB from MDS
53
54
  */
@@ -1 +1 @@
1
- {"version":3,"file":"metadataService.d.ts","sourceRoot":"","sources":["../../src/services/metadataService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AA6BjC;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,QAAQ,CAAC;AAIvD,UAAU,eAAe;IACvB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE;QAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;QACjC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;CACnF;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,gBAAgB,CAA8B;IAEhD,UAAU,CACd,IAAI,GAAE;QACJ,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;QACjC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KAChC,GACL,OAAO,CAAC,IAAI,CAAC;IA+DV,YAAY,CAChB,MAAM,EAAE,MAAM,GAAG,UAAU,GAC1B,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IA6DzC;;OAEG;YACW,YAAY;IAoE1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAgCvB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAWjB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,eAA2C,CAAC"}
1
+ {"version":3,"file":"metadataService.d.ts","sourceRoot":"","sources":["../../src/services/metadataService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAIV,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAyBrD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,QAAQ,CAAC;AAIvD,UAAU,eAAe;IACvB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE;QAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;QACjC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;CACnF;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,gBAAgB,CAA8B;IAEhD,UAAU,CACd,IAAI,GAAE;QACJ,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;QACjC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KAChC,GACL,OAAO,CAAC,IAAI,CAAC;IA+DV,YAAY,CAChB,MAAM,EAAE,MAAM,GAAG,WAAW,GAC3B,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IA6DzC;;OAEG;YACW,YAAY;IAqE1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAgCvB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAWjB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,eAA2C,CAAC"}
@@ -177,7 +177,7 @@ export class BaseMetadataService {
177
177
  const _error = error;
178
178
  // From FIDO MDS docs: "ignore the file if the chain cannot be verified or if one of the
179
179
  // chain certificates is revoked"
180
- throw new Error(`BLOB certificate path could not be validated: ${_error.message}`);
180
+ throw new Error('BLOB certificate path could not be validated', { cause: _error });
181
181
  }
182
182
  // Verify the BLOB JWT signature
183
183
  const leafCert = headerCertsPEM[0];
@@ -1,4 +1,5 @@
1
1
  import type { AttestationFormat } from '../helpers/decodeAttestationObject.js';
2
+ import type { Uint8Array_ } from '../types/index.js';
2
3
  export type RootCertIdentifier = AttestationFormat | 'mds';
3
4
  interface SettingsService {
4
5
  /**
@@ -10,7 +11,7 @@ interface SettingsService {
10
11
  */
11
12
  setRootCertificates(opts: {
12
13
  identifier: RootCertIdentifier;
13
- certificates: (Uint8Array | string)[];
14
+ certificates: (Uint8Array_ | string)[];
14
15
  }): void;
15
16
  /**
16
17
  * Get any registered root certificates for the specified attestation format
@@ -1 +1 @@
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
+ {"version":3,"file":"settingsService.d.ts","sourceRoot":"","sources":["../../src/services/settingsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAYrD,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,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC;KACxC,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"}
@@ -130,7 +130,7 @@ export interface AuthenticatorAssertionResponseJSON {
130
130
  */
131
131
  export type WebAuthnCredential = {
132
132
  id: Base64URLString;
133
- publicKey: Uint8Array;
133
+ publicKey: Uint8Array_;
134
134
  counter: number;
135
135
  transports?: AuthenticatorTransportFuture[];
136
136
  };
@@ -202,4 +202,19 @@ export type PublicKeyCredentialHint = 'hybrid' | 'security-key' | 'client-device
202
202
  * See https://www.iana.org/assignments/webauthn/webauthn.xhtml#webauthn-attestation-statement-format-ids
203
203
  */
204
204
  export type AttestationFormat = 'fido-u2f' | 'packed' | 'android-safetynet' | 'android-key' | 'tpm' | 'apple' | 'none';
205
+ /**
206
+ * Equivalent to `Uint8Array` before TypeScript 5.7, and `Uint8Array<ArrayBuffer>` in TypeScript 5.7
207
+ * and beyond.
208
+ *
209
+ * **Context**
210
+ *
211
+ * `Uint8Array` became a generic type in TypeScript 5.7, requiring types defined simply as
212
+ * `Uint8Array` to be refactored to `Uint8Array<ArrayBuffer>` starting in Deno 2.2. `Uint8Array` is
213
+ * _not_ generic in Deno 2.1.x and earlier, though, so this type helps bridge this gap.
214
+ *
215
+ * Inspired by Deno's std library:
216
+ *
217
+ * https://github.com/denoland/std/blob/b5a5fe4f96b91c1fe8dba5cc0270092dd11d3287/bytes/_types.ts#L11
218
+ */
219
+ export type Uint8Array_ = ReturnType<Uint8Array['slice']>;
205
220
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplewebauthn/server",
3
- "version": "13.1.2",
3
+ "version": "13.2.0",
4
4
  "description": "SimpleWebAuthn for Servers",
5
5
  "keywords": [
6
6
  "typescript",
@@ -55,7 +55,8 @@
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"
58
+ "@peculiar/asn1-x509": "^2.3.8",
59
+ "@peculiar/x509": "^1.13.0"
59
60
  },
60
61
  "devDependencies": {
61
62
  "@types/node": "^20.9.0"
@@ -1,4 +1,4 @@
1
- import type { AuthenticationExtensionsClientInputs, AuthenticatorTransportFuture, Base64URLString, PublicKeyCredentialRequestOptionsJSON } from '../types/index.js';
1
+ import type { AuthenticationExtensionsClientInputs, AuthenticatorTransportFuture, Base64URLString, PublicKeyCredentialRequestOptionsJSON, Uint8Array_ } from '../types/index.js';
2
2
  export type GenerateAuthenticationOptionsOpts = Parameters<typeof generateAuthenticationOptions>[0];
3
3
  /**
4
4
  * Prepare a value to pass into navigator.credentials.get(...) for authenticator authentication
@@ -18,7 +18,7 @@ export declare function generateAuthenticationOptions(options: {
18
18
  id: Base64URLString;
19
19
  transports?: AuthenticatorTransportFuture[];
20
20
  }[];
21
- challenge?: string | Uint8Array;
21
+ challenge?: string | Uint8Array_;
22
22
  timeout?: number;
23
23
  userVerification?: 'required' | 'preferred' | 'discouraged';
24
24
  extensions?: AuthenticationExtensionsClientInputs;
@@ -1 +1 @@
1
- {"version":3,"file":"generateAuthenticationOptions.d.ts","sourceRoot":"","sources":["../../src/authentication/generateAuthenticationOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oCAAoC,EACpC,4BAA4B,EAC5B,eAAe,EACf,qCAAqC,EACtC,MAAM,mBAAmB,CAAC;AAI3B,MAAM,MAAM,iCAAiC,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpG;;;;;;;;;;;GAWG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE;QACjB,EAAE,EAAE,eAAe,CAAC;QACpB,UAAU,CAAC,EAAE,4BAA4B,EAAE,CAAC;KAC7C,EAAE,CAAC;IACJ,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;IAC5D,UAAU,CAAC,EAAE,oCAAoC,CAAC;CACnD,GACA,OAAO,CAAC,qCAAqC,CAAC,CAoChD"}
1
+ {"version":3,"file":"generateAuthenticationOptions.d.ts","sourceRoot":"","sources":["../../src/authentication/generateAuthenticationOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oCAAoC,EACpC,4BAA4B,EAC5B,eAAe,EACf,qCAAqC,EACrC,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAI3B,MAAM,MAAM,iCAAiC,GAAG,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpG;;;;;;;;;;;GAWG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE;IACP,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE;QACjB,EAAE,EAAE,eAAe,CAAC;QACpB,UAAU,CAAC,EAAE,4BAA4B,EAAE,CAAC;KAC7C,EAAE,CAAC;IACJ,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;IAC5D,UAAU,CAAC,EAAE,oCAAoC,CAAC;CACnD,GACA,OAAO,CAAC,qCAAqC,CAAC,CAoChD"}
@@ -1,5 +1,6 @@
1
+ import type { Uint8Array_ } from '../types/index.js';
1
2
  /**
2
3
  * Convert the aaguid buffer in authData into a UUID string
3
4
  */
4
- export declare function convertAAGUIDToString(aaguid: Uint8Array): string;
5
+ export declare function convertAAGUIDToString(aaguid: Uint8Array_): string;
5
6
  //# sourceMappingURL=convertAAGUIDToString.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertAAGUIDToString.d.ts","sourceRoot":"","sources":["../../src/helpers/convertAAGUIDToString.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAchE"}
1
+ {"version":3,"file":"convertAAGUIDToString.d.ts","sourceRoot":"","sources":["../../src/helpers/convertAAGUIDToString.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAcjE"}
@@ -1,5 +1,6 @@
1
+ import type { Uint8Array_ } from '../types/index.js';
1
2
  /**
2
3
  * Takes COSE-encoded public key and converts it to PKCS key
3
4
  */
4
- export declare function convertCOSEtoPKCS(cosePublicKey: Uint8Array): Uint8Array;
5
+ export declare function convertCOSEtoPKCS(cosePublicKey: Uint8Array_): Uint8Array_;
5
6
  //# sourceMappingURL=convertCOSEtoPKCS.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertCOSEtoPKCS.d.ts","sourceRoot":"","sources":["../../src/helpers/convertCOSEtoPKCS.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,UAAU,GAAG,UAAU,CAmBvE"}
1
+ {"version":3,"file":"convertCOSEtoPKCS.d.ts","sourceRoot":"","sources":["../../src/helpers/convertCOSEtoPKCS.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,WAAW,GAAG,WAAW,CAmBzE"}
@@ -1,6 +1,6 @@
1
- import type { Base64URLString } from '../types/index.js';
1
+ import type { Base64URLString, Uint8Array_ } from '../types/index.js';
2
2
  /**
3
3
  * Convert buffer to an OpenSSL-compatible PEM text format.
4
4
  */
5
- export declare function convertCertBufferToPEM(certBuffer: Uint8Array | Base64URLString): string;
5
+ export declare function convertCertBufferToPEM(certBuffer: Uint8Array_ | Base64URLString): string;
6
6
  //# sourceMappingURL=convertCertBufferToPEM.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertCertBufferToPEM.d.ts","sourceRoot":"","sources":["../../src/helpers/convertCertBufferToPEM.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,UAAU,GAAG,eAAe,GACvC,MAAM,CA4BR"}
1
+ {"version":3,"file":"convertCertBufferToPEM.d.ts","sourceRoot":"","sources":["../../src/helpers/convertCertBufferToPEM.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGtE;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,WAAW,GAAG,eAAe,GACxC,MAAM,CA4BR"}
@@ -1,5 +1,6 @@
1
+ import type { Uint8Array_ } from '../types/index.js';
1
2
  /**
2
3
  * Take a certificate in PEM format and convert it to bytes
3
4
  */
4
- export declare function convertPEMToBytes(pem: string): Uint8Array;
5
+ export declare function convertPEMToBytes(pem: string): Uint8Array_;
5
6
  //# sourceMappingURL=convertPEMToBytes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertPEMToBytes.d.ts","sourceRoot":"","sources":["../../src/helpers/convertPEMToBytes.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAOzD"}
1
+ {"version":3,"file":"convertPEMToBytes.d.ts","sourceRoot":"","sources":["../../src/helpers/convertPEMToBytes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAO1D"}
@@ -1,3 +1,4 @@
1
1
  import { COSEPublicKey } from './cose.js';
2
- export declare function convertX509PublicKeyToCOSE(x509Certificate: Uint8Array): COSEPublicKey;
2
+ import type { Uint8Array_ } from '../types/index.js';
3
+ export declare function convertX509PublicKeyToCOSE(x509Certificate: Uint8Array_): COSEPublicKey;
3
4
  //# sourceMappingURL=convertX509PublicKeyToCOSE.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertX509PublicKeyToCOSE.d.ts","sourceRoot":"","sources":["../../src/helpers/convertX509PublicKeyToCOSE.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,aAAa,EAGd,MAAM,WAAW,CAAC;AAKnB,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,UAAU,GAC1B,aAAa,CA+Ff"}
1
+ {"version":3,"file":"convertX509PublicKeyToCOSE.d.ts","sourceRoot":"","sources":["../../src/helpers/convertX509PublicKeyToCOSE.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,aAAa,EAGd,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,WAAW,GAC3B,aAAa,CA+Ff"}
@@ -4,8 +4,8 @@ exports.convertX509PublicKeyToCOSE = convertX509PublicKeyToCOSE;
4
4
  const asn1_schema_1 = require("@peculiar/asn1-schema");
5
5
  const asn1_x509_1 = require("@peculiar/asn1-x509");
6
6
  const asn1_ecc_1 = require("@peculiar/asn1-ecc");
7
- const cose_js_1 = require("./cose.js");
8
7
  const asn1_rsa_1 = require("@peculiar/asn1-rsa");
8
+ const cose_js_1 = require("./cose.js");
9
9
  const mapX509SignatureAlgToCOSEAlg_js_1 = require("./mapX509SignatureAlgToCOSEAlg.js");
10
10
  function convertX509PublicKeyToCOSE(x509Certificate) {
11
11
  let cosePublicKey = new Map();
@@ -57,7 +57,7 @@ function convertX509PublicKeyToCOSE(x509Certificate) {
57
57
  coseEC2PubKey.set(cose_js_1.COSEKEYS.y, y);
58
58
  cosePublicKey = coseEC2PubKey;
59
59
  }
60
- else if (publicKeyAlgorithmID === '1.2.840.113549.1.1.1') {
60
+ else if (publicKeyAlgorithmID === asn1_rsa_1.id_rsaEncryption) {
61
61
  /**
62
62
  * RSA public key
63
63
  */
@@ -1,3 +1,4 @@
1
+ import type { Uint8Array_ } from '../types/index.js';
1
2
  /**
2
3
  * Fundamental values that are needed to discern the more specific COSE public key types below.
3
4
  *
@@ -23,29 +24,29 @@ export type COSEPublicKey = {
23
24
  */
24
25
  export type COSEPublicKeyOKP = COSEPublicKey & {
25
26
  get(key: COSEKEYS.crv): number | undefined;
26
- get(key: COSEKEYS.x): Uint8Array | undefined;
27
+ get(key: COSEKEYS.x): Uint8Array_ | undefined;
27
28
  set(key: COSEKEYS.crv, value: number): void;
28
- set(key: COSEKEYS.x, value: Uint8Array): void;
29
+ set(key: COSEKEYS.x, value: Uint8Array_): void;
29
30
  };
30
31
  /**
31
32
  * Values specific to Elliptic Curve Cryptography public keys
32
33
  */
33
34
  export type COSEPublicKeyEC2 = COSEPublicKey & {
34
35
  get(key: COSEKEYS.crv): number | undefined;
35
- get(key: COSEKEYS.x): Uint8Array | undefined;
36
- get(key: COSEKEYS.y): Uint8Array | undefined;
36
+ get(key: COSEKEYS.x): Uint8Array_ | undefined;
37
+ get(key: COSEKEYS.y): Uint8Array_ | undefined;
37
38
  set(key: COSEKEYS.crv, value: number): void;
38
- set(key: COSEKEYS.x, value: Uint8Array): void;
39
- set(key: COSEKEYS.y, value: Uint8Array): void;
39
+ set(key: COSEKEYS.x, value: Uint8Array_): void;
40
+ set(key: COSEKEYS.y, value: Uint8Array_): void;
40
41
  };
41
42
  /**
42
43
  * Values specific to RSA public keys
43
44
  */
44
45
  export type COSEPublicKeyRSA = COSEPublicKey & {
45
- get(key: COSEKEYS.n): Uint8Array | undefined;
46
- get(key: COSEKEYS.e): Uint8Array | undefined;
47
- set(key: COSEKEYS.n, value: Uint8Array): void;
48
- set(key: COSEKEYS.e, value: Uint8Array): void;
46
+ get(key: COSEKEYS.n): Uint8Array_ | undefined;
47
+ get(key: COSEKEYS.e): Uint8Array_ | undefined;
48
+ set(key: COSEKEYS.n, value: Uint8Array_): void;
49
+ set(key: COSEKEYS.e, value: Uint8Array_): void;
49
50
  };
50
51
  /**
51
52
  * A type guard for determining if a COSE public key is an OKP key pair
@@ -1 +1 @@
1
- {"version":3,"file":"cose.d.ts","sourceRoot":"","sources":["../../src/helpers/cose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cose.d.ts","sourceRoot":"","sources":["../../src/helpers/cose.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * Fundamental values that are needed to discern the more specific COSE public key types below.
4
- *
5
- * The use of `Maps` here is due to CBOR encoding being used with public keys, and the CBOR "Map"
6
- * type is being decoded to JavaScript's `Map` type instead of, say, a basic Object as us JS
7
- * developers might prefer.
8
- *
9
- * These types are an unorthodox way of saying "these Maps should involve these discrete lists of
10
- * keys", but it works.
11
- * @module
12
- */
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
3
  exports.COSEALG = exports.COSECRV = exports.COSEKTY = exports.COSEKEYS = void 0;
15
4
  exports.isCOSEPublicKeyOKP = isCOSEPublicKeyOKP;
@@ -1,27 +1,28 @@
1
+ import type { Uint8Array_ } from '../types/index.js';
1
2
  /**
2
3
  * Convert an AttestationObject buffer to a proper object
3
4
  *
4
5
  * @param base64AttestationObject Attestation Object buffer
5
6
  */
6
- export declare function decodeAttestationObject(attestationObject: Uint8Array): AttestationObject;
7
+ export declare function decodeAttestationObject(attestationObject: Uint8Array_): AttestationObject;
7
8
  export type AttestationFormat = 'fido-u2f' | 'packed' | 'android-safetynet' | 'android-key' | 'tpm' | 'apple' | 'none';
8
9
  export type AttestationObject = {
9
10
  get(key: 'fmt'): AttestationFormat;
10
11
  get(key: 'attStmt'): AttestationStatement;
11
- get(key: 'authData'): Uint8Array;
12
+ get(key: 'authData'): Uint8Array_;
12
13
  };
13
14
  /**
14
15
  * `AttestationStatement` will be an instance of `Map`, but these keys help make finite the list of
15
16
  * possible values within it.
16
17
  */
17
18
  export type AttestationStatement = {
18
- get(key: 'sig'): Uint8Array | undefined;
19
- get(key: 'x5c'): Uint8Array[] | undefined;
20
- get(key: 'response'): Uint8Array | undefined;
19
+ get(key: 'sig'): Uint8Array_ | undefined;
20
+ get(key: 'x5c'): Uint8Array_[] | undefined;
21
+ get(key: 'response'): Uint8Array_ | undefined;
21
22
  get(key: 'alg'): number | undefined;
22
23
  get(key: 'ver'): string | undefined;
23
- get(key: 'certInfo'): Uint8Array | undefined;
24
- get(key: 'pubArea'): Uint8Array | undefined;
24
+ get(key: 'certInfo'): Uint8Array_ | undefined;
25
+ get(key: 'pubArea'): Uint8Array_ | undefined;
25
26
  readonly size: number;
26
27
  };
27
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"decodeAttestationObject.d.ts","sourceRoot":"","sources":["../../src/helpers/decodeAttestationObject.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,iBAAiB,EAAE,UAAU,GAC5B,iBAAiB,CAInB;AAED,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,QAAQ,GACR,mBAAmB,GACnB,aAAa,GACb,KAAK,GACL,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,iBAAiB,CAAC;IACnC,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,oBAAoB,CAAC;IAC1C,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IACxC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC;IAC1C,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7C,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7C,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAE5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iCAAiC;sBAC1B,iBAAiB;CACpC,CAAC"}
1
+ {"version":3,"file":"decodeAttestationObject.d.ts","sourceRoot":"","sources":["../../src/helpers/decodeAttestationObject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,iBAAiB,EAAE,WAAW,GAC7B,iBAAiB,CAInB;AAED,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,QAAQ,GACR,mBAAmB,GACnB,aAAa,GACb,KAAK,GACL,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,iBAAiB,CAAC;IACnC,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,oBAAoB,CAAC;IAC1C,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,WAAW,GAAG,SAAS,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,WAAW,EAAE,GAAG,SAAS,CAAC;IAC3C,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC9C,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC9C,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAE7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iCAAiC;sBAC1B,iBAAiB;CACpC,CAAC"}
@@ -1,9 +1,10 @@
1
+ import type { Uint8Array_ } from '../types/index.js';
1
2
  /**
2
3
  * Convert authenticator extension data buffer to a proper object
3
4
  *
4
5
  * @param extensionData Authenticator Extension Data buffer
5
6
  */
6
- export declare function decodeAuthenticatorExtensions(extensionData: Uint8Array): AuthenticationExtensionsAuthenticatorOutputs | undefined;
7
+ export declare function decodeAuthenticatorExtensions(extensionData: Uint8Array_): AuthenticationExtensionsAuthenticatorOutputs | undefined;
7
8
  /**
8
9
  * Attempt to support authenticator extensions we might not know about in WebAuthn
9
10
  */