@simplewebauthn/server 10.0.0 → 11.0.0-alpha3

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 (348) hide show
  1. package/README.md +14 -6
  2. package/esm/authentication/generateAuthenticationOptions.d.ts +2 -1
  3. package/esm/authentication/generateAuthenticationOptions.d.ts.map +1 -0
  4. package/esm/authentication/verifyAuthenticationResponse.d.ts +4 -3
  5. package/esm/authentication/verifyAuthenticationResponse.d.ts.map +1 -0
  6. package/esm/authentication/verifyAuthenticationResponse.js +7 -7
  7. package/esm/helpers/convertAAGUIDToString.d.ts +1 -0
  8. package/esm/helpers/convertAAGUIDToString.d.ts.map +1 -0
  9. package/esm/helpers/convertAAGUIDToString.js +4 -4
  10. package/esm/helpers/convertCOSEtoPKCS.d.ts +1 -0
  11. package/esm/helpers/convertCOSEtoPKCS.d.ts.map +1 -0
  12. package/esm/helpers/convertCertBufferToPEM.d.ts +2 -1
  13. package/esm/helpers/convertCertBufferToPEM.d.ts.map +1 -0
  14. package/esm/helpers/convertPEMToBytes.d.ts +1 -0
  15. package/esm/helpers/convertPEMToBytes.d.ts.map +1 -0
  16. package/esm/helpers/convertX509PublicKeyToCOSE.d.ts +1 -0
  17. package/esm/helpers/convertX509PublicKeyToCOSE.d.ts.map +1 -0
  18. package/esm/helpers/convertX509PublicKeyToCOSE.js +4 -1
  19. package/esm/helpers/cose.d.ts +1 -0
  20. package/esm/helpers/cose.d.ts.map +1 -0
  21. package/esm/helpers/decodeAttestationObject.d.ts +1 -0
  22. package/esm/helpers/decodeAttestationObject.d.ts.map +1 -0
  23. package/esm/helpers/decodeAuthenticatorExtensions.d.ts +5 -14
  24. package/esm/helpers/decodeAuthenticatorExtensions.d.ts.map +1 -0
  25. package/esm/helpers/decodeClientDataJSON.d.ts +2 -1
  26. package/esm/helpers/decodeClientDataJSON.d.ts.map +1 -0
  27. package/esm/helpers/decodeCredentialPublicKey.d.ts +1 -0
  28. package/esm/helpers/decodeCredentialPublicKey.d.ts.map +1 -0
  29. package/esm/helpers/fetch.d.ts +1 -0
  30. package/esm/helpers/fetch.d.ts.map +1 -0
  31. package/esm/helpers/fetch.js +1 -1
  32. package/esm/helpers/generateChallenge.d.ts +1 -0
  33. package/esm/helpers/generateChallenge.d.ts.map +1 -0
  34. package/esm/helpers/generateUserID.d.ts +1 -0
  35. package/esm/helpers/generateUserID.d.ts.map +1 -0
  36. package/esm/helpers/getCertificateInfo.d.ts +2 -1
  37. package/esm/helpers/getCertificateInfo.d.ts.map +1 -0
  38. package/esm/helpers/getCertificateInfo.js +2 -1
  39. package/esm/helpers/index.d.ts +1 -0
  40. package/esm/helpers/index.d.ts.map +1 -0
  41. package/esm/helpers/isCertRevoked.d.ts +2 -1
  42. package/esm/helpers/isCertRevoked.d.ts.map +1 -0
  43. package/esm/helpers/isCertRevoked.js +2 -1
  44. package/esm/helpers/iso/index.d.ts +1 -0
  45. package/esm/helpers/iso/index.d.ts.map +1 -0
  46. package/esm/helpers/iso/isoBase64URL.d.ts +2 -1
  47. package/esm/helpers/iso/isoBase64URL.d.ts.map +1 -0
  48. package/esm/helpers/iso/isoBase64URL.js +1 -1
  49. package/esm/helpers/iso/isoCBOR.d.ts +2 -1
  50. package/esm/helpers/iso/isoCBOR.d.ts.map +1 -0
  51. package/esm/helpers/iso/isoCBOR.js +1 -1
  52. package/esm/helpers/iso/isoCrypto/digest.d.ts +1 -0
  53. package/esm/helpers/iso/isoCrypto/digest.d.ts.map +1 -0
  54. package/esm/helpers/iso/isoCrypto/getRandomValues.d.ts +1 -0
  55. package/esm/helpers/iso/isoCrypto/getRandomValues.d.ts.map +1 -0
  56. package/esm/helpers/iso/isoCrypto/getWebCrypto.d.ts +2 -1
  57. package/esm/helpers/iso/isoCrypto/getWebCrypto.d.ts.map +1 -0
  58. package/esm/helpers/iso/isoCrypto/importKey.d.ts +1 -0
  59. package/esm/helpers/iso/isoCrypto/importKey.d.ts.map +1 -0
  60. package/esm/helpers/iso/isoCrypto/index.d.ts +1 -0
  61. package/esm/helpers/iso/isoCrypto/index.d.ts.map +1 -0
  62. package/esm/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoAlg.d.ts +1 -0
  63. package/esm/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoAlg.d.ts.map +1 -0
  64. package/esm/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoKeyAlgName.d.ts +1 -0
  65. package/esm/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoKeyAlgName.d.ts.map +1 -0
  66. package/esm/helpers/iso/isoCrypto/structs.d.ts +1 -0
  67. package/esm/helpers/iso/isoCrypto/structs.d.ts.map +1 -0
  68. package/esm/helpers/iso/isoCrypto/unwrapEC2Signature.d.ts +3 -1
  69. package/esm/helpers/iso/isoCrypto/unwrapEC2Signature.d.ts.map +1 -0
  70. package/esm/helpers/iso/isoCrypto/unwrapEC2Signature.js +60 -17
  71. package/esm/helpers/iso/isoCrypto/verify.d.ts +1 -0
  72. package/esm/helpers/iso/isoCrypto/verify.d.ts.map +1 -0
  73. package/esm/helpers/iso/isoCrypto/verify.js +6 -2
  74. package/esm/helpers/iso/isoCrypto/verifyEC2.d.ts +1 -0
  75. package/esm/helpers/iso/isoCrypto/verifyEC2.d.ts.map +1 -0
  76. package/esm/helpers/iso/isoCrypto/verifyOKP.d.ts +1 -0
  77. package/esm/helpers/iso/isoCrypto/verifyOKP.d.ts.map +1 -0
  78. package/esm/helpers/iso/isoCrypto/verifyRSA.d.ts +1 -0
  79. package/esm/helpers/iso/isoCrypto/verifyRSA.d.ts.map +1 -0
  80. package/esm/helpers/iso/isoUint8Array.d.ts +1 -0
  81. package/esm/helpers/iso/isoUint8Array.d.ts.map +1 -0
  82. package/esm/helpers/logging.d.ts +1 -0
  83. package/esm/helpers/logging.d.ts.map +1 -0
  84. package/esm/helpers/logging.js +0 -1
  85. package/esm/helpers/mapX509SignatureAlgToCOSEAlg.d.ts +1 -0
  86. package/esm/helpers/mapX509SignatureAlgToCOSEAlg.d.ts.map +1 -0
  87. package/esm/helpers/matchExpectedRPID.d.ts +1 -0
  88. package/esm/helpers/matchExpectedRPID.d.ts.map +1 -0
  89. package/esm/helpers/parseAuthenticatorData.d.ts +1 -0
  90. package/esm/helpers/parseAuthenticatorData.d.ts.map +1 -0
  91. package/esm/helpers/parseAuthenticatorData.js +6 -6
  92. package/esm/helpers/parseBackupFlags.d.ts +2 -1
  93. package/esm/helpers/parseBackupFlags.d.ts.map +1 -0
  94. package/esm/helpers/toHash.d.ts +1 -0
  95. package/esm/helpers/toHash.d.ts.map +1 -0
  96. package/esm/helpers/validateCertificatePath.d.ts +1 -0
  97. package/esm/helpers/validateCertificatePath.d.ts.map +1 -0
  98. package/esm/helpers/validateCertificatePath.js +1 -1
  99. package/esm/helpers/validateExtFIDOGenCEAAGUID.d.ts +7 -0
  100. package/esm/helpers/validateExtFIDOGenCEAAGUID.d.ts.map +1 -0
  101. package/esm/helpers/validateExtFIDOGenCEAAGUID.js +34 -0
  102. package/esm/helpers/verifySignature.d.ts +1 -0
  103. package/esm/helpers/verifySignature.d.ts.map +1 -0
  104. package/esm/index.d.ts +1 -0
  105. package/esm/index.d.ts.map +1 -0
  106. package/esm/metadata/mdsTypes.d.ts +2 -1
  107. package/esm/metadata/mdsTypes.d.ts.map +1 -0
  108. package/esm/metadata/parseJWT.d.ts +1 -0
  109. package/esm/metadata/parseJWT.d.ts.map +1 -0
  110. package/esm/metadata/verifyAttestationWithMetadata.d.ts +2 -1
  111. package/esm/metadata/verifyAttestationWithMetadata.d.ts.map +1 -0
  112. package/esm/metadata/verifyJWT.d.ts +1 -0
  113. package/esm/metadata/verifyJWT.d.ts.map +1 -0
  114. package/esm/registration/generateRegistrationOptions.d.ts +2 -1
  115. package/esm/registration/generateRegistrationOptions.d.ts.map +1 -0
  116. package/esm/registration/verifications/tpm/constants.d.ts +1 -0
  117. package/esm/registration/verifications/tpm/constants.d.ts.map +1 -0
  118. package/esm/registration/verifications/tpm/constants.js +8 -4
  119. package/esm/registration/verifications/tpm/parseCertInfo.d.ts +1 -0
  120. package/esm/registration/verifications/tpm/parseCertInfo.d.ts.map +1 -0
  121. package/esm/registration/verifications/tpm/parsePubArea.d.ts +1 -0
  122. package/esm/registration/verifications/tpm/parsePubArea.d.ts.map +1 -0
  123. package/esm/registration/verifications/tpm/verifyAttestationTPM.d.ts +1 -0
  124. package/esm/registration/verifications/tpm/verifyAttestationTPM.d.ts.map +1 -0
  125. package/esm/registration/verifications/tpm/verifyAttestationTPM.js +11 -3
  126. package/esm/registration/verifications/verifyAttestationAndroidKey.d.ts +1 -0
  127. package/esm/registration/verifications/verifyAttestationAndroidKey.d.ts.map +1 -0
  128. package/esm/registration/verifications/verifyAttestationAndroidKey.js +3 -1
  129. package/esm/registration/verifications/verifyAttestationAndroidSafetyNet.d.ts +1 -0
  130. package/esm/registration/verifications/verifyAttestationAndroidSafetyNet.d.ts.map +1 -0
  131. package/esm/registration/verifications/verifyAttestationApple.d.ts +1 -0
  132. package/esm/registration/verifications/verifyAttestationApple.d.ts.map +1 -0
  133. package/esm/registration/verifications/verifyAttestationApple.js +2 -1
  134. package/esm/registration/verifications/verifyAttestationFIDOU2F.d.ts +1 -0
  135. package/esm/registration/verifications/verifyAttestationFIDOU2F.d.ts.map +1 -0
  136. package/esm/registration/verifications/verifyAttestationPacked.d.ts +1 -0
  137. package/esm/registration/verifications/verifyAttestationPacked.d.ts.map +1 -0
  138. package/esm/registration/verifications/verifyAttestationPacked.js +10 -3
  139. package/esm/registration/verifyRegistrationResponse.d.ts +5 -4
  140. package/esm/registration/verifyRegistrationResponse.d.ts.map +1 -0
  141. package/esm/registration/verifyRegistrationResponse.js +11 -7
  142. package/esm/services/defaultRootCerts/android-key.d.ts +1 -0
  143. package/esm/services/defaultRootCerts/android-key.d.ts.map +1 -0
  144. package/esm/services/defaultRootCerts/android-safetynet.d.ts +1 -0
  145. package/esm/services/defaultRootCerts/android-safetynet.d.ts.map +1 -0
  146. package/esm/services/defaultRootCerts/apple.d.ts +1 -0
  147. package/esm/services/defaultRootCerts/apple.d.ts.map +1 -0
  148. package/esm/services/defaultRootCerts/mds.d.ts +1 -0
  149. package/esm/services/defaultRootCerts/mds.d.ts.map +1 -0
  150. package/esm/services/metadataService.d.ts +19 -4
  151. package/esm/services/metadataService.d.ts.map +1 -0
  152. package/esm/services/metadataService.js +8 -3
  153. package/esm/services/settingsService.d.ts +17 -14
  154. package/esm/services/settingsService.d.ts.map +1 -0
  155. package/esm/services/settingsService.js +14 -0
  156. package/package.json +29 -33
  157. package/script/authentication/generateAuthenticationOptions.d.ts +2 -1
  158. package/script/authentication/generateAuthenticationOptions.d.ts.map +1 -0
  159. package/script/authentication/generateAuthenticationOptions.js +1 -2
  160. package/script/authentication/verifyAuthenticationResponse.d.ts +4 -3
  161. package/script/authentication/verifyAuthenticationResponse.d.ts.map +1 -0
  162. package/script/authentication/verifyAuthenticationResponse.js +8 -9
  163. package/script/helpers/convertAAGUIDToString.d.ts +1 -0
  164. package/script/helpers/convertAAGUIDToString.d.ts.map +1 -0
  165. package/script/helpers/convertAAGUIDToString.js +5 -6
  166. package/script/helpers/convertCOSEtoPKCS.d.ts +1 -0
  167. package/script/helpers/convertCOSEtoPKCS.d.ts.map +1 -0
  168. package/script/helpers/convertCOSEtoPKCS.js +1 -2
  169. package/script/helpers/convertCertBufferToPEM.d.ts +2 -1
  170. package/script/helpers/convertCertBufferToPEM.d.ts.map +1 -0
  171. package/script/helpers/convertCertBufferToPEM.js +1 -2
  172. package/script/helpers/convertPEMToBytes.d.ts +1 -0
  173. package/script/helpers/convertPEMToBytes.d.ts.map +1 -0
  174. package/script/helpers/convertPEMToBytes.js +1 -2
  175. package/script/helpers/convertX509PublicKeyToCOSE.d.ts +1 -0
  176. package/script/helpers/convertX509PublicKeyToCOSE.d.ts.map +1 -0
  177. package/script/helpers/convertX509PublicKeyToCOSE.js +11 -9
  178. package/script/helpers/cose.d.ts +1 -0
  179. package/script/helpers/cose.d.ts.map +1 -0
  180. package/script/helpers/cose.js +11 -11
  181. package/script/helpers/decodeAttestationObject.d.ts +1 -0
  182. package/script/helpers/decodeAttestationObject.d.ts.map +1 -0
  183. package/script/helpers/decodeAttestationObject.js +2 -2
  184. package/script/helpers/decodeAuthenticatorExtensions.d.ts +5 -14
  185. package/script/helpers/decodeAuthenticatorExtensions.d.ts.map +1 -0
  186. package/script/helpers/decodeAuthenticatorExtensions.js +1 -2
  187. package/script/helpers/decodeClientDataJSON.d.ts +2 -1
  188. package/script/helpers/decodeClientDataJSON.d.ts.map +1 -0
  189. package/script/helpers/decodeClientDataJSON.js +2 -2
  190. package/script/helpers/decodeCredentialPublicKey.d.ts +1 -0
  191. package/script/helpers/decodeCredentialPublicKey.d.ts.map +1 -0
  192. package/script/helpers/decodeCredentialPublicKey.js +2 -2
  193. package/script/helpers/fetch.d.ts +1 -0
  194. package/script/helpers/fetch.d.ts.map +1 -0
  195. package/script/helpers/fetch.js +4 -4
  196. package/script/helpers/generateChallenge.d.ts +1 -0
  197. package/script/helpers/generateChallenge.d.ts.map +1 -0
  198. package/script/helpers/generateChallenge.js +2 -2
  199. package/script/helpers/generateUserID.d.ts +1 -0
  200. package/script/helpers/generateUserID.d.ts.map +1 -0
  201. package/script/helpers/generateUserID.js +2 -2
  202. package/script/helpers/getCertificateInfo.d.ts +2 -1
  203. package/script/helpers/getCertificateInfo.d.ts.map +1 -0
  204. package/script/helpers/getCertificateInfo.js +6 -6
  205. package/script/helpers/index.d.ts +1 -0
  206. package/script/helpers/index.d.ts.map +1 -0
  207. package/script/helpers/isCertRevoked.d.ts +2 -1
  208. package/script/helpers/isCertRevoked.d.ts.map +1 -0
  209. package/script/helpers/isCertRevoked.js +10 -10
  210. package/script/helpers/iso/index.d.ts +1 -0
  211. package/script/helpers/iso/index.d.ts.map +1 -0
  212. package/script/helpers/iso/isoBase64URL.d.ts +2 -1
  213. package/script/helpers/iso/isoBase64URL.d.ts.map +1 -0
  214. package/script/helpers/iso/isoBase64URL.js +20 -18
  215. package/script/helpers/iso/isoCBOR.d.ts +2 -1
  216. package/script/helpers/iso/isoCBOR.d.ts.map +1 -0
  217. package/script/helpers/iso/isoCBOR.js +28 -6
  218. package/script/helpers/iso/isoCrypto/digest.d.ts +1 -0
  219. package/script/helpers/iso/isoCrypto/digest.d.ts.map +1 -0
  220. package/script/helpers/iso/isoCrypto/digest.js +1 -2
  221. package/script/helpers/iso/isoCrypto/getRandomValues.d.ts +1 -0
  222. package/script/helpers/iso/isoCrypto/getRandomValues.d.ts.map +1 -0
  223. package/script/helpers/iso/isoCrypto/getRandomValues.js +1 -2
  224. package/script/helpers/iso/isoCrypto/getWebCrypto.d.ts +2 -1
  225. package/script/helpers/iso/isoCrypto/getWebCrypto.d.ts.map +1 -0
  226. package/script/helpers/iso/isoCrypto/getWebCrypto.js +2 -2
  227. package/script/helpers/iso/isoCrypto/importKey.d.ts +1 -0
  228. package/script/helpers/iso/isoCrypto/importKey.d.ts.map +1 -0
  229. package/script/helpers/iso/isoCrypto/importKey.js +1 -2
  230. package/script/helpers/iso/isoCrypto/index.d.ts +1 -0
  231. package/script/helpers/iso/isoCrypto/index.d.ts.map +1 -0
  232. package/script/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoAlg.d.ts +1 -0
  233. package/script/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoAlg.d.ts.map +1 -0
  234. package/script/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoAlg.js +1 -2
  235. package/script/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoKeyAlgName.d.ts +1 -0
  236. package/script/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoKeyAlgName.d.ts.map +1 -0
  237. package/script/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoKeyAlgName.js +1 -2
  238. package/script/helpers/iso/isoCrypto/structs.d.ts +1 -0
  239. package/script/helpers/iso/isoCrypto/structs.d.ts.map +1 -0
  240. package/script/helpers/iso/isoCrypto/unwrapEC2Signature.d.ts +3 -1
  241. package/script/helpers/iso/isoCrypto/unwrapEC2Signature.d.ts.map +1 -0
  242. package/script/helpers/iso/isoCrypto/unwrapEC2Signature.js +62 -20
  243. package/script/helpers/iso/isoCrypto/verify.d.ts +1 -0
  244. package/script/helpers/iso/isoCrypto/verify.d.ts.map +1 -0
  245. package/script/helpers/iso/isoCrypto/verify.js +6 -3
  246. package/script/helpers/iso/isoCrypto/verifyEC2.d.ts +1 -0
  247. package/script/helpers/iso/isoCrypto/verifyEC2.d.ts.map +1 -0
  248. package/script/helpers/iso/isoCrypto/verifyEC2.js +1 -2
  249. package/script/helpers/iso/isoCrypto/verifyOKP.d.ts +1 -0
  250. package/script/helpers/iso/isoCrypto/verifyOKP.d.ts.map +1 -0
  251. package/script/helpers/iso/isoCrypto/verifyOKP.js +1 -2
  252. package/script/helpers/iso/isoCrypto/verifyRSA.d.ts +1 -0
  253. package/script/helpers/iso/isoCrypto/verifyRSA.d.ts.map +1 -0
  254. package/script/helpers/iso/isoCrypto/verifyRSA.js +1 -2
  255. package/script/helpers/iso/isoUint8Array.d.ts +1 -0
  256. package/script/helpers/iso/isoUint8Array.d.ts.map +1 -0
  257. package/script/helpers/iso/isoUint8Array.js +8 -9
  258. package/script/helpers/logging.d.ts +1 -0
  259. package/script/helpers/logging.d.ts.map +1 -0
  260. package/script/helpers/logging.js +2 -4
  261. package/script/helpers/mapX509SignatureAlgToCOSEAlg.d.ts +1 -0
  262. package/script/helpers/mapX509SignatureAlgToCOSEAlg.d.ts.map +1 -0
  263. package/script/helpers/mapX509SignatureAlgToCOSEAlg.js +1 -2
  264. package/script/helpers/matchExpectedRPID.d.ts +1 -0
  265. package/script/helpers/matchExpectedRPID.d.ts.map +1 -0
  266. package/script/helpers/matchExpectedRPID.js +1 -2
  267. package/script/helpers/parseAuthenticatorData.d.ts +1 -0
  268. package/script/helpers/parseAuthenticatorData.d.ts.map +1 -0
  269. package/script/helpers/parseAuthenticatorData.js +8 -8
  270. package/script/helpers/parseBackupFlags.d.ts +2 -1
  271. package/script/helpers/parseBackupFlags.d.ts.map +1 -0
  272. package/script/helpers/parseBackupFlags.js +2 -2
  273. package/script/helpers/toHash.d.ts +1 -0
  274. package/script/helpers/toHash.d.ts.map +1 -0
  275. package/script/helpers/toHash.js +1 -2
  276. package/script/helpers/validateCertificatePath.d.ts +1 -0
  277. package/script/helpers/validateCertificatePath.d.ts.map +1 -0
  278. package/script/helpers/validateCertificatePath.js +3 -4
  279. package/script/helpers/validateExtFIDOGenCEAAGUID.d.ts +7 -0
  280. package/script/helpers/validateExtFIDOGenCEAAGUID.d.ts.map +1 -0
  281. package/script/helpers/validateExtFIDOGenCEAAGUID.js +37 -0
  282. package/script/helpers/verifySignature.d.ts +1 -0
  283. package/script/helpers/verifySignature.d.ts.map +1 -0
  284. package/script/helpers/verifySignature.js +2 -2
  285. package/script/index.d.ts +1 -0
  286. package/script/index.d.ts.map +1 -0
  287. package/script/metadata/mdsTypes.d.ts +2 -1
  288. package/script/metadata/mdsTypes.d.ts.map +1 -0
  289. package/script/metadata/parseJWT.d.ts +1 -0
  290. package/script/metadata/parseJWT.d.ts.map +1 -0
  291. package/script/metadata/parseJWT.js +1 -2
  292. package/script/metadata/verifyAttestationWithMetadata.d.ts +2 -1
  293. package/script/metadata/verifyAttestationWithMetadata.d.ts.map +1 -0
  294. package/script/metadata/verifyAttestationWithMetadata.js +2 -2
  295. package/script/metadata/verifyJWT.d.ts +1 -0
  296. package/script/metadata/verifyJWT.d.ts.map +1 -0
  297. package/script/metadata/verifyJWT.js +1 -2
  298. package/script/registration/generateRegistrationOptions.d.ts +2 -1
  299. package/script/registration/generateRegistrationOptions.d.ts.map +1 -0
  300. package/script/registration/generateRegistrationOptions.js +2 -2
  301. package/script/registration/verifications/tpm/constants.d.ts +1 -0
  302. package/script/registration/verifications/tpm/constants.d.ts.map +1 -0
  303. package/script/registration/verifications/tpm/constants.js +8 -4
  304. package/script/registration/verifications/tpm/parseCertInfo.d.ts +1 -0
  305. package/script/registration/verifications/tpm/parseCertInfo.d.ts.map +1 -0
  306. package/script/registration/verifications/tpm/parseCertInfo.js +1 -2
  307. package/script/registration/verifications/tpm/parsePubArea.d.ts +1 -0
  308. package/script/registration/verifications/tpm/parsePubArea.d.ts.map +1 -0
  309. package/script/registration/verifications/tpm/parsePubArea.js +1 -2
  310. package/script/registration/verifications/tpm/verifyAttestationTPM.d.ts +1 -0
  311. package/script/registration/verifications/tpm/verifyAttestationTPM.d.ts.map +1 -0
  312. package/script/registration/verifications/tpm/verifyAttestationTPM.js +17 -10
  313. package/script/registration/verifications/verifyAttestationAndroidKey.d.ts +1 -0
  314. package/script/registration/verifications/verifyAttestationAndroidKey.d.ts.map +1 -0
  315. package/script/registration/verifications/verifyAttestationAndroidKey.js +7 -6
  316. package/script/registration/verifications/verifyAttestationAndroidSafetyNet.d.ts +1 -0
  317. package/script/registration/verifications/verifyAttestationAndroidSafetyNet.d.ts.map +1 -0
  318. package/script/registration/verifications/verifyAttestationAndroidSafetyNet.js +1 -2
  319. package/script/registration/verifications/verifyAttestationApple.d.ts +1 -0
  320. package/script/registration/verifications/verifyAttestationApple.d.ts.map +1 -0
  321. package/script/registration/verifications/verifyAttestationApple.js +4 -4
  322. package/script/registration/verifications/verifyAttestationFIDOU2F.d.ts +1 -0
  323. package/script/registration/verifications/verifyAttestationFIDOU2F.d.ts.map +1 -0
  324. package/script/registration/verifications/verifyAttestationFIDOU2F.js +1 -2
  325. package/script/registration/verifications/verifyAttestationPacked.d.ts +1 -0
  326. package/script/registration/verifications/verifyAttestationPacked.d.ts.map +1 -0
  327. package/script/registration/verifications/verifyAttestationPacked.js +11 -5
  328. package/script/registration/verifyRegistrationResponse.d.ts +5 -4
  329. package/script/registration/verifyRegistrationResponse.d.ts.map +1 -0
  330. package/script/registration/verifyRegistrationResponse.js +12 -9
  331. package/script/services/defaultRootCerts/android-key.d.ts +1 -0
  332. package/script/services/defaultRootCerts/android-key.d.ts.map +1 -0
  333. package/script/services/defaultRootCerts/android-safetynet.d.ts +1 -0
  334. package/script/services/defaultRootCerts/android-safetynet.d.ts.map +1 -0
  335. package/script/services/defaultRootCerts/apple.d.ts +1 -0
  336. package/script/services/defaultRootCerts/apple.d.ts.map +1 -0
  337. package/script/services/defaultRootCerts/mds.d.ts +1 -0
  338. package/script/services/defaultRootCerts/mds.d.ts.map +1 -0
  339. package/script/services/metadataService.d.ts +19 -4
  340. package/script/services/metadataService.d.ts.map +1 -0
  341. package/script/services/metadataService.js +8 -3
  342. package/script/services/settingsService.d.ts +17 -14
  343. package/script/services/settingsService.d.ts.map +1 -0
  344. package/script/services/settingsService.js +14 -0
  345. package/esm/deps.d.ts +0 -9
  346. package/esm/deps.js +0 -12
  347. package/script/deps.d.ts +0 -9
  348. package/script/deps.js +0 -68
@@ -3,3 +3,4 @@ import type { AttestationFormatVerifierOpts } from '../verifyRegistrationRespons
3
3
  * Verify an attestation response with fmt 'android-key'
4
4
  */
5
5
  export declare function verifyAttestationAndroidKey(options: AttestationFormatVerifierOpts): Promise<boolean>;
6
+ //# sourceMappingURL=verifyAttestationAndroidKey.d.ts.map
@@ -0,0 +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,CA+HlB"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyAttestationAndroidKey = void 0;
4
- const deps_js_1 = require("../../deps.js");
3
+ exports.verifyAttestationAndroidKey = verifyAttestationAndroidKey;
4
+ const asn1_schema_1 = require("@peculiar/asn1-schema");
5
+ const asn1_x509_1 = require("@peculiar/asn1-x509");
6
+ const asn1_android_1 = require("@peculiar/asn1-android");
5
7
  const convertCertBufferToPEM_js_1 = require("../../helpers/convertCertBufferToPEM.js");
6
8
  const validateCertificatePath_js_1 = require("../../helpers/validateCertificatePath.js");
7
9
  const verifySignature_js_1 = require("../../helpers/verifySignature.js");
@@ -32,7 +34,7 @@ async function verifyAttestationAndroidKey(options) {
32
34
  }
33
35
  // Check that credentialPublicKey matches the public key in the attestation certificate
34
36
  // Find the public cert in the certificate as PKCS
35
- const parsedCert = deps_js_1.AsnParser.parse(x5c[0], deps_js_1.Certificate);
37
+ const parsedCert = asn1_schema_1.AsnParser.parse(x5c[0], asn1_x509_1.Certificate);
36
38
  const parsedCertPubKey = new Uint8Array(parsedCert.tbsCertificate.subjectPublicKeyInfo.subjectPublicKey);
37
39
  // Convert the credentialPublicKey to PKCS
38
40
  const credPubKeyPKCS = (0, convertCOSEtoPKCS_js_1.convertCOSEtoPKCS)(credentialPublicKey);
@@ -40,11 +42,11 @@ async function verifyAttestationAndroidKey(options) {
40
42
  throw new Error('Credential public key does not equal leaf cert public key (AndroidKey)');
41
43
  }
42
44
  // Find Android KeyStore Extension in certificate extensions
43
- const extKeyStore = parsedCert.tbsCertificate.extensions?.find((ext) => ext.extnID === deps_js_1.id_ce_keyDescription);
45
+ const extKeyStore = parsedCert.tbsCertificate.extensions?.find((ext) => ext.extnID === asn1_android_1.id_ce_keyDescription);
44
46
  if (!extKeyStore) {
45
47
  throw new Error('Certificate did not contain extKeyStore (AndroidKey)');
46
48
  }
47
- const parsedExtKeyStore = deps_js_1.AsnParser.parse(extKeyStore.extnValue, deps_js_1.KeyDescription);
49
+ const parsedExtKeyStore = asn1_schema_1.AsnParser.parse(extKeyStore.extnValue, asn1_android_1.KeyDescription);
48
50
  // Verify extKeyStore values
49
51
  const { attestationChallenge, teeEnforced, softwareEnforced } = parsedExtKeyStore;
50
52
  if (!index_js_1.isoUint8Array.areEqual(new Uint8Array(attestationChallenge.buffer), clientDataHash)) {
@@ -91,4 +93,3 @@ async function verifyAttestationAndroidKey(options) {
91
93
  hashAlgorithm: alg,
92
94
  });
93
95
  }
94
- exports.verifyAttestationAndroidKey = verifyAttestationAndroidKey;
@@ -3,3 +3,4 @@ import type { AttestationFormatVerifierOpts } from '../verifyRegistrationRespons
3
3
  * Verify an attestation response with fmt 'android-safetynet'
4
4
  */
5
5
  export declare function verifyAttestationAndroidSafetyNet(options: AttestationFormatVerifierOpts): Promise<boolean>;
6
+ //# sourceMappingURL=verifyAttestationAndroidSafetyNet.d.ts.map
@@ -0,0 +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,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyAttestationAndroidSafetyNet = void 0;
3
+ exports.verifyAttestationAndroidSafetyNet = verifyAttestationAndroidSafetyNet;
4
4
  const toHash_js_1 = require("../../helpers/toHash.js");
5
5
  const verifySignature_js_1 = require("../../helpers/verifySignature.js");
6
6
  const getCertificateInfo_js_1 = require("../../helpers/getCertificateInfo.js");
@@ -113,4 +113,3 @@ async function verifyAttestationAndroidSafetyNet(options) {
113
113
  */
114
114
  return verified;
115
115
  }
116
- exports.verifyAttestationAndroidSafetyNet = verifyAttestationAndroidSafetyNet;
@@ -1,2 +1,3 @@
1
1
  import type { AttestationFormatVerifierOpts } from '../verifyRegistrationResponse.js';
2
2
  export declare function verifyAttestationApple(options: AttestationFormatVerifierOpts): Promise<boolean>;
3
+ //# sourceMappingURL=verifyAttestationApple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyAttestationApple.d.ts","sourceRoot":"","sources":["../../../src/registration/verifications/verifyAttestationApple.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAOtF,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,OAAO,CAAC,CA6ElB"}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyAttestationApple = void 0;
4
- const deps_js_1 = require("../../deps.js");
3
+ exports.verifyAttestationApple = verifyAttestationApple;
4
+ const asn1_schema_1 = require("@peculiar/asn1-schema");
5
+ const asn1_x509_1 = require("@peculiar/asn1-x509");
5
6
  const validateCertificatePath_js_1 = require("../../helpers/validateCertificatePath.js");
6
7
  const convertCertBufferToPEM_js_1 = require("../../helpers/convertCertBufferToPEM.js");
7
8
  const toHash_js_1 = require("../../helpers/toHash.js");
@@ -26,7 +27,7 @@ async function verifyAttestationApple(options) {
26
27
  /**
27
28
  * Compare nonce in certificate extension to computed nonce
28
29
  */
29
- const parsedCredCert = deps_js_1.AsnParser.parse(x5c[0], deps_js_1.Certificate);
30
+ const parsedCredCert = asn1_schema_1.AsnParser.parse(x5c[0], asn1_x509_1.Certificate);
30
31
  const { extensions, subjectPublicKeyInfo } = parsedCredCert.tbsCertificate;
31
32
  if (!extensions) {
32
33
  throw new Error('credCert missing extensions (Apple)');
@@ -58,4 +59,3 @@ async function verifyAttestationApple(options) {
58
59
  }
59
60
  return true;
60
61
  }
61
- exports.verifyAttestationApple = verifyAttestationApple;
@@ -3,3 +3,4 @@ import type { AttestationFormatVerifierOpts } from '../verifyRegistrationRespons
3
3
  * Verify an attestation response with fmt 'fido-u2f'
4
4
  */
5
5
  export declare function verifyAttestationFIDOU2F(options: AttestationFormatVerifierOpts): Promise<boolean>;
6
+ //# sourceMappingURL=verifyAttestationFIDOU2F.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyAttestationFIDOU2F.d.ts","sourceRoot":"","sources":["../../../src/registration/verifications/verifyAttestationFIDOU2F.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAStF;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,OAAO,CAAC,CA4DlB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyAttestationFIDOU2F = void 0;
3
+ exports.verifyAttestationFIDOU2F = verifyAttestationFIDOU2F;
4
4
  const convertCOSEtoPKCS_js_1 = require("../../helpers/convertCOSEtoPKCS.js");
5
5
  const convertCertBufferToPEM_js_1 = require("../../helpers/convertCertBufferToPEM.js");
6
6
  const validateCertificatePath_js_1 = require("../../helpers/validateCertificatePath.js");
@@ -49,4 +49,3 @@ async function verifyAttestationFIDOU2F(options) {
49
49
  hashAlgorithm: cose_js_1.COSEALG.ES256,
50
50
  });
51
51
  }
52
- exports.verifyAttestationFIDOU2F = verifyAttestationFIDOU2F;
@@ -3,3 +3,4 @@ import type { AttestationFormatVerifierOpts } from '../verifyRegistrationRespons
3
3
  * Verify an attestation response with fmt 'packed'
4
4
  */
5
5
  export declare function verifyAttestationPacked(options: AttestationFormatVerifierOpts): Promise<boolean>;
6
+ //# sourceMappingURL=verifyAttestationPacked.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyAttestationPacked.d.ts","sourceRoot":"","sources":["../../../src/registration/verifications/verifyAttestationPacked.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAYtF;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,OAAO,CAAC,CAyJlB"}
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyAttestationPacked = void 0;
3
+ exports.verifyAttestationPacked = verifyAttestationPacked;
4
4
  const cose_js_1 = require("../../helpers/cose.js");
5
5
  const convertCertBufferToPEM_js_1 = require("../../helpers/convertCertBufferToPEM.js");
6
6
  const validateCertificatePath_js_1 = require("../../helpers/validateCertificatePath.js");
7
7
  const getCertificateInfo_js_1 = require("../../helpers/getCertificateInfo.js");
8
8
  const verifySignature_js_1 = require("../../helpers/verifySignature.js");
9
9
  const index_js_1 = require("../../helpers/iso/index.js");
10
+ const validateExtFIDOGenCEAAGUID_js_1 = require("../../helpers/validateExtFIDOGenCEAAGUID.js");
10
11
  const metadataService_js_1 = require("../../services/metadataService.js");
11
12
  const verifyAttestationWithMetadata_js_1 = require("../../metadata/verifyAttestationWithMetadata.js");
12
13
  /**
@@ -29,7 +30,7 @@ async function verifyAttestationPacked(options) {
29
30
  const signatureBase = index_js_1.isoUint8Array.concat([authData, clientDataHash]);
30
31
  let verified = false;
31
32
  if (x5c) {
32
- const { subject, basicConstraintsCA, version, notBefore, notAfter } = (0, getCertificateInfo_js_1.getCertificateInfo)(x5c[0]);
33
+ const { subject, basicConstraintsCA, version, notBefore, notAfter, parsedCertificate, } = (0, getCertificateInfo_js_1.getCertificateInfo)(x5c[0]);
33
34
  const { OU, CN, O, C } = subject;
34
35
  if (OU !== 'Authenticator Attestation') {
35
36
  throw new Error('Certificate OU was not "Authenticator Attestation" (Packed|Full)');
@@ -57,8 +58,14 @@ async function verifyAttestationPacked(options) {
57
58
  if (notAfter < now) {
58
59
  throw new Error(`Certificate not good after "${notAfter.toString()}" (Packed|Full)`);
59
60
  }
60
- // TODO: If certificate contains id-fido-gen-ce-aaguid(1.3.6.1.4.1.45724.1.1.4) extension, check
61
- // that it’s value is set to the same AAGUID as in authData.
61
+ // Validate attestation statement AAGUID against leaf cert AAGUID
62
+ try {
63
+ await (0, validateExtFIDOGenCEAAGUID_js_1.validateExtFIDOGenCEAAGUID)(parsedCertificate.tbsCertificate.extensions, aaguid);
64
+ }
65
+ catch (err) {
66
+ const _err = err;
67
+ throw new Error(`${_err.message} (Packed|Full)`);
68
+ }
62
69
  // If available, validate attestation alg and x5c with info in the metadata statement
63
70
  const statement = await metadataService_js_1.MetadataService.getStatement(aaguid);
64
71
  if (statement) {
@@ -106,4 +113,3 @@ async function verifyAttestationPacked(options) {
106
113
  }
107
114
  return verified;
108
115
  }
109
- exports.verifyAttestationPacked = verifyAttestationPacked;
@@ -1,4 +1,4 @@
1
- import type { Base64URLString, COSEAlgorithmIdentifier, CredentialDeviceType, RegistrationResponseJSON } from '../deps.js';
1
+ import type { COSEAlgorithmIdentifier, CredentialDeviceType, RegistrationResponseJSON, WebAuthnCredential } from '@simplewebauthn/types';
2
2
  import { AttestationFormat, AttestationStatement } from '../helpers/decodeAttestationObject.js';
3
3
  import { AuthenticationExtensionsAuthenticatorOutputs } from '../helpers/decodeAuthenticatorExtensions.js';
4
4
  export type VerifyRegistrationResponseOpts = {
@@ -7,6 +7,7 @@ export type VerifyRegistrationResponseOpts = {
7
7
  expectedOrigin: string | string[];
8
8
  expectedRPID?: string | string[];
9
9
  expectedType?: string | string[];
10
+ requireUserPresence?: boolean;
10
11
  requireUserVerification?: boolean;
11
12
  supportedAlgorithmIDs?: COSEAlgorithmIdentifier[];
12
13
  };
@@ -20,6 +21,7 @@ export type VerifyRegistrationResponseOpts = {
20
21
  * @param expectedOrigin - Website URL (or array of URLs) that the registration should have occurred on
21
22
  * @param expectedRPID - RP ID (or array of IDs) that was specified in the registration options
22
23
  * @param expectedType **(Optional)** - The response type expected ('webauthn.create')
24
+ * @param requireUserPresence **(Optional)** - Enforce user presence by the authenticator (or skip it during auto registration) Defaults to `true`
23
25
  * @param requireUserVerification **(Optional)** - Enforce user verification by the authenticator (via PIN, fingerprint, etc...) Defaults to `true`
24
26
  * @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
25
27
  */
@@ -54,10 +56,8 @@ export type VerifiedRegistrationResponse = {
54
56
  verified: boolean;
55
57
  registrationInfo?: {
56
58
  fmt: AttestationFormat;
57
- counter: number;
58
59
  aaguid: string;
59
- credentialID: Base64URLString;
60
- credentialPublicKey: Uint8Array;
60
+ credential: WebAuthnCredential;
61
61
  credentialType: 'public-key';
62
62
  attestationObject: Uint8Array;
63
63
  userVerified: boolean;
@@ -82,3 +82,4 @@ export type AttestationFormatVerifierOpts = {
82
82
  rpIdHash: Uint8Array;
83
83
  verifyTimestampMS?: boolean;
84
84
  };
85
+ //# sourceMappingURL=verifyRegistrationResponse.d.ts.map
@@ -0,0 +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,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EAErB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,4CAA4C,EAAE,MAAM,6CAA6C,CAAC;AAoB3G,MAAM,MAAM,8BAA8B,GAAG;IAC3C,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,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,8BAA8B,GACtC,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,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyRegistrationResponse = void 0;
3
+ exports.verifyRegistrationResponse = verifyRegistrationResponse;
4
4
  const decodeAttestationObject_js_1 = require("../helpers/decodeAttestationObject.js");
5
5
  const decodeClientDataJSON_js_1 = require("../helpers/decodeClientDataJSON.js");
6
6
  const parseAuthenticatorData_js_1 = require("../helpers/parseAuthenticatorData.js");
@@ -29,11 +29,12 @@ const verifyAttestationApple_js_1 = require("./verifications/verifyAttestationAp
29
29
  * @param expectedOrigin - Website URL (or array of URLs) that the registration should have occurred on
30
30
  * @param expectedRPID - RP ID (or array of IDs) that was specified in the registration options
31
31
  * @param expectedType **(Optional)** - The response type expected ('webauthn.create')
32
+ * @param requireUserPresence **(Optional)** - Enforce user presence by the authenticator (or skip it during auto registration) Defaults to `true`
32
33
  * @param requireUserVerification **(Optional)** - Enforce user verification by the authenticator (via PIN, fingerprint, etc...) Defaults to `true`
33
34
  * @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
34
35
  */
35
36
  async function verifyRegistrationResponse(options) {
36
- const { response, expectedChallenge, expectedOrigin, expectedRPID, expectedType, requireUserVerification = true, supportedAlgorithmIDs = generateRegistrationOptions_js_1.supportedCOSEAlgorithmIdentifiers, } = options;
37
+ const { response, expectedChallenge, expectedOrigin, expectedRPID, expectedType, requireUserPresence = true, requireUserVerification = true, supportedAlgorithmIDs = generateRegistrationOptions_js_1.supportedCOSEAlgorithmIdentifiers, } = options;
37
38
  const { id, rawId, type: credentialType, response: attestationResponse } = response;
38
39
  // Ensure credential specified an ID
39
40
  if (!id) {
@@ -112,12 +113,12 @@ async function verifyRegistrationResponse(options) {
112
113
  matchedRPID = await (0, matchExpectedRPID_js_1.matchExpectedRPID)(rpIdHash, expectedRPIDs);
113
114
  }
114
115
  // Make sure someone was physically present
115
- if (!flags.up) {
116
- throw new Error('User not present during registration');
116
+ if (requireUserPresence && !flags.up) {
117
+ throw new Error('User presence was required, but user was not present');
117
118
  }
118
119
  // Enforce user verification if specified
119
120
  if (requireUserVerification && !flags.uv) {
120
- throw new Error('User verification required, but user could not be verified');
121
+ throw new Error('User verification was required, but user could not be verified');
121
122
  }
122
123
  if (!credentialID) {
123
124
  throw new Error('No credential ID was provided by authenticator');
@@ -192,11 +193,14 @@ async function verifyRegistrationResponse(options) {
192
193
  const { credentialDeviceType, credentialBackedUp } = (0, parseBackupFlags_js_1.parseBackupFlags)(flags);
193
194
  toReturn.registrationInfo = {
194
195
  fmt,
195
- counter,
196
196
  aaguid: (0, convertAAGUIDToString_js_1.convertAAGUIDToString)(aaguid),
197
- credentialID: index_js_1.isoBase64URL.fromBuffer(credentialID),
198
- credentialPublicKey,
199
197
  credentialType,
198
+ credential: {
199
+ id: index_js_1.isoBase64URL.fromBuffer(credentialID),
200
+ publicKey: credentialPublicKey,
201
+ counter,
202
+ transports: response.response.transports,
203
+ },
200
204
  attestationObject,
201
205
  userVerified: flags.uv,
202
206
  credentialDeviceType,
@@ -208,4 +212,3 @@ async function verifyRegistrationResponse(options) {
208
212
  }
209
213
  return toReturn;
210
214
  }
211
- exports.verifyRegistrationResponse = verifyRegistrationResponse;
@@ -22,3 +22,4 @@ 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
+ //# sourceMappingURL=android-key.d.ts.map
@@ -0,0 +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"}
@@ -9,3 +9,4 @@
9
9
  * EB:D4:10:40:E4:BB:3E:C7:42:C9:E3:81:D3:1E:F2:A4:1A:48:B6:68:5C:96:E7:CE:F3:C1:DF:6C:D4:33:1C:99
10
10
  */
11
11
  export declare const GlobalSign_Root_CA = "-----BEGIN CERTIFICATE-----\nMIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG\nA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv\nb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw\nMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i\nYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT\naWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ\njc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp\nxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp\n1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG\nsnUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ\nU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8\n9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E\nBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B\nAQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz\nyj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE\n38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP\nAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad\nDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME\nHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==\n-----END CERTIFICATE-----\n";
12
+ //# sourceMappingURL=android-safetynet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"android-safetynet.d.ts","sourceRoot":"","sources":["../../../src/services/defaultRootCerts/android-safetynet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,uwCAqB9B,CAAC"}
@@ -9,3 +9,4 @@
9
9
  * 09:15:DD:5C:07:A2:8D:B5:49:D1:F6:77:BB:5A:75:D4:BF:BE:95:61:A7:73:42:43:27:76:2E:9E:02:F9:BB:29
10
10
  */
11
11
  export declare const Apple_WebAuthn_Root_CA = "-----BEGIN CERTIFICATE-----\nMIICEjCCAZmgAwIBAgIQaB0BbHo84wIlpQGUKEdXcTAKBggqhkjOPQQDAzBLMR8w\nHQYDVQQDDBZBcHBsZSBXZWJBdXRobiBSb290IENBMRMwEQYDVQQKDApBcHBsZSBJ\nbmMuMRMwEQYDVQQIDApDYWxpZm9ybmlhMB4XDTIwMDMxODE4MjEzMloXDTQ1MDMx\nNTAwMDAwMFowSzEfMB0GA1UEAwwWQXBwbGUgV2ViQXV0aG4gUm9vdCBDQTETMBEG\nA1UECgwKQXBwbGUgSW5jLjETMBEGA1UECAwKQ2FsaWZvcm5pYTB2MBAGByqGSM49\nAgEGBSuBBAAiA2IABCJCQ2pTVhzjl4Wo6IhHtMSAzO2cv+H9DQKev3//fG59G11k\nxu9eI0/7o6V5uShBpe1u6l6mS19S1FEh6yGljnZAJ+2GNP1mi/YK2kSXIuTHjxA/\npcoRf7XkOtO4o1qlcaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUJtdk\n2cV4wlpn0afeaxLQG2PxxtcwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cA\nMGQCMFrZ+9DsJ1PW9hfNdBywZDsWDbWFp28it1d/5w2RPkRX3Bbn/UbDTNLx7Jr3\njAGGiQIwHFj+dJZYUJR786osByBelJYsVZd2GbHQu209b5RCmGQ21gpSAk9QZW4B\n1bWeT0vT\n-----END CERTIFICATE-----\n";
12
+ //# sourceMappingURL=apple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apple.d.ts","sourceRoot":"","sources":["../../../src/services/defaultRootCerts/apple.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,6xBAclC,CAAC"}
@@ -9,3 +9,4 @@
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 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 ";
12
+ //# sourceMappingURL=mds.d.ts.map
@@ -0,0 +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,12 +1,20 @@
1
1
  import type { MetadataStatement } from '../metadata/mdsTypes.js';
2
2
  type VerificationMode = 'permissive' | 'strict';
3
+ interface MetadataService {
4
+ initialize(opts?: {
5
+ mdsServers?: string[];
6
+ statements?: MetadataStatement[];
7
+ verificationMode?: VerificationMode;
8
+ }): Promise<void>;
9
+ getStatement(aaguid: string | Uint8Array): Promise<MetadataStatement | undefined>;
10
+ }
3
11
  /**
4
- * A basic service for coordinating interactions with the FIDO Metadata Service. This includes BLOB
5
- * download and parsing, and on-demand requesting and caching of individual metadata statements.
12
+ * An implementation of `MetadataService` that can download and parse BLOBs, and support on-demand
13
+ * requesting and caching of individual metadata statements.
6
14
  *
7
15
  * https://fidoalliance.org/metadata/
8
16
  */
9
- export declare class BaseMetadataService {
17
+ export declare class BaseMetadataService implements MetadataService {
10
18
  private mdsCache;
11
19
  private statementCache;
12
20
  private state;
@@ -49,5 +57,12 @@ export declare class BaseMetadataService {
49
57
  */
50
58
  private setState;
51
59
  }
52
- export declare const MetadataService: BaseMetadataService;
60
+ /**
61
+ * A basic service for coordinating interactions with the FIDO Metadata Service. This includes BLOB
62
+ * download and parsing, and on-demand requesting and caching of individual metadata statements.
63
+ *
64
+ * https://fidoalliance.org/metadata/
65
+ */
66
+ export declare const MetadataService: MetadataService;
53
67
  export {};
68
+ //# sourceMappingURL=metadataService.d.ts.map
@@ -0,0 +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;AA+BjC,KAAK,gBAAgB,GAAG,YAAY,GAAG,QAAQ,CAAC;AAIhD,UAAU,eAAe;IACvB,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,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;IAEtD;;;;;;;;;;;;OAYG;IACG,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+DhB;;;;;OAKG;IACG,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"}
@@ -19,8 +19,8 @@ var SERVICE_STATE;
19
19
  })(SERVICE_STATE || (SERVICE_STATE = {}));
20
20
  const log = (0, logging_js_1.getLogger)('MetadataService');
21
21
  /**
22
- * A basic service for coordinating interactions with the FIDO Metadata Service. This includes BLOB
23
- * download and parsing, and on-demand requesting and caching of individual metadata statements.
22
+ * An implementation of `MetadataService` that can download and parse BLOBs, and support on-demand
23
+ * requesting and caching of individual metadata statements.
24
24
  *
25
25
  * https://fidoalliance.org/metadata/
26
26
  */
@@ -273,5 +273,10 @@ class BaseMetadataService {
273
273
  }
274
274
  }
275
275
  exports.BaseMetadataService = BaseMetadataService;
276
- // Export a service singleton
276
+ /**
277
+ * A basic service for coordinating interactions with the FIDO Metadata Service. This includes BLOB
278
+ * download and parsing, and on-demand requesting and caching of individual metadata statements.
279
+ *
280
+ * https://fidoalliance.org/metadata/
281
+ */
277
282
  exports.MetadataService = new BaseMetadataService();
@@ -1,25 +1,28 @@
1
1
  import { AttestationFormat } from '../helpers/decodeAttestationObject.js';
2
2
  type RootCertIdentifier = AttestationFormat | 'mds';
3
- declare class BaseSettingsService {
4
- private pemCertificates;
5
- constructor();
6
- /**
7
- * Set potential root certificates for attestation formats that use them. Root certs will be tried
8
- * one-by-one when validating a certificate path.
9
- *
10
- * Certificates can be specified as a raw `Buffer`, or as a PEM-formatted string. If a
11
- * `Buffer` is passed in it will be converted to PEM format.
12
- */
3
+ interface SettingsService {
13
4
  setRootCertificates(opts: {
14
5
  identifier: RootCertIdentifier;
15
6
  certificates: (Uint8Array | string)[];
16
7
  }): void;
17
- /**
18
- * Get any registered root certificates for the specified attestation format
19
- */
20
8
  getRootCertificates(opts: {
21
9
  identifier: RootCertIdentifier;
22
10
  }): string[];
23
11
  }
24
- export declare const SettingsService: BaseSettingsService;
12
+ /**
13
+ * A basic service for specifying acceptable root certificates for all supported attestation
14
+ * statement formats.
15
+ *
16
+ * In addition, default root certificates are included for the following statement formats:
17
+ *
18
+ * - `'android-key'`
19
+ * - `'android-safetynet'`
20
+ * - `'apple'`
21
+ * - `'android-mds'`
22
+ *
23
+ * These can be overwritten as needed by setting alternative root certificates for their format
24
+ * identifier using `setRootCertificates()`.
25
+ */
26
+ export declare const SettingsService: SettingsService;
25
27
  export {};
28
+ //# sourceMappingURL=settingsService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settingsService.d.ts","sourceRoot":"","sources":["../../src/services/settingsService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAW1E,KAAK,kBAAkB,GAAG,iBAAiB,GAAG,KAAK,CAAC;AAEpD,UAAU,eAAe;IACvB,mBAAmB,CAAC,IAAI,EAAE;QACxB,UAAU,EAAE,kBAAkB,CAAC;QAC/B,YAAY,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;KACvC,GAAG,IAAI,CAAC;IACT,mBAAmB,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,kBAAkB,CAAA;KAAE,GAAG,MAAM,EAAE,CAAC;CACzE;AA4CD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,eAAe,EAAE,eAA2C,CAAC"}
@@ -45,6 +45,20 @@ class BaseSettingsService {
45
45
  return this.pemCertificates.get(identifier) ?? [];
46
46
  }
47
47
  }
48
+ /**
49
+ * A basic service for specifying acceptable root certificates for all supported attestation
50
+ * statement formats.
51
+ *
52
+ * In addition, default root certificates are included for the following statement formats:
53
+ *
54
+ * - `'android-key'`
55
+ * - `'android-safetynet'`
56
+ * - `'apple'`
57
+ * - `'android-mds'`
58
+ *
59
+ * These can be overwritten as needed by setting alternative root certificates for their format
60
+ * identifier using `setRootCertificates()`.
61
+ */
48
62
  exports.SettingsService = new BaseSettingsService();
49
63
  // Initialize default certificates
50
64
  exports.SettingsService.setRootCertificates({
package/esm/deps.d.ts DELETED
@@ -1,9 +0,0 @@
1
- export type { AttestationConveyancePreference, AuthenticationExtensionsClientInputs, AuthenticationResponseJSON, AuthenticatorDevice, AuthenticatorSelectionCriteria, AuthenticatorTransportFuture, Base64URLString, COSEAlgorithmIdentifier, CredentialDeviceType, Crypto, PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialParameters, PublicKeyCredentialRequestOptionsJSON, RegistrationResponseJSON, UserVerificationRequirement, } from '@simplewebauthn/types';
2
- export * as tinyCbor from '@levischuck/tiny-cbor';
3
- export { default as base64 } from '@hexagon/base64';
4
- export { fetch as crossFetch } from 'cross-fetch';
5
- export { AsnParser, AsnSerializer } from '@peculiar/asn1-schema';
6
- export { AuthorityKeyIdentifier, BasicConstraints, Certificate, CertificateList, CRLDistributionPoints, ExtendedKeyUsage, id_ce_authorityKeyIdentifier, id_ce_basicConstraints, id_ce_cRLDistributionPoints, id_ce_extKeyUsage, id_ce_subjectAltName, id_ce_subjectKeyIdentifier, Name, SubjectAlternativeName, SubjectKeyIdentifier, } from '@peculiar/asn1-x509';
7
- export { ECDSASigValue, ECParameters, id_ecPublicKey, id_secp256r1, id_secp384r1, } from '@peculiar/asn1-ecc';
8
- export { RSAPublicKey } from '@peculiar/asn1-rsa';
9
- export { id_ce_keyDescription, KeyDescription } from '@peculiar/asn1-android';
package/esm/deps.js DELETED
@@ -1,12 +0,0 @@
1
- // tiny_cbor (a.k.a. tiny-cbor in Node land)
2
- export * as tinyCbor from '@levischuck/tiny-cbor';
3
- // b64 (a.k.a. @hexagon/base64 in Node land)
4
- export { default as base64 } from '@hexagon/base64';
5
- // cross-fetch
6
- export { fetch as crossFetch } from 'cross-fetch';
7
- // @peculiar libraries
8
- export { AsnParser, AsnSerializer } from '@peculiar/asn1-schema';
9
- export { AuthorityKeyIdentifier, BasicConstraints, Certificate, CertificateList, CRLDistributionPoints, ExtendedKeyUsage, id_ce_authorityKeyIdentifier, id_ce_basicConstraints, id_ce_cRLDistributionPoints, id_ce_extKeyUsage, id_ce_subjectAltName, id_ce_subjectKeyIdentifier, Name, SubjectAlternativeName, SubjectKeyIdentifier, } from '@peculiar/asn1-x509';
10
- export { ECDSASigValue, ECParameters, id_ecPublicKey, id_secp256r1, id_secp384r1, } from '@peculiar/asn1-ecc';
11
- export { RSAPublicKey } from '@peculiar/asn1-rsa';
12
- export { id_ce_keyDescription, KeyDescription } from '@peculiar/asn1-android';
package/script/deps.d.ts DELETED
@@ -1,9 +0,0 @@
1
- export type { AttestationConveyancePreference, AuthenticationExtensionsClientInputs, AuthenticationResponseJSON, AuthenticatorDevice, AuthenticatorSelectionCriteria, AuthenticatorTransportFuture, Base64URLString, COSEAlgorithmIdentifier, CredentialDeviceType, Crypto, PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialParameters, PublicKeyCredentialRequestOptionsJSON, RegistrationResponseJSON, UserVerificationRequirement, } from '@simplewebauthn/types';
2
- export * as tinyCbor from '@levischuck/tiny-cbor';
3
- export { default as base64 } from '@hexagon/base64';
4
- export { fetch as crossFetch } from 'cross-fetch';
5
- export { AsnParser, AsnSerializer } from '@peculiar/asn1-schema';
6
- export { AuthorityKeyIdentifier, BasicConstraints, Certificate, CertificateList, CRLDistributionPoints, ExtendedKeyUsage, id_ce_authorityKeyIdentifier, id_ce_basicConstraints, id_ce_cRLDistributionPoints, id_ce_extKeyUsage, id_ce_subjectAltName, id_ce_subjectKeyIdentifier, Name, SubjectAlternativeName, SubjectKeyIdentifier, } from '@peculiar/asn1-x509';
7
- export { ECDSASigValue, ECParameters, id_ecPublicKey, id_secp256r1, id_secp384r1, } from '@peculiar/asn1-ecc';
8
- export { RSAPublicKey } from '@peculiar/asn1-rsa';
9
- export { id_ce_keyDescription, KeyDescription } from '@peculiar/asn1-android';
package/script/deps.js DELETED
@@ -1,68 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.KeyDescription = exports.id_ce_keyDescription = exports.RSAPublicKey = exports.id_secp384r1 = exports.id_secp256r1 = exports.id_ecPublicKey = exports.ECParameters = exports.ECDSASigValue = exports.SubjectKeyIdentifier = exports.SubjectAlternativeName = exports.Name = exports.id_ce_subjectKeyIdentifier = exports.id_ce_subjectAltName = exports.id_ce_extKeyUsage = exports.id_ce_cRLDistributionPoints = exports.id_ce_basicConstraints = exports.id_ce_authorityKeyIdentifier = exports.ExtendedKeyUsage = exports.CRLDistributionPoints = exports.CertificateList = exports.Certificate = exports.BasicConstraints = exports.AuthorityKeyIdentifier = exports.AsnSerializer = exports.AsnParser = exports.crossFetch = exports.base64 = exports.tinyCbor = void 0;
30
- // tiny_cbor (a.k.a. tiny-cbor in Node land)
31
- exports.tinyCbor = __importStar(require("@levischuck/tiny-cbor"));
32
- // b64 (a.k.a. @hexagon/base64 in Node land)
33
- var base64_1 = require("@hexagon/base64");
34
- Object.defineProperty(exports, "base64", { enumerable: true, get: function () { return __importDefault(base64_1).default; } });
35
- // cross-fetch
36
- var cross_fetch_1 = require("cross-fetch");
37
- Object.defineProperty(exports, "crossFetch", { enumerable: true, get: function () { return cross_fetch_1.fetch; } });
38
- // @peculiar libraries
39
- var asn1_schema_1 = require("@peculiar/asn1-schema");
40
- Object.defineProperty(exports, "AsnParser", { enumerable: true, get: function () { return asn1_schema_1.AsnParser; } });
41
- Object.defineProperty(exports, "AsnSerializer", { enumerable: true, get: function () { return asn1_schema_1.AsnSerializer; } });
42
- var asn1_x509_1 = require("@peculiar/asn1-x509");
43
- Object.defineProperty(exports, "AuthorityKeyIdentifier", { enumerable: true, get: function () { return asn1_x509_1.AuthorityKeyIdentifier; } });
44
- Object.defineProperty(exports, "BasicConstraints", { enumerable: true, get: function () { return asn1_x509_1.BasicConstraints; } });
45
- Object.defineProperty(exports, "Certificate", { enumerable: true, get: function () { return asn1_x509_1.Certificate; } });
46
- Object.defineProperty(exports, "CertificateList", { enumerable: true, get: function () { return asn1_x509_1.CertificateList; } });
47
- Object.defineProperty(exports, "CRLDistributionPoints", { enumerable: true, get: function () { return asn1_x509_1.CRLDistributionPoints; } });
48
- Object.defineProperty(exports, "ExtendedKeyUsage", { enumerable: true, get: function () { return asn1_x509_1.ExtendedKeyUsage; } });
49
- Object.defineProperty(exports, "id_ce_authorityKeyIdentifier", { enumerable: true, get: function () { return asn1_x509_1.id_ce_authorityKeyIdentifier; } });
50
- Object.defineProperty(exports, "id_ce_basicConstraints", { enumerable: true, get: function () { return asn1_x509_1.id_ce_basicConstraints; } });
51
- Object.defineProperty(exports, "id_ce_cRLDistributionPoints", { enumerable: true, get: function () { return asn1_x509_1.id_ce_cRLDistributionPoints; } });
52
- Object.defineProperty(exports, "id_ce_extKeyUsage", { enumerable: true, get: function () { return asn1_x509_1.id_ce_extKeyUsage; } });
53
- Object.defineProperty(exports, "id_ce_subjectAltName", { enumerable: true, get: function () { return asn1_x509_1.id_ce_subjectAltName; } });
54
- Object.defineProperty(exports, "id_ce_subjectKeyIdentifier", { enumerable: true, get: function () { return asn1_x509_1.id_ce_subjectKeyIdentifier; } });
55
- Object.defineProperty(exports, "Name", { enumerable: true, get: function () { return asn1_x509_1.Name; } });
56
- Object.defineProperty(exports, "SubjectAlternativeName", { enumerable: true, get: function () { return asn1_x509_1.SubjectAlternativeName; } });
57
- Object.defineProperty(exports, "SubjectKeyIdentifier", { enumerable: true, get: function () { return asn1_x509_1.SubjectKeyIdentifier; } });
58
- var asn1_ecc_1 = require("@peculiar/asn1-ecc");
59
- Object.defineProperty(exports, "ECDSASigValue", { enumerable: true, get: function () { return asn1_ecc_1.ECDSASigValue; } });
60
- Object.defineProperty(exports, "ECParameters", { enumerable: true, get: function () { return asn1_ecc_1.ECParameters; } });
61
- Object.defineProperty(exports, "id_ecPublicKey", { enumerable: true, get: function () { return asn1_ecc_1.id_ecPublicKey; } });
62
- Object.defineProperty(exports, "id_secp256r1", { enumerable: true, get: function () { return asn1_ecc_1.id_secp256r1; } });
63
- Object.defineProperty(exports, "id_secp384r1", { enumerable: true, get: function () { return asn1_ecc_1.id_secp384r1; } });
64
- var asn1_rsa_1 = require("@peculiar/asn1-rsa");
65
- Object.defineProperty(exports, "RSAPublicKey", { enumerable: true, get: function () { return asn1_rsa_1.RSAPublicKey; } });
66
- var asn1_android_1 = require("@peculiar/asn1-android");
67
- Object.defineProperty(exports, "id_ce_keyDescription", { enumerable: true, get: function () { return asn1_android_1.id_ce_keyDescription; } });
68
- Object.defineProperty(exports, "KeyDescription", { enumerable: true, get: function () { return asn1_android_1.KeyDescription; } });