@simplewebauthn/server 7.4.0 → 8.0.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.
- package/LICENSE.md +11 -14
- package/README.md +20 -7
- package/{dist → esm}/authentication/generateAuthenticationOptions.d.ts +2 -2
- package/esm/authentication/generateAuthenticationOptions.js +36 -0
- package/{dist → esm}/authentication/verifyAuthenticationResponse.d.ts +2 -2
- package/esm/authentication/verifyAuthenticationResponse.js +164 -0
- package/esm/deps.d.ts +11 -0
- package/esm/deps.js +14 -0
- package/esm/helpers/convertAAGUIDToString.js +17 -0
- package/esm/helpers/convertCOSEtoPKCS.js +21 -0
- package/{dist → esm}/helpers/convertCertBufferToPEM.d.ts +1 -1
- package/esm/helpers/convertCertBufferToPEM.js +31 -0
- package/esm/helpers/convertPEMToBytes.js +11 -0
- package/{dist → esm}/helpers/convertX509PublicKeyToCOSE.d.ts +1 -1
- package/esm/helpers/convertX509PublicKeyToCOSE.js +70 -0
- package/{dist → esm}/helpers/cose.d.ts +2 -1
- package/esm/helpers/cose.js +81 -0
- package/{dist → esm}/helpers/decodeAttestationObject.d.ts +3 -0
- package/esm/helpers/decodeAttestationObject.js +13 -0
- package/esm/helpers/decodeAuthenticatorExtensions.js +34 -0
- package/{dist → esm}/helpers/decodeClientDataJSON.d.ts +3 -0
- package/esm/helpers/decodeClientDataJSON.js +13 -0
- package/esm/helpers/decodeCredentialPublicKey.d.ts +5 -0
- package/esm/helpers/decodeCredentialPublicKey.js +8 -0
- package/esm/helpers/fetch.d.ts +8 -0
- package/esm/helpers/fetch.js +12 -0
- package/esm/helpers/generateChallenge.d.ts +7 -0
- package/esm/helpers/generateChallenge.js +21 -0
- package/{dist → esm}/helpers/getCertificateInfo.d.ts +1 -1
- package/esm/helpers/getCertificateInfo.js +76 -0
- package/esm/helpers/index.d.ts +22 -0
- package/esm/helpers/index.js +16 -0
- package/{dist → esm}/helpers/isCertRevoked.d.ts +1 -1
- package/esm/helpers/isCertRevoked.js +98 -0
- package/{dist → esm}/helpers/iso/index.d.ts +4 -4
- package/esm/helpers/iso/index.js +11 -0
- package/esm/helpers/iso/isoBase64URL.js +57 -0
- package/{dist → esm}/helpers/iso/isoCBOR.d.ts +1 -1
- package/esm/helpers/iso/isoCBOR.js +44 -0
- package/{dist → esm}/helpers/iso/isoCrypto/digest.d.ts +1 -1
- package/esm/helpers/iso/isoCrypto/digest.js +14 -0
- package/{dist → esm}/helpers/iso/isoCrypto/getRandomValues.d.ts +1 -1
- package/esm/helpers/iso/isoCrypto/getRandomValues.js +11 -0
- package/esm/helpers/iso/isoCrypto/getWebCrypto.d.ts +6 -0
- package/esm/helpers/iso/isoCrypto/getWebCrypto.js +40 -0
- package/esm/helpers/iso/isoCrypto/importKey.js +8 -0
- package/esm/helpers/iso/isoCrypto/index.d.ts +3 -0
- package/esm/helpers/iso/isoCrypto/index.js +3 -0
- package/{dist → esm}/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoAlg.d.ts +2 -2
- package/esm/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoAlg.js +20 -0
- package/{dist → esm}/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoKeyAlgName.d.ts +2 -2
- package/esm/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoKeyAlgName.js +19 -0
- package/esm/helpers/iso/isoCrypto/structs.js +1 -0
- package/esm/helpers/iso/isoCrypto/unwrapEC2Signature.js +30 -0
- package/{dist → esm}/helpers/iso/isoCrypto/verify.d.ts +1 -1
- package/esm/helpers/iso/isoCrypto/verify.js +28 -0
- package/{dist → esm}/helpers/iso/isoCrypto/verifyEC2.d.ts +1 -1
- package/esm/helpers/iso/isoCrypto/verifyEC2.js +73 -0
- package/{dist → esm}/helpers/iso/isoCrypto/verifyOKP.d.ts +1 -1
- package/esm/helpers/iso/isoCrypto/verifyOKP.js +51 -0
- package/{dist → esm}/helpers/iso/isoCrypto/verifyRSA.d.ts +1 -1
- package/esm/helpers/iso/isoCrypto/verifyRSA.js +91 -0
- package/esm/helpers/iso/isoUint8Array.js +75 -0
- package/{dist → esm}/helpers/logging.d.ts +1 -1
- package/esm/helpers/logging.js +19 -0
- package/{dist → esm}/helpers/mapX509SignatureAlgToCOSEAlg.d.ts +1 -1
- package/esm/helpers/mapX509SignatureAlgToCOSEAlg.js +35 -0
- package/esm/helpers/matchExpectedRPID.js +41 -0
- package/{dist → esm}/helpers/parseAuthenticatorData.d.ts +4 -1
- package/esm/helpers/parseAuthenticatorData.js +71 -0
- package/{dist → esm}/helpers/parseBackupFlags.d.ts +4 -1
- package/esm/helpers/parseBackupFlags.js +25 -0
- package/{dist → esm}/helpers/toHash.d.ts +1 -1
- package/esm/helpers/toHash.js +12 -0
- package/esm/helpers/validateCertificatePath.js +122 -0
- package/{dist → esm}/helpers/verifySignature.d.ts +4 -1
- package/esm/helpers/verifySignature.js +32 -0
- package/esm/index.d.ts +17 -0
- package/esm/index.js +11 -0
- package/{dist → esm}/metadata/mdsTypes.d.ts +1 -1
- package/esm/metadata/mdsTypes.js +17 -0
- package/esm/metadata/parseJWT.js +12 -0
- package/{dist → esm}/metadata/verifyAttestationWithMetadata.d.ts +3 -3
- package/esm/metadata/verifyAttestationWithMetadata.js +159 -0
- package/esm/metadata/verifyJWT.js +37 -0
- package/esm/package.json +3 -0
- package/{dist → esm}/registration/generateRegistrationOptions.d.ts +2 -2
- package/esm/registration/generateRegistrationOptions.js +142 -0
- package/esm/registration/verifications/tpm/constants.js +182 -0
- package/esm/registration/verifications/tpm/parseCertInfo.js +58 -0
- package/esm/registration/verifications/tpm/parsePubArea.js +94 -0
- package/{dist → esm}/registration/verifications/tpm/verifyAttestationTPM.d.ts +1 -1
- package/esm/registration/verifications/tpm/verifyAttestationTPM.js +323 -0
- package/{dist → esm}/registration/verifications/verifyAttestationAndroidKey.d.ts +1 -1
- package/esm/registration/verifications/verifyAttestationAndroidKey.js +90 -0
- package/{dist → esm}/registration/verifications/verifyAttestationAndroidSafetyNet.d.ts +1 -1
- package/esm/registration/verifications/verifyAttestationAndroidSafetyNet.js +112 -0
- package/{dist → esm}/registration/verifications/verifyAttestationApple.d.ts +1 -1
- package/esm/registration/verifications/verifyAttestationApple.js +57 -0
- package/{dist → esm}/registration/verifications/verifyAttestationFIDOU2F.d.ts +1 -1
- package/esm/registration/verifications/verifyAttestationFIDOU2F.js +48 -0
- package/{dist → esm}/registration/verifications/verifyAttestationPacked.d.ts +1 -1
- package/esm/registration/verifications/verifyAttestationPacked.js +105 -0
- package/{dist → esm}/registration/verifyRegistrationResponse.d.ts +3 -3
- package/esm/registration/verifyRegistrationResponse.js +198 -0
- package/esm/services/defaultRootCerts/android-key.js +85 -0
- package/esm/services/defaultRootCerts/android-safetynet.js +32 -0
- package/esm/services/defaultRootCerts/apple.js +25 -0
- package/esm/services/defaultRootCerts/mds.js +32 -0
- package/{dist → esm}/services/metadataService.d.ts +1 -1
- package/{dist → esm}/services/metadataService.js +52 -36
- package/{dist → esm}/services/settingsService.d.ts +1 -1
- package/esm/services/settingsService.js +65 -0
- package/package.json +40 -42
- package/script/authentication/generateAuthenticationOptions.d.ts +23 -0
- package/{dist → script}/authentication/generateAuthenticationOptions.js +8 -9
- package/script/authentication/verifyAuthenticationResponse.d.ts +66 -0
- package/{dist → script}/authentication/verifyAuthenticationResponse.js +25 -23
- package/script/deps.d.ts +11 -0
- package/script/deps.js +71 -0
- package/script/helpers/convertAAGUIDToString.d.ts +4 -0
- package/{dist → script}/helpers/convertAAGUIDToString.js +2 -3
- package/script/helpers/convertCOSEtoPKCS.d.ts +4 -0
- package/{dist → script}/helpers/convertCOSEtoPKCS.js +7 -8
- package/script/helpers/convertCertBufferToPEM.d.ts +5 -0
- package/{dist → script}/helpers/convertCertBufferToPEM.js +5 -6
- package/script/helpers/convertPEMToBytes.d.ts +4 -0
- package/{dist → script}/helpers/convertPEMToBytes.js +2 -3
- package/script/helpers/convertX509PublicKeyToCOSE.d.ts +2 -0
- package/{dist → script}/helpers/convertX509PublicKeyToCOSE.js +21 -25
- package/script/helpers/cose.d.ts +98 -0
- package/{dist → script}/helpers/cose.js +1 -1
- package/script/helpers/decodeAttestationObject.d.ts +29 -0
- package/script/helpers/decodeAttestationObject.js +17 -0
- package/script/helpers/decodeAuthenticatorExtensions.d.ts +20 -0
- package/{dist → script}/helpers/decodeAuthenticatorExtensions.js +2 -3
- package/script/helpers/decodeClientDataJSON.d.ts +17 -0
- package/script/helpers/decodeClientDataJSON.js +17 -0
- package/script/helpers/decodeCredentialPublicKey.d.ts +5 -0
- package/script/helpers/decodeCredentialPublicKey.js +12 -0
- package/script/helpers/fetch.d.ts +8 -0
- package/script/helpers/fetch.js +16 -0
- package/script/helpers/generateChallenge.d.ts +7 -0
- package/{dist → script}/helpers/generateChallenge.js +9 -6
- package/script/helpers/getCertificateInfo.d.ts +31 -0
- package/{dist → script}/helpers/getCertificateInfo.js +4 -6
- package/script/helpers/index.d.ts +22 -0
- package/script/helpers/index.js +59 -0
- package/script/helpers/isCertRevoked.d.ts +8 -0
- package/{dist → script}/helpers/isCertRevoked.js +20 -25
- package/script/helpers/iso/index.d.ts +11 -0
- package/{dist → script}/helpers/iso/index.js +4 -5
- package/script/helpers/iso/isoBase64URL.d.ts +37 -0
- package/{dist → script}/helpers/iso/isoBase64URL.js +9 -13
- package/script/helpers/iso/isoCBOR.d.ts +12 -0
- package/{dist → script}/helpers/iso/isoCBOR.js +8 -28
- package/script/helpers/iso/isoCrypto/digest.d.ts +8 -0
- package/script/helpers/iso/isoCrypto/digest.js +18 -0
- package/script/helpers/iso/isoCrypto/getRandomValues.d.ts +6 -0
- package/script/helpers/iso/isoCrypto/getRandomValues.js +15 -0
- package/script/helpers/iso/isoCrypto/getWebCrypto.d.ts +6 -0
- package/script/helpers/iso/isoCrypto/getWebCrypto.js +44 -0
- package/script/helpers/iso/isoCrypto/importKey.d.ts +4 -0
- package/script/helpers/iso/isoCrypto/importKey.js +12 -0
- package/script/helpers/iso/isoCrypto/index.d.ts +3 -0
- package/{dist → script}/helpers/iso/isoCrypto/index.js +6 -7
- package/script/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoAlg.d.ts +6 -0
- package/{dist → script}/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoAlg.js +6 -6
- package/script/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoKeyAlgName.d.ts +6 -0
- package/{dist → script}/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoKeyAlgName.js +5 -6
- package/script/helpers/iso/isoCrypto/structs.d.ts +3 -0
- package/{dist → script}/helpers/iso/isoCrypto/structs.js +0 -1
- package/script/helpers/iso/isoCrypto/unwrapEC2Signature.d.ts +6 -0
- package/{dist → script}/helpers/iso/isoCrypto/unwrapEC2Signature.js +4 -6
- package/script/helpers/iso/isoCrypto/verify.d.ts +10 -0
- package/script/helpers/iso/isoCrypto/verify.js +32 -0
- package/script/helpers/iso/isoCrypto/verifyEC2.d.ts +10 -0
- package/{dist → script}/helpers/iso/isoCrypto/verifyEC2.js +19 -22
- package/script/helpers/iso/isoCrypto/verifyOKP.d.ts +6 -0
- package/{dist → script}/helpers/iso/isoCrypto/verifyOKP.js +13 -16
- package/script/helpers/iso/isoCrypto/verifyRSA.d.ts +10 -0
- package/{dist → script}/helpers/iso/isoCrypto/verifyRSA.js +19 -22
- package/script/helpers/iso/isoUint8Array.d.ts +36 -0
- package/{dist → script}/helpers/iso/isoUint8Array.js +7 -8
- package/script/helpers/logging.d.ts +17 -0
- package/{dist → script}/helpers/logging.js +2 -6
- package/script/helpers/mapX509SignatureAlgToCOSEAlg.d.ts +8 -0
- package/{dist → script}/helpers/mapX509SignatureAlgToCOSEAlg.js +8 -9
- package/script/helpers/matchExpectedRPID.d.ts +7 -0
- package/{dist → script}/helpers/matchExpectedRPID.js +5 -6
- package/script/helpers/parseAuthenticatorData.d.ts +28 -0
- package/{dist → script}/helpers/parseAuthenticatorData.js +19 -16
- package/script/helpers/parseBackupFlags.d.ts +19 -0
- package/{dist → script}/helpers/parseBackupFlags.js +2 -2
- package/script/helpers/toHash.d.ts +6 -0
- package/{dist → script}/helpers/toHash.js +4 -5
- package/script/helpers/validateCertificatePath.d.ts +6 -0
- package/{dist → script}/helpers/validateCertificatePath.js +13 -15
- package/script/helpers/verifySignature.d.ts +14 -0
- package/script/helpers/verifySignature.js +36 -0
- package/script/index.d.ts +17 -0
- package/script/index.js +19 -0
- package/script/metadata/mdsTypes.d.ts +216 -0
- package/{dist → script}/metadata/mdsTypes.js +0 -1
- package/script/metadata/parseJWT.d.ts +4 -0
- package/{dist → script}/metadata/parseJWT.js +3 -4
- package/script/metadata/verifyAttestationWithMetadata.d.ts +29 -0
- package/{dist → script}/metadata/verifyAttestationWithMetadata.js +24 -22
- package/script/metadata/verifyJWT.d.ts +10 -0
- package/script/metadata/verifyJWT.js +41 -0
- package/script/package.json +3 -0
- package/script/registration/generateRegistrationOptions.d.ts +43 -0
- package/{dist → script}/registration/generateRegistrationOptions.js +9 -10
- package/script/registration/verifications/tpm/constants.d.ts +47 -0
- package/{dist → script}/registration/verifications/tpm/constants.js +1 -2
- package/script/registration/verifications/tpm/parseCertInfo.d.ts +24 -0
- package/{dist → script}/registration/verifications/tpm/parseCertInfo.js +13 -14
- package/script/registration/verifications/tpm/parsePubArea.d.ts +43 -0
- package/{dist → script}/registration/verifications/tpm/parsePubArea.js +16 -17
- package/script/registration/verifications/tpm/verifyAttestationTPM.d.ts +2 -0
- package/{dist → script}/registration/verifications/tpm/verifyAttestationTPM.js +58 -58
- package/script/registration/verifications/verifyAttestationAndroidKey.d.ts +5 -0
- package/{dist → script}/registration/verifications/verifyAttestationAndroidKey.js +22 -26
- package/script/registration/verifications/verifyAttestationAndroidSafetyNet.d.ts +5 -0
- package/{dist → script}/registration/verifications/verifyAttestationAndroidSafetyNet.js +22 -23
- package/script/registration/verifications/verifyAttestationApple.d.ts +2 -0
- package/{dist → script}/registration/verifications/verifyAttestationApple.js +15 -17
- package/script/registration/verifications/verifyAttestationFIDOU2F.d.ts +5 -0
- package/{dist → script}/registration/verifications/verifyAttestationFIDOU2F.js +12 -13
- package/script/registration/verifications/verifyAttestationPacked.d.ts +5 -0
- package/{dist → script}/registration/verifications/verifyAttestationPacked.js +17 -18
- package/script/registration/verifyRegistrationResponse.d.ts +85 -0
- package/{dist → script}/registration/verifyRegistrationResponse.js +39 -38
- package/script/services/defaultRootCerts/android-key.d.ts +24 -0
- package/{dist → script}/services/defaultRootCerts/android-key.js +0 -1
- package/script/services/defaultRootCerts/android-safetynet.d.ts +11 -0
- package/{dist → script}/services/defaultRootCerts/android-safetynet.js +0 -1
- package/script/services/defaultRootCerts/apple.d.ts +11 -0
- package/{dist → script}/services/defaultRootCerts/apple.js +0 -1
- package/script/services/defaultRootCerts/mds.d.ts +11 -0
- package/{dist → script}/services/defaultRootCerts/mds.js +0 -1
- package/script/services/metadataService.d.ts +53 -0
- package/script/services/metadataService.js +277 -0
- package/script/services/settingsService.d.ts +25 -0
- package/{dist → script}/services/settingsService.js +21 -13
- package/dist/authentication/generateAuthenticationOptions.js.map +0 -1
- package/dist/authentication/verifyAuthenticationResponse.js.map +0 -1
- package/dist/helpers/convertAAGUIDToString.js.map +0 -1
- package/dist/helpers/convertCOSEtoPKCS.js.map +0 -1
- package/dist/helpers/convertCertBufferToPEM.js.map +0 -1
- package/dist/helpers/convertPEMToBytes.js.map +0 -1
- package/dist/helpers/convertX509PublicKeyToCOSE.js.map +0 -1
- package/dist/helpers/cose.js.map +0 -1
- package/dist/helpers/decodeAttestationObject.js +0 -14
- package/dist/helpers/decodeAttestationObject.js.map +0 -1
- package/dist/helpers/decodeAuthenticatorExtensions.js.map +0 -1
- package/dist/helpers/decodeClientDataJSON.js +0 -14
- package/dist/helpers/decodeClientDataJSON.js.map +0 -1
- package/dist/helpers/decodeCredentialPublicKey.d.ts +0 -2
- package/dist/helpers/decodeCredentialPublicKey.js +0 -9
- package/dist/helpers/decodeCredentialPublicKey.js.map +0 -1
- package/dist/helpers/generateChallenge.d.ts +0 -4
- package/dist/helpers/generateChallenge.js.map +0 -1
- package/dist/helpers/getCertificateInfo.js.map +0 -1
- package/dist/helpers/index.d.ts +0 -22
- package/dist/helpers/index.js +0 -60
- package/dist/helpers/index.js.map +0 -1
- package/dist/helpers/isCertRevoked.js.map +0 -1
- package/dist/helpers/iso/index.js.map +0 -1
- package/dist/helpers/iso/isoBase64URL.js.map +0 -1
- package/dist/helpers/iso/isoCBOR.js.map +0 -1
- package/dist/helpers/iso/isoCrypto/digest.js +0 -21
- package/dist/helpers/iso/isoCrypto/digest.js.map +0 -1
- package/dist/helpers/iso/isoCrypto/getRandomValues.js +0 -18
- package/dist/helpers/iso/isoCrypto/getRandomValues.js.map +0 -1
- package/dist/helpers/iso/isoCrypto/importKey.js +0 -13
- package/dist/helpers/iso/isoCrypto/importKey.js.map +0 -1
- package/dist/helpers/iso/isoCrypto/index.d.ts +0 -3
- package/dist/helpers/iso/isoCrypto/index.js.map +0 -1
- package/dist/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoAlg.js.map +0 -1
- package/dist/helpers/iso/isoCrypto/mapCoseAlgToWebCryptoKeyAlgName.js.map +0 -1
- package/dist/helpers/iso/isoCrypto/structs.js.map +0 -1
- package/dist/helpers/iso/isoCrypto/unwrapEC2Signature.js.map +0 -1
- package/dist/helpers/iso/isoCrypto/verify.js +0 -28
- package/dist/helpers/iso/isoCrypto/verify.js.map +0 -1
- package/dist/helpers/iso/isoCrypto/verifyEC2.js.map +0 -1
- package/dist/helpers/iso/isoCrypto/verifyOKP.js.map +0 -1
- package/dist/helpers/iso/isoCrypto/verifyRSA.js.map +0 -1
- package/dist/helpers/iso/isoUint8Array.js.map +0 -1
- package/dist/helpers/logging.js.map +0 -1
- package/dist/helpers/mapX509SignatureAlgToCOSEAlg.js.map +0 -1
- package/dist/helpers/matchExpectedRPID.js.map +0 -1
- package/dist/helpers/parseAuthenticatorData.js.map +0 -1
- package/dist/helpers/parseBackupFlags.js.map +0 -1
- package/dist/helpers/toHash.js.map +0 -1
- package/dist/helpers/validateCertificatePath.js.map +0 -1
- package/dist/helpers/verifySignature.js +0 -33
- package/dist/helpers/verifySignature.js.map +0 -1
- package/dist/index.d.ts +0 -17
- package/dist/index.js +0 -20
- package/dist/index.js.map +0 -1
- package/dist/metadata/mdsTypes.js.map +0 -1
- package/dist/metadata/parseJWT.js.map +0 -1
- package/dist/metadata/verifyAttestationWithMetadata.js.map +0 -1
- package/dist/metadata/verifyJWT.js +0 -42
- package/dist/metadata/verifyJWT.js.map +0 -1
- package/dist/registration/generateRegistrationOptions.js.map +0 -1
- package/dist/registration/verifications/tpm/constants.js.map +0 -1
- package/dist/registration/verifications/tpm/parseCertInfo.js.map +0 -1
- package/dist/registration/verifications/tpm/parsePubArea.js.map +0 -1
- package/dist/registration/verifications/tpm/verifyAttestationTPM.js.map +0 -1
- package/dist/registration/verifications/verifyAttestationAndroidKey.js.map +0 -1
- package/dist/registration/verifications/verifyAttestationAndroidSafetyNet.js.map +0 -1
- package/dist/registration/verifications/verifyAttestationApple.js.map +0 -1
- package/dist/registration/verifications/verifyAttestationFIDOU2F.js.map +0 -1
- package/dist/registration/verifications/verifyAttestationPacked.js.map +0 -1
- package/dist/registration/verifyRegistrationResponse.js.map +0 -1
- package/dist/services/defaultRootCerts/android-key.js.map +0 -1
- package/dist/services/defaultRootCerts/android-safetynet.js.map +0 -1
- package/dist/services/defaultRootCerts/apple.js.map +0 -1
- package/dist/services/defaultRootCerts/mds.js.map +0 -1
- package/dist/services/metadataService.js.map +0 -1
- package/dist/services/settingsService.js.map +0 -1
- /package/{dist → esm}/helpers/convertAAGUIDToString.d.ts +0 -0
- /package/{dist → esm}/helpers/convertCOSEtoPKCS.d.ts +0 -0
- /package/{dist → esm}/helpers/convertPEMToBytes.d.ts +0 -0
- /package/{dist → esm}/helpers/decodeAuthenticatorExtensions.d.ts +0 -0
- /package/{dist → esm}/helpers/iso/isoBase64URL.d.ts +0 -0
- /package/{dist → esm}/helpers/iso/isoCrypto/importKey.d.ts +0 -0
- /package/{dist → esm}/helpers/iso/isoCrypto/structs.d.ts +0 -0
- /package/{dist → esm}/helpers/iso/isoCrypto/unwrapEC2Signature.d.ts +0 -0
- /package/{dist → esm}/helpers/iso/isoUint8Array.d.ts +0 -0
- /package/{dist → esm}/helpers/matchExpectedRPID.d.ts +0 -0
- /package/{dist → esm}/helpers/validateCertificatePath.d.ts +0 -0
- /package/{dist → esm}/metadata/parseJWT.d.ts +0 -0
- /package/{dist → esm}/metadata/verifyJWT.d.ts +0 -0
- /package/{dist → esm}/registration/verifications/tpm/constants.d.ts +0 -0
- /package/{dist → esm}/registration/verifications/tpm/parseCertInfo.d.ts +0 -0
- /package/{dist → esm}/registration/verifications/tpm/parsePubArea.d.ts +0 -0
- /package/{dist → esm}/services/defaultRootCerts/android-key.d.ts +0 -0
- /package/{dist → esm}/services/defaultRootCerts/android-safetynet.d.ts +0 -0
- /package/{dist → esm}/services/defaultRootCerts/apple.d.ts +0 -0
- /package/{dist → esm}/services/defaultRootCerts/mds.d.ts +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GlobalSign Root CA
|
|
3
|
+
*
|
|
4
|
+
* Downloaded from https://pki.goog/roots.pem
|
|
5
|
+
*
|
|
6
|
+
* Valid until 2028-01-28 @ 04:00 PST
|
|
7
|
+
*
|
|
8
|
+
* SHA256 Fingerprint
|
|
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
|
+
*/
|
|
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";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apple WebAuthn Root CA
|
|
3
|
+
*
|
|
4
|
+
* Downloaded from https://www.apple.com/certificateauthority/Apple_WebAuthn_Root_CA.pem
|
|
5
|
+
*
|
|
6
|
+
* Valid until 2045-03-14 @ 17:00 PST
|
|
7
|
+
*
|
|
8
|
+
* SHA256 Fingerprint
|
|
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
|
+
*/
|
|
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";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GlobalSign Root CA - R3
|
|
3
|
+
*
|
|
4
|
+
* Downloaded from https://valid.r3.roots.globalsign.com/
|
|
5
|
+
*
|
|
6
|
+
* Valid until 2029-03-18 @ 00:00 PST
|
|
7
|
+
*
|
|
8
|
+
* SHA256 Fingerprint
|
|
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
|
+
*/
|
|
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 ";
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { MetadataStatement } from '../metadata/mdsTypes.js';
|
|
2
|
+
type VerificationMode = 'permissive' | 'strict';
|
|
3
|
+
/**
|
|
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.
|
|
6
|
+
*
|
|
7
|
+
* https://fidoalliance.org/metadata/
|
|
8
|
+
*/
|
|
9
|
+
export declare class BaseMetadataService {
|
|
10
|
+
private mdsCache;
|
|
11
|
+
private statementCache;
|
|
12
|
+
private state;
|
|
13
|
+
private verificationMode;
|
|
14
|
+
/**
|
|
15
|
+
* Prepare the service to handle remote MDS servers and/or cache local metadata statements.
|
|
16
|
+
*
|
|
17
|
+
* **Options:**
|
|
18
|
+
*
|
|
19
|
+
* @param opts.mdsServers An array of URLs to FIDO Alliance Metadata Service
|
|
20
|
+
* (version 3.0)-compatible servers. Defaults to the official FIDO MDS server
|
|
21
|
+
* @param opts.statements An array of local metadata statements
|
|
22
|
+
* @param opts.verificationMode How MetadataService will handle unregistered AAGUIDs. Defaults to
|
|
23
|
+
* `"strict"` which throws errors during registration response verification when an
|
|
24
|
+
* unregistered AAGUID is encountered. Set to `"permissive"` to allow registration by
|
|
25
|
+
* authenticators with unregistered AAGUIDs
|
|
26
|
+
*/
|
|
27
|
+
initialize(opts?: {
|
|
28
|
+
mdsServers?: string[];
|
|
29
|
+
statements?: MetadataStatement[];
|
|
30
|
+
verificationMode?: VerificationMode;
|
|
31
|
+
}): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Get a metadata statement for a given AAGUID.
|
|
34
|
+
*
|
|
35
|
+
* This method will coordinate updating the cache as per the `nextUpdate` property in the initial
|
|
36
|
+
* BLOB download.
|
|
37
|
+
*/
|
|
38
|
+
getStatement(aaguid: string | Uint8Array): Promise<MetadataStatement | undefined>;
|
|
39
|
+
/**
|
|
40
|
+
* Download and process the latest BLOB from MDS
|
|
41
|
+
*/
|
|
42
|
+
private downloadBlob;
|
|
43
|
+
/**
|
|
44
|
+
* A helper method to pause execution until the service is ready
|
|
45
|
+
*/
|
|
46
|
+
private pauseUntilReady;
|
|
47
|
+
/**
|
|
48
|
+
* Report service status on change
|
|
49
|
+
*/
|
|
50
|
+
private setState;
|
|
51
|
+
}
|
|
52
|
+
export declare const MetadataService: BaseMetadataService;
|
|
53
|
+
export {};
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MetadataService = exports.BaseMetadataService = void 0;
|
|
4
|
+
const validateCertificatePath_js_1 = require("../helpers/validateCertificatePath.js");
|
|
5
|
+
const convertCertBufferToPEM_js_1 = require("../helpers/convertCertBufferToPEM.js");
|
|
6
|
+
const convertAAGUIDToString_js_1 = require("../helpers/convertAAGUIDToString.js");
|
|
7
|
+
const settingsService_js_1 = require("./settingsService.js");
|
|
8
|
+
const logging_js_1 = require("../helpers/logging.js");
|
|
9
|
+
const convertPEMToBytes_js_1 = require("../helpers/convertPEMToBytes.js");
|
|
10
|
+
const fetch_js_1 = require("../helpers/fetch.js");
|
|
11
|
+
const parseJWT_js_1 = require("../metadata/parseJWT.js");
|
|
12
|
+
const verifyJWT_js_1 = require("../metadata/verifyJWT.js");
|
|
13
|
+
const defaultURLMDS = 'https://mds.fidoalliance.org/'; // v3
|
|
14
|
+
var SERVICE_STATE;
|
|
15
|
+
(function (SERVICE_STATE) {
|
|
16
|
+
SERVICE_STATE[SERVICE_STATE["DISABLED"] = 0] = "DISABLED";
|
|
17
|
+
SERVICE_STATE[SERVICE_STATE["REFRESHING"] = 1] = "REFRESHING";
|
|
18
|
+
SERVICE_STATE[SERVICE_STATE["READY"] = 2] = "READY";
|
|
19
|
+
})(SERVICE_STATE || (SERVICE_STATE = {}));
|
|
20
|
+
const log = (0, logging_js_1.getLogger)('MetadataService');
|
|
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.
|
|
24
|
+
*
|
|
25
|
+
* https://fidoalliance.org/metadata/
|
|
26
|
+
*/
|
|
27
|
+
class BaseMetadataService {
|
|
28
|
+
constructor() {
|
|
29
|
+
Object.defineProperty(this, "mdsCache", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
configurable: true,
|
|
32
|
+
writable: true,
|
|
33
|
+
value: {}
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(this, "statementCache", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true,
|
|
39
|
+
value: {}
|
|
40
|
+
});
|
|
41
|
+
Object.defineProperty(this, "state", {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
configurable: true,
|
|
44
|
+
writable: true,
|
|
45
|
+
value: SERVICE_STATE.DISABLED
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(this, "verificationMode", {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
configurable: true,
|
|
50
|
+
writable: true,
|
|
51
|
+
value: 'strict'
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Prepare the service to handle remote MDS servers and/or cache local metadata statements.
|
|
56
|
+
*
|
|
57
|
+
* **Options:**
|
|
58
|
+
*
|
|
59
|
+
* @param opts.mdsServers An array of URLs to FIDO Alliance Metadata Service
|
|
60
|
+
* (version 3.0)-compatible servers. Defaults to the official FIDO MDS server
|
|
61
|
+
* @param opts.statements An array of local metadata statements
|
|
62
|
+
* @param opts.verificationMode How MetadataService will handle unregistered AAGUIDs. Defaults to
|
|
63
|
+
* `"strict"` which throws errors during registration response verification when an
|
|
64
|
+
* unregistered AAGUID is encountered. Set to `"permissive"` to allow registration by
|
|
65
|
+
* authenticators with unregistered AAGUIDs
|
|
66
|
+
*/
|
|
67
|
+
async initialize(opts = {}) {
|
|
68
|
+
const { mdsServers = [defaultURLMDS], statements, verificationMode } = opts;
|
|
69
|
+
this.setState(SERVICE_STATE.REFRESHING);
|
|
70
|
+
// If metadata statements are provided, load them into the cache first
|
|
71
|
+
if (statements?.length) {
|
|
72
|
+
let statementsAdded = 0;
|
|
73
|
+
statements.forEach((statement) => {
|
|
74
|
+
// Only cache statements that are for FIDO2-compatible authenticators
|
|
75
|
+
if (statement.aaguid) {
|
|
76
|
+
this.statementCache[statement.aaguid] = {
|
|
77
|
+
entry: {
|
|
78
|
+
metadataStatement: statement,
|
|
79
|
+
statusReports: [],
|
|
80
|
+
timeOfLastStatusChange: '1970-01-01',
|
|
81
|
+
},
|
|
82
|
+
url: '',
|
|
83
|
+
};
|
|
84
|
+
statementsAdded += 1;
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
log(`Cached ${statementsAdded} local statements`);
|
|
88
|
+
}
|
|
89
|
+
// If MDS servers are provided, then process them and add their statements to the cache
|
|
90
|
+
if (mdsServers?.length) {
|
|
91
|
+
// Get a current count so we know how many new statements we've added from MDS servers
|
|
92
|
+
const currentCacheCount = Object.keys(this.statementCache).length;
|
|
93
|
+
let numServers = mdsServers.length;
|
|
94
|
+
for (const url of mdsServers) {
|
|
95
|
+
try {
|
|
96
|
+
await this.downloadBlob({
|
|
97
|
+
url,
|
|
98
|
+
no: 0,
|
|
99
|
+
nextUpdate: new Date(0),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
// Notify of the error and move on
|
|
104
|
+
log(`Could not download BLOB from ${url}:`, err);
|
|
105
|
+
numServers -= 1;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Calculate the difference to get the total number of new statements we successfully added
|
|
109
|
+
const newCacheCount = Object.keys(this.statementCache).length;
|
|
110
|
+
const cacheDiff = newCacheCount - currentCacheCount;
|
|
111
|
+
log(`Cached ${cacheDiff} statements from ${numServers} metadata server(s)`);
|
|
112
|
+
}
|
|
113
|
+
if (verificationMode) {
|
|
114
|
+
this.verificationMode = verificationMode;
|
|
115
|
+
}
|
|
116
|
+
this.setState(SERVICE_STATE.READY);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get a metadata statement for a given AAGUID.
|
|
120
|
+
*
|
|
121
|
+
* This method will coordinate updating the cache as per the `nextUpdate` property in the initial
|
|
122
|
+
* BLOB download.
|
|
123
|
+
*/
|
|
124
|
+
async getStatement(aaguid) {
|
|
125
|
+
if (this.state === SERVICE_STATE.DISABLED) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (!aaguid) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (aaguid instanceof Uint8Array) {
|
|
132
|
+
aaguid = (0, convertAAGUIDToString_js_1.convertAAGUIDToString)(aaguid);
|
|
133
|
+
}
|
|
134
|
+
// If a cache refresh is in progress then pause this until the service is ready
|
|
135
|
+
await this.pauseUntilReady();
|
|
136
|
+
// Try to grab a cached statement
|
|
137
|
+
const cachedStatement = this.statementCache[aaguid];
|
|
138
|
+
if (!cachedStatement) {
|
|
139
|
+
if (this.verificationMode === 'strict') {
|
|
140
|
+
// FIDO conformance requires RP's to only support registered AAGUID's
|
|
141
|
+
throw new Error(`No metadata statement found for aaguid "${aaguid}"`);
|
|
142
|
+
}
|
|
143
|
+
// Allow registration verification to continue without using metadata
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
// If the statement points to an MDS API, check the MDS' nextUpdate to see if we need to refresh
|
|
147
|
+
if (cachedStatement.url) {
|
|
148
|
+
const mds = this.mdsCache[cachedStatement.url];
|
|
149
|
+
const now = new Date();
|
|
150
|
+
if (now > mds.nextUpdate) {
|
|
151
|
+
try {
|
|
152
|
+
this.setState(SERVICE_STATE.REFRESHING);
|
|
153
|
+
await this.downloadBlob(mds);
|
|
154
|
+
}
|
|
155
|
+
finally {
|
|
156
|
+
this.setState(SERVICE_STATE.READY);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const { entry } = cachedStatement;
|
|
161
|
+
// Check to see if the this aaguid has a status report with a "compromised" status
|
|
162
|
+
for (const report of entry.statusReports) {
|
|
163
|
+
const { status } = report;
|
|
164
|
+
if (status === 'USER_VERIFICATION_BYPASS' ||
|
|
165
|
+
status === 'ATTESTATION_KEY_COMPROMISE' ||
|
|
166
|
+
status === 'USER_KEY_REMOTE_COMPROMISE' ||
|
|
167
|
+
status === 'USER_KEY_PHYSICAL_COMPROMISE') {
|
|
168
|
+
throw new Error(`Detected compromised aaguid "${aaguid}"`);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return entry.metadataStatement;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Download and process the latest BLOB from MDS
|
|
175
|
+
*/
|
|
176
|
+
async downloadBlob(mds) {
|
|
177
|
+
const { url, no } = mds;
|
|
178
|
+
// Get latest "BLOB" (FIDO's terminology, not mine)
|
|
179
|
+
const resp = await (0, fetch_js_1.fetch)(url);
|
|
180
|
+
const data = await resp.text();
|
|
181
|
+
// Parse the JWT
|
|
182
|
+
const parsedJWT = (0, parseJWT_js_1.parseJWT)(data);
|
|
183
|
+
const header = parsedJWT[0];
|
|
184
|
+
const payload = parsedJWT[1];
|
|
185
|
+
if (payload.no <= no) {
|
|
186
|
+
// From FIDO MDS docs: "also ignore the file if its number (no) is less or equal to the
|
|
187
|
+
// number of the last BLOB cached locally."
|
|
188
|
+
throw new Error(`Latest BLOB no. "${payload.no}" is not greater than previous ${no}`);
|
|
189
|
+
}
|
|
190
|
+
const headerCertsPEM = header.x5c.map(convertCertBufferToPEM_js_1.convertCertBufferToPEM);
|
|
191
|
+
try {
|
|
192
|
+
// Validate the certificate chain
|
|
193
|
+
const rootCerts = settingsService_js_1.SettingsService.getRootCertificates({
|
|
194
|
+
identifier: 'mds',
|
|
195
|
+
});
|
|
196
|
+
await (0, validateCertificatePath_js_1.validateCertificatePath)(headerCertsPEM, rootCerts);
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
const _error = error;
|
|
200
|
+
// From FIDO MDS docs: "ignore the file if the chain cannot be verified or if one of the
|
|
201
|
+
// chain certificates is revoked"
|
|
202
|
+
throw new Error(`BLOB certificate path could not be validated: ${_error.message}`);
|
|
203
|
+
}
|
|
204
|
+
// Verify the BLOB JWT signature
|
|
205
|
+
const leafCert = headerCertsPEM[0];
|
|
206
|
+
const verified = await (0, verifyJWT_js_1.verifyJWT)(data, (0, convertPEMToBytes_js_1.convertPEMToBytes)(leafCert));
|
|
207
|
+
if (!verified) {
|
|
208
|
+
// From FIDO MDS docs: "The FIDO Server SHOULD ignore the file if the signature is invalid."
|
|
209
|
+
throw new Error('BLOB signature could not be verified');
|
|
210
|
+
}
|
|
211
|
+
// Cache statements for FIDO2 devices
|
|
212
|
+
for (const entry of payload.entries) {
|
|
213
|
+
// Only cache entries with an `aaguid`
|
|
214
|
+
if (entry.aaguid) {
|
|
215
|
+
this.statementCache[entry.aaguid] = { entry, url };
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Remember info about the server so we can refresh later
|
|
219
|
+
const [year, month, day] = payload.nextUpdate.split('-');
|
|
220
|
+
this.mdsCache[url] = {
|
|
221
|
+
...mds,
|
|
222
|
+
// Store the payload `no` to make sure we're getting the next BLOB in the sequence
|
|
223
|
+
no: payload.no,
|
|
224
|
+
// Convert the nextUpdate property into a Date so we can determine when to re-download
|
|
225
|
+
nextUpdate: new Date(parseInt(year, 10),
|
|
226
|
+
// Months need to be zero-indexed
|
|
227
|
+
parseInt(month, 10) - 1, parseInt(day, 10)),
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* A helper method to pause execution until the service is ready
|
|
232
|
+
*/
|
|
233
|
+
pauseUntilReady() {
|
|
234
|
+
if (this.state === SERVICE_STATE.READY) {
|
|
235
|
+
return new Promise((resolve) => {
|
|
236
|
+
resolve();
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
// State isn't ready, so set up polling
|
|
240
|
+
const readyPromise = new Promise((resolve, reject) => {
|
|
241
|
+
const totalTimeoutMS = 70000;
|
|
242
|
+
const intervalMS = 100;
|
|
243
|
+
let iterations = totalTimeoutMS / intervalMS;
|
|
244
|
+
// Check service state every `intervalMS` milliseconds
|
|
245
|
+
const intervalID = globalThis.setInterval(() => {
|
|
246
|
+
if (iterations < 1) {
|
|
247
|
+
clearInterval(intervalID);
|
|
248
|
+
reject(`State did not become ready in ${totalTimeoutMS / 1000} seconds`);
|
|
249
|
+
}
|
|
250
|
+
else if (this.state === SERVICE_STATE.READY) {
|
|
251
|
+
clearInterval(intervalID);
|
|
252
|
+
resolve();
|
|
253
|
+
}
|
|
254
|
+
iterations -= 1;
|
|
255
|
+
}, intervalMS);
|
|
256
|
+
});
|
|
257
|
+
return readyPromise;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Report service status on change
|
|
261
|
+
*/
|
|
262
|
+
setState(newState) {
|
|
263
|
+
this.state = newState;
|
|
264
|
+
if (newState === SERVICE_STATE.DISABLED) {
|
|
265
|
+
log('MetadataService is DISABLED');
|
|
266
|
+
}
|
|
267
|
+
else if (newState === SERVICE_STATE.REFRESHING) {
|
|
268
|
+
log('MetadataService is REFRESHING');
|
|
269
|
+
}
|
|
270
|
+
else if (newState === SERVICE_STATE.READY) {
|
|
271
|
+
log('MetadataService is READY');
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
exports.BaseMetadataService = BaseMetadataService;
|
|
276
|
+
// Export a service singleton
|
|
277
|
+
exports.MetadataService = new BaseMetadataService();
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AttestationFormat } from '../helpers/decodeAttestationObject.js';
|
|
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
|
+
*/
|
|
13
|
+
setRootCertificates(opts: {
|
|
14
|
+
identifier: RootCertIdentifier;
|
|
15
|
+
certificates: (Uint8Array | string)[];
|
|
16
|
+
}): void;
|
|
17
|
+
/**
|
|
18
|
+
* Get any registered root certificates for the specified attestation format
|
|
19
|
+
*/
|
|
20
|
+
getRootCertificates(opts: {
|
|
21
|
+
identifier: RootCertIdentifier;
|
|
22
|
+
}): string[];
|
|
23
|
+
}
|
|
24
|
+
export declare const SettingsService: BaseSettingsService;
|
|
25
|
+
export {};
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SettingsService = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
4
|
+
const convertCertBufferToPEM_js_1 = require("../helpers/convertCertBufferToPEM.js");
|
|
5
|
+
const android_safetynet_js_1 = require("./defaultRootCerts/android-safetynet.js");
|
|
6
|
+
const android_key_js_1 = require("./defaultRootCerts/android-key.js");
|
|
7
|
+
const apple_js_1 = require("./defaultRootCerts/apple.js");
|
|
8
|
+
const mds_js_1 = require("./defaultRootCerts/mds.js");
|
|
9
9
|
class BaseSettingsService {
|
|
10
10
|
constructor() {
|
|
11
|
+
// Certificates are stored as PEM-formatted strings
|
|
12
|
+
Object.defineProperty(this, "pemCertificates", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
configurable: true,
|
|
15
|
+
writable: true,
|
|
16
|
+
value: void 0
|
|
17
|
+
});
|
|
11
18
|
this.pemCertificates = new Map();
|
|
12
19
|
}
|
|
13
20
|
/**
|
|
@@ -22,7 +29,7 @@ class BaseSettingsService {
|
|
|
22
29
|
const newCertificates = [];
|
|
23
30
|
for (const cert of certificates) {
|
|
24
31
|
if (cert instanceof Uint8Array) {
|
|
25
|
-
newCertificates.push((0,
|
|
32
|
+
newCertificates.push((0, convertCertBufferToPEM_js_1.convertCertBufferToPEM)(cert));
|
|
26
33
|
}
|
|
27
34
|
else {
|
|
28
35
|
newCertificates.push(cert);
|
|
@@ -34,27 +41,28 @@ class BaseSettingsService {
|
|
|
34
41
|
* Get any registered root certificates for the specified attestation format
|
|
35
42
|
*/
|
|
36
43
|
getRootCertificates(opts) {
|
|
37
|
-
var _a;
|
|
38
44
|
const { identifier } = opts;
|
|
39
|
-
return
|
|
45
|
+
return this.pemCertificates.get(identifier) ?? [];
|
|
40
46
|
}
|
|
41
47
|
}
|
|
42
48
|
exports.SettingsService = new BaseSettingsService();
|
|
43
49
|
// Initialize default certificates
|
|
44
50
|
exports.SettingsService.setRootCertificates({
|
|
45
51
|
identifier: 'android-key',
|
|
46
|
-
certificates: [
|
|
52
|
+
certificates: [
|
|
53
|
+
android_key_js_1.Google_Hardware_Attestation_Root_1,
|
|
54
|
+
android_key_js_1.Google_Hardware_Attestation_Root_2,
|
|
55
|
+
],
|
|
47
56
|
});
|
|
48
57
|
exports.SettingsService.setRootCertificates({
|
|
49
58
|
identifier: 'android-safetynet',
|
|
50
|
-
certificates: [
|
|
59
|
+
certificates: [android_safetynet_js_1.GlobalSign_Root_CA],
|
|
51
60
|
});
|
|
52
61
|
exports.SettingsService.setRootCertificates({
|
|
53
62
|
identifier: 'apple',
|
|
54
|
-
certificates: [
|
|
63
|
+
certificates: [apple_js_1.Apple_WebAuthn_Root_CA],
|
|
55
64
|
});
|
|
56
65
|
exports.SettingsService.setRootCertificates({
|
|
57
66
|
identifier: 'mds',
|
|
58
|
-
certificates: [
|
|
67
|
+
certificates: [mds_js_1.GlobalSign_Root_CA_R3],
|
|
59
68
|
});
|
|
60
|
-
//# sourceMappingURL=settingsService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateAuthenticationOptions.js","sourceRoot":"","sources":["../../src/authentication/generateAuthenticationOptions.ts"],"names":[],"mappings":";;;AAOA,wCAA6D;AAC7D,oEAAiE;AAWjE;;;;;;;;;;;;GAYG;AACH,SAAgB,6BAA6B,CAC3C,UAA6C,EAAE;IAE/C,MAAM,EACJ,gBAAgB,EAChB,SAAS,GAAG,IAAA,qCAAiB,GAAE,EAC/B,OAAO,GAAG,KAAK,EACf,gBAAgB,GAAG,WAAW,EAC9B,UAAU,EACV,IAAI,GACL,GAAG,OAAO,CAAC;IAEZ;;OAEG;IACH,IAAI,UAAU,GAAG,SAAS,CAAC;IAC3B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,UAAU,GAAG,mBAAa,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;KACvD;IAED,OAAO;QACL,SAAS,EAAE,kBAAY,CAAC,UAAU,CAAC,UAAU,CAAC;QAC9C,gBAAgB,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/C,GAAG,IAAI;YACP,EAAE,EAAE,kBAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAgB,CAAC;SACnD,CAAC,CAAC;QACH,OAAO;QACP,gBAAgB;QAChB,UAAU;QACV,IAAI,EAAE,IAAI;KACX,CAAC;AACJ,CAAC;AA/BD,sEA+BC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"verifyAuthenticationResponse.js","sourceRoot":"","sources":["../../src/authentication/verifyAuthenticationResponse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convertAAGUIDToString.js","sourceRoot":"","sources":["../../src/helpers/convertAAGUIDToString.ts"],"names":[],"mappings":";;;AAAA,+BAAsC;AAEtC;;GAEG;AACH,SAAgB,qBAAqB,CAAC,MAAkB;IACtD,4CAA4C;IAC5C,MAAM,GAAG,GAAG,mBAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,QAAQ,GAAa;QACzB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAChB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI;KACxB,CAAC;IAEF,kDAAkD;IAClD,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAdD,sDAcC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convertCOSEtoPKCS.js","sourceRoot":"","sources":["../../src/helpers/convertCOSEtoPKCS.ts"],"names":[],"mappings":";;;AAAA,+BAA+C;AAC/C,iCAAoD;AAEpD;;GAEG;AACH,SAAgB,iBAAiB,CAAC,aAAyB;IACzD,iGAAiG;IACjG,gGAAgG;IAChG,6DAA6D;IAC7D,MAAM,MAAM,GAAG,aAAO,CAAC,WAAW,CAAmB,aAAa,CAAC,CAAC;IAEpE,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,eAAQ,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,eAAQ,CAAC,CAAC,CAAC,CAAC;IAEjC,IAAI,CAAC,CAAC,EAAE;QACN,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IAED,IAAI,CAAC,EAAE;QACL,OAAO,mBAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC1C;IAED,OAAO,mBAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AAnBD,8CAmBC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convertCertBufferToPEM.js","sourceRoot":"","sources":["../../src/helpers/convertCertBufferToPEM.ts"],"names":[],"mappings":";;;AAEA,+BAAqC;AAErC;;GAEG;AACH,SAAgB,sBAAsB,CAAC,UAAwC;IAC7E,IAAI,OAAe,CAAC;IAEpB;;OAEG;IACH,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,IAAI,kBAAY,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;YACxC,OAAO,GAAG,kBAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC7C;aAAM,IAAI,kBAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YAC5C,OAAO,GAAG,UAAU,CAAC;SACtB;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;SAC1E;KACF;SAAM;QACL,OAAO,GAAG,kBAAY,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;KACzD;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;QAC1D,MAAM,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;QAErB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC;KAC5C;IAED,MAAM,GAAG,gCAAgC,MAAM,6BAA6B,CAAC;IAE7E,OAAO,MAAM,CAAC;AAChB,CAAC;AA5BD,wDA4BC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convertPEMToBytes.js","sourceRoot":"","sources":["../../src/helpers/convertPEMToBytes.ts"],"names":[],"mappings":";;;AAAA,+BAAqC;AAErC;;GAEG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,MAAM,UAAU,GAAG,GAAG;SACnB,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC;SAC1C,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC;SACxC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEzB,OAAO,kBAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAPD,8CAOC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convertX509PublicKeyToCOSE.js","sourceRoot":"","sources":["../../src/helpers/convertX509PublicKeyToCOSE.ts"],"names":[],"mappings":";;;AAAA,uDAAkD;AAClD,mDAAkD;AAClD,iDAA8F;AAC9F,iDAAkD;AAElD,iCAOgB;AAChB,iFAA8E;AAE9E,SAAgB,0BAA0B,CAAC,eAA2B;IACpE,IAAI,aAAa,GAAkB,IAAI,GAAG,EAAE,CAAC;IAE7C;;OAEG;IACH,MAAM,IAAI,GAAG,uBAAS,CAAC,KAAK,CAAC,eAAe,EAAE,uBAAW,CAAC,CAAC;IAE3D,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,cAAc,CAAC;IAE1E,MAAM,kBAAkB,GAAG,aAAa,CAAC,SAAS,CAAC;IACnD,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,SAAS,CAAC,SAAS,CAAC;IAEtE,IAAI,oBAAoB,KAAK,yBAAc,EAAE;QAC3C;;WAEG;QACH,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,EAAE;YAC9C,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QAED,MAAM,YAAY,GAAG,uBAAS,CAAC,KAAK,CAClC,IAAI,UAAU,CAAC,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,EACzD,uBAAY,CACb,CAAC;QAEF,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;QACf,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;QAEpC,IAAI,UAAU,KAAK,uBAAY,EAAE;YAC/B,GAAG,GAAG,cAAO,CAAC,IAAI,CAAC;SACpB;aAAM,IAAI,UAAU,KAAK,uBAAY,EAAE;YACtC,GAAG,GAAG,cAAO,CAAC,IAAI,CAAC;SACpB;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,0DAA0D,UAAU,QAAQ,CAAC,CAAC;SAC/F;QAED,MAAM,gBAAgB,GAAG,IAAI,UAAU,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAE/E,IAAI,CAAa,CAAC;QAClB,IAAI,CAAa,CAAC;QAClB,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;YAChC,oFAAoF;YACpF,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,MAAM,UAAU,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACrD,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC;YAC7D,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACrC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;SACpF;QAED,MAAM,aAAa,GAAqB,IAAI,GAAG,EAAE,CAAC;QAClD,aAAa,CAAC,GAAG,CAAC,eAAQ,CAAC,GAAG,EAAE,cAAO,CAAC,GAAG,CAAC,CAAC;QAC7C,aAAa,CAAC,GAAG,CAAC,eAAQ,CAAC,GAAG,EAAE,IAAA,2DAA4B,EAAC,kBAAkB,CAAC,CAAC,CAAC;QAClF,aAAa,CAAC,GAAG,CAAC,eAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,aAAa,CAAC,GAAG,CAAC,eAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,aAAa,CAAC,GAAG,CAAC,eAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjC,aAAa,GAAG,aAAa,CAAC;KAC/B;SAAM,IAAI,oBAAoB,KAAK,sBAAsB,EAAE;QAC1D;;WAEG;QACH,MAAM,YAAY,GAAG,uBAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,uBAAY,CAAC,CAAC;QAE1F,MAAM,aAAa,GAAqB,IAAI,GAAG,EAAE,CAAC;QAClD,aAAa,CAAC,GAAG,CAAC,eAAQ,CAAC,GAAG,EAAE,cAAO,CAAC,GAAG,CAAC,CAAC;QAC7C,aAAa,CAAC,GAAG,CAAC,eAAQ,CAAC,GAAG,EAAE,IAAA,2DAA4B,EAAC,kBAAkB,CAAC,CAAC,CAAC;QAClF,aAAa,CAAC,GAAG,CAAC,eAAQ,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACpE,aAAa,CAAC,GAAG,CAAC,eAAQ,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;QAE3E,aAAa,GAAG,aAAa,CAAC;KAC/B;SAAM;QACL,MAAM,IAAI,KAAK,CACb,4DAA4D,oBAAoB,EAAE,CACnF,CAAC;KACH;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAhFD,gEAgFC"}
|
package/dist/helpers/cose.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cose.js","sourceRoot":"","sources":["../../src/helpers/cose.ts"],"names":[],"mappings":";;;AAgDA,SAAgB,kBAAkB,CAChC,aAA4B;IAE5B,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;AAC/C,CAAC;AALD,gDAKC;AAED,SAAgB,kBAAkB,CAChC,aAA4B;IAE5B,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;AAC/C,CAAC;AALD,gDAKC;AAED,SAAgB,kBAAkB,CAChC,aAA4B;IAE5B,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;AAC/C,CAAC;AALD,gDAKC;AAED;;;;;GAKG;AACH,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,qCAAO,CAAA;IACP,qCAAO,CAAA;IACP,sCAAQ,CAAA;IACR,kCAAM,CAAA;IACN,kCAAM,CAAA;IACN,kCAAM,CAAA;IACN,kCAAM,CAAA;AACR,CAAC,EARW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAQnB;AAED;;;;GAIG;AACH,IAAY,OAIX;AAJD,WAAY,OAAO;IACjB,mCAAO,CAAA;IACP,mCAAO,CAAA;IACP,mCAAO,CAAA;AACT,CAAC,EAJW,OAAO,GAAP,eAAO,KAAP,eAAO,QAIlB;AAED,SAAgB,SAAS,CAAC,GAAuB;IAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAc,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC;AAFD,8BAEC;AAED;;;;GAIG;AACH,IAAY,OAKX;AALD,WAAY,OAAO;IACjB,qCAAQ,CAAA;IACR,qCAAQ,CAAA;IACR,qCAAQ,CAAA;IACR,2CAAW,CAAA;AACb,CAAC,EALW,OAAO,GAAP,eAAO,KAAP,eAAO,QAKlB;AAED,SAAgB,SAAS,CAAC,GAAuB;IAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAc,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC;AAFD,8BAEC;AAED;;;;GAIG;AACH,IAAY,OAaX;AAbD,WAAY,OAAO;IACjB,wCAAU,CAAA;IACV,wCAAU,CAAA;IACV,yCAAW,CAAA;IACX,yCAAW,CAAA;IACX,yCAAW,CAAA;IACX,yCAAW,CAAA;IACX,yCAAW,CAAA;IACX,2CAAY,CAAA;IACZ,0CAAY,CAAA;IACZ,0CAAY,CAAA;IACZ,0CAAY,CAAA;IACZ,wCAAY,CAAA;AACd,CAAC,EAbW,OAAO,GAAP,eAAO,KAAP,eAAO,QAalB;AAED,SAAgB,SAAS,CAAC,GAAuB;IAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAc,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC;AAFD,8BAEC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.decodeAttestationObject = void 0;
|
|
4
|
-
const iso_1 = require("./iso");
|
|
5
|
-
/**
|
|
6
|
-
* Convert an AttestationObject buffer to a proper object
|
|
7
|
-
*
|
|
8
|
-
* @param base64AttestationObject Attestation Object buffer
|
|
9
|
-
*/
|
|
10
|
-
function decodeAttestationObject(attestationObject) {
|
|
11
|
-
return iso_1.isoCBOR.decodeFirst(attestationObject);
|
|
12
|
-
}
|
|
13
|
-
exports.decodeAttestationObject = decodeAttestationObject;
|
|
14
|
-
//# sourceMappingURL=decodeAttestationObject.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decodeAttestationObject.js","sourceRoot":"","sources":["../../src/helpers/decodeAttestationObject.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAEhC;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,iBAA6B;IACnE,OAAO,aAAO,CAAC,WAAW,CAAoB,iBAAiB,CAAC,CAAC;AACnE,CAAC;AAFD,0DAEC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decodeAuthenticatorExtensions.js","sourceRoot":"","sources":["../../src/helpers/decodeAuthenticatorExtensions.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAEhC;;;;GAIG;AACH,SAAgB,6BAA6B,CAC3C,aAAyB;IAEzB,IAAI,MAA4B,CAAC;IACjC,IAAI;QACF,MAAM,GAAG,aAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;KAC7C;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,GAAG,GAAY,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;KAC7E;IAED,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAZD,sEAYC;AAqBD;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,KAA2B;IACzD,MAAM,MAAM,GAA+B,EAAE,CAAC;IAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE;QAChC,IAAI,KAAK,YAAY,GAAG,EAAE;YACxB,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;SAC7C;aAAM;YACL,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SACrB;KACF;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.decodeClientDataJSON = void 0;
|
|
4
|
-
const iso_1 = require("./iso");
|
|
5
|
-
/**
|
|
6
|
-
* Decode an authenticator's base64url-encoded clientDataJSON to JSON
|
|
7
|
-
*/
|
|
8
|
-
function decodeClientDataJSON(data) {
|
|
9
|
-
const toString = iso_1.isoBase64URL.toString(data);
|
|
10
|
-
const clientData = JSON.parse(toString);
|
|
11
|
-
return clientData;
|
|
12
|
-
}
|
|
13
|
-
exports.decodeClientDataJSON = decodeClientDataJSON;
|
|
14
|
-
//# sourceMappingURL=decodeClientDataJSON.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decodeClientDataJSON.js","sourceRoot":"","sources":["../../src/helpers/decodeClientDataJSON.ts"],"names":[],"mappings":";;;AAAA,+BAAqC;AAErC;;GAEG;AACH,SAAgB,oBAAoB,CAAC,IAAY;IAC/C,MAAM,QAAQ,GAAG,kBAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAmB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAExD,OAAO,UAAU,CAAC;AACpB,CAAC;AALD,oDAKC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.decodeCredentialPublicKey = void 0;
|
|
4
|
-
const iso_1 = require("./iso");
|
|
5
|
-
function decodeCredentialPublicKey(publicKey) {
|
|
6
|
-
return iso_1.isoCBOR.decodeFirst(publicKey);
|
|
7
|
-
}
|
|
8
|
-
exports.decodeCredentialPublicKey = decodeCredentialPublicKey;
|
|
9
|
-
//# sourceMappingURL=decodeCredentialPublicKey.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decodeCredentialPublicKey.js","sourceRoot":"","sources":["../../src/helpers/decodeCredentialPublicKey.ts"],"names":[],"mappings":";;;AACA,+BAAgC;AAEhC,SAAgB,yBAAyB,CAAC,SAAqB;IAC7D,OAAO,aAAO,CAAC,WAAW,CAAgB,SAAS,CAAC,CAAC;AACvD,CAAC;AAFD,8DAEC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateChallenge.js","sourceRoot":"","sources":["../../src/helpers/generateChallenge.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAElC;;GAEG;AACH,SAAgB,iBAAiB;IAC/B;;;;;;;OAOG;IACH,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAErC,eAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAErC,OAAO,SAAS,CAAC;AACnB,CAAC;AAdD,8CAcC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getCertificateInfo.js","sourceRoot":"","sources":["../../src/helpers/getCertificateInfo.ts"],"names":[],"mappings":"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"}
|
package/dist/helpers/index.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { convertAAGUIDToString } from './convertAAGUIDToString';
|
|
2
|
-
import { convertCertBufferToPEM } from './convertCertBufferToPEM';
|
|
3
|
-
import { convertCOSEtoPKCS } from './convertCOSEtoPKCS';
|
|
4
|
-
import { decodeAttestationObject } from './decodeAttestationObject';
|
|
5
|
-
import { decodeClientDataJSON } from './decodeClientDataJSON';
|
|
6
|
-
import { decodeCredentialPublicKey } from './decodeCredentialPublicKey';
|
|
7
|
-
import { generateChallenge } from './generateChallenge';
|
|
8
|
-
import { getCertificateInfo } from './getCertificateInfo';
|
|
9
|
-
import { isCertRevoked } from './isCertRevoked';
|
|
10
|
-
import { parseAuthenticatorData } from './parseAuthenticatorData';
|
|
11
|
-
import { toHash } from './toHash';
|
|
12
|
-
import { validateCertificatePath } from './validateCertificatePath';
|
|
13
|
-
import { verifySignature } from './verifySignature';
|
|
14
|
-
import { isoCBOR, isoBase64URL, isoUint8Array, isoCrypto } from './iso';
|
|
15
|
-
import * as cose from './cose';
|
|
16
|
-
export { convertAAGUIDToString, convertCertBufferToPEM, convertCOSEtoPKCS, decodeAttestationObject, decodeClientDataJSON, decodeCredentialPublicKey, generateChallenge, getCertificateInfo, isCertRevoked, parseAuthenticatorData, toHash, validateCertificatePath, verifySignature, isoCBOR, isoCrypto, isoBase64URL, isoUint8Array, cose, };
|
|
17
|
-
import type { AttestationFormat, AttestationObject, AttestationStatement } from './decodeAttestationObject';
|
|
18
|
-
import type { CertificateInfo } from './getCertificateInfo';
|
|
19
|
-
import type { ClientDataJSON } from './decodeClientDataJSON';
|
|
20
|
-
import type { COSEPublicKey } from './cose';
|
|
21
|
-
import type { ParsedAuthenticatorData } from './parseAuthenticatorData';
|
|
22
|
-
export type { AttestationFormat, AttestationObject, AttestationStatement, CertificateInfo, ClientDataJSON, COSEPublicKey, ParsedAuthenticatorData, };
|