@pagopa/io-react-native-wallet 3.0.0 → 3.1.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/lib/commonjs/api/index.js +3 -0
- package/lib/commonjs/api/index.js.map +1 -1
- package/lib/commonjs/client/generated/wallet-provider.js +42 -4
- package/lib/commonjs/client/generated/wallet-provider.js.map +1 -1
- package/lib/commonjs/client/index.js +5 -3
- package/lib/commonjs/client/index.js.map +1 -1
- package/lib/commonjs/credential/issuance/README.md +2 -0
- package/lib/commonjs/credential/issuance/api/IssuerConfig.js +2 -2
- package/lib/commonjs/credential/issuance/api/IssuerConfig.js.map +1 -1
- package/lib/commonjs/credential/issuance/common/06-verify-and-parse-credential.sdjwt.js +2 -1
- package/lib/commonjs/credential/issuance/common/06-verify-and-parse-credential.sdjwt.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/01-evaluate-issuer-trust.js +2 -0
- package/lib/commonjs/credential/issuance/v1.3.3/01-evaluate-issuer-trust.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/03-complete-user-authorization.js +2 -0
- package/lib/commonjs/credential/issuance/v1.3.3/03-complete-user-authorization.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/05-obtain-credential.js +15 -8
- package/lib/commonjs/credential/issuance/v1.3.3/05-obtain-credential.js.map +1 -1
- package/lib/commonjs/credential/issuance/v1.3.3/mappers.js +0 -1
- package/lib/commonjs/credential/issuance/v1.3.3/mappers.js.map +1 -1
- package/lib/commonjs/credential/presentation/api/RelyingPartyConfig.js +2 -2
- package/lib/commonjs/credential/presentation/api/RelyingPartyConfig.js.map +1 -1
- package/lib/commonjs/credential/presentation/common/utils/sd-jwt.js +2 -1
- package/lib/commonjs/credential/presentation/common/utils/sd-jwt.js.map +1 -1
- package/lib/commonjs/credential/presentation/v1.0.0/04-verify-request-object.js.map +1 -1
- package/lib/commonjs/credential/presentation/v1.3.3/04-verify-request-object.js +4 -2
- package/lib/commonjs/credential/presentation/v1.3.3/04-verify-request-object.js.map +1 -1
- package/lib/commonjs/credentials-catalogue/api/DigitalCredentialsCatalogue.js +37 -11
- package/lib/commonjs/credentials-catalogue/api/DigitalCredentialsCatalogue.js.map +1 -1
- package/lib/commonjs/credentials-catalogue/v1.0.0/mappers.js +16 -5
- package/lib/commonjs/credentials-catalogue/v1.0.0/mappers.js.map +1 -1
- package/lib/commonjs/credentials-catalogue/v1.3.3/mappers.js +4 -2
- package/lib/commonjs/credentials-catalogue/v1.3.3/mappers.js.map +1 -1
- package/lib/commonjs/credentials-catalogue/v1.3.3/types.js +91 -30
- package/lib/commonjs/credentials-catalogue/v1.3.3/types.js.map +1 -1
- package/lib/commonjs/credentials-catalogue/v1.3.3/utils.js +4 -4
- package/lib/commonjs/credentials-catalogue/v1.3.3/utils.js.map +1 -1
- package/lib/commonjs/index.js +3 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/sd-jwt/index.js +3 -2
- package/lib/commonjs/sd-jwt/index.js.map +1 -1
- package/lib/commonjs/sd-jwt/utils.js +2 -1
- package/lib/commonjs/sd-jwt/utils.js.map +1 -1
- package/lib/commonjs/trust/common/types.js +3 -3
- package/lib/commonjs/trust/common/types.js.map +1 -1
- package/lib/commonjs/trust/v1.0.0/types.js +6 -8
- package/lib/commonjs/trust/v1.0.0/types.js.map +1 -1
- package/lib/commonjs/trust/v1.3.3/types.js +1 -3
- package/lib/commonjs/trust/v1.3.3/types.js.map +1 -1
- package/lib/commonjs/utils/callbacks.js +2 -0
- package/lib/commonjs/utils/callbacks.js.map +1 -1
- package/lib/commonjs/utils/credentials.js +17 -2
- package/lib/commonjs/utils/credentials.js.map +1 -1
- package/lib/commonjs/utils/crypto.js +8 -0
- package/lib/commonjs/utils/crypto.js.map +1 -1
- package/lib/commonjs/utils/dpop.js +1 -1
- package/lib/commonjs/utils/dpop.js.map +1 -1
- package/lib/commonjs/utils/jwk.js +1 -1
- package/lib/commonjs/utils/jwk.js.map +1 -1
- package/lib/commonjs/utils/zod.js +1 -1
- package/lib/commonjs/utils/zod.js.map +1 -1
- package/lib/commonjs/wallet-instance-attestation/README.md +13 -10
- package/lib/commonjs/wallet-instance-attestation/api/types.js +9 -4
- package/lib/commonjs/wallet-instance-attestation/api/types.js.map +1 -1
- package/lib/commonjs/wallet-instance-attestation/v1.0.0/index.js +2 -2
- package/lib/commonjs/wallet-instance-attestation/v1.0.0/index.js.map +1 -1
- package/lib/commonjs/wallet-instance-attestation/v1.0.0/issuing.js +4 -5
- package/lib/commonjs/wallet-instance-attestation/v1.0.0/issuing.js.map +1 -1
- package/lib/commonjs/wallet-instance-attestation/v1.0.0/mappers.js +4 -5
- package/lib/commonjs/wallet-instance-attestation/v1.0.0/mappers.js.map +1 -1
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/index.js +5 -7
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/index.js.map +1 -1
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/issuing.js +73 -3
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/issuing.js.map +1 -1
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/mappers.js +26 -0
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/mappers.js.map +1 -0
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/types.js +13 -24
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/types.js.map +1 -1
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/utils.js +35 -0
- package/lib/commonjs/wallet-instance-attestation/v1.3.3/utils.js.map +1 -0
- package/lib/commonjs/wallet-unit-attestation/README.md +73 -0
- package/lib/commonjs/wallet-unit-attestation/api/index.js +6 -0
- package/lib/commonjs/wallet-unit-attestation/api/index.js.map +1 -0
- package/lib/commonjs/wallet-unit-attestation/api/types.js +45 -0
- package/lib/commonjs/wallet-unit-attestation/api/types.js.map +1 -0
- package/lib/commonjs/wallet-unit-attestation/index.js +20 -0
- package/lib/commonjs/wallet-unit-attestation/index.js.map +1 -0
- package/lib/commonjs/wallet-unit-attestation/v1.0.0/index.js +11 -0
- package/lib/commonjs/wallet-unit-attestation/v1.0.0/index.js.map +1 -0
- package/lib/commonjs/wallet-unit-attestation/v1.3.3/index.js +17 -0
- package/lib/commonjs/wallet-unit-attestation/v1.3.3/index.js.map +1 -0
- package/lib/commonjs/wallet-unit-attestation/v1.3.3/issuing.js +118 -0
- package/lib/commonjs/wallet-unit-attestation/v1.3.3/issuing.js.map +1 -0
- package/lib/commonjs/wallet-unit-attestation/v1.3.3/mappers.js +13 -0
- package/lib/commonjs/wallet-unit-attestation/v1.3.3/mappers.js.map +1 -0
- package/lib/commonjs/wallet-unit-attestation/v1.3.3/types.js +23 -0
- package/lib/commonjs/wallet-unit-attestation/v1.3.3/types.js.map +1 -0
- package/lib/commonjs/wallet-unit-attestation/v1.3.3/utils.js +20 -0
- package/lib/commonjs/wallet-unit-attestation/v1.3.3/utils.js.map +1 -0
- package/lib/module/api/index.js +3 -0
- package/lib/module/api/index.js.map +1 -1
- package/lib/module/client/generated/wallet-provider.js +33 -1
- package/lib/module/client/generated/wallet-provider.js.map +1 -1
- package/lib/module/client/index.js +4 -2
- package/lib/module/client/index.js.map +1 -1
- package/lib/module/credential/issuance/README.md +2 -0
- package/lib/module/credential/issuance/api/IssuerConfig.js +2 -2
- package/lib/module/credential/issuance/api/IssuerConfig.js.map +1 -1
- package/lib/module/credential/issuance/common/06-verify-and-parse-credential.sdjwt.js +2 -1
- package/lib/module/credential/issuance/common/06-verify-and-parse-credential.sdjwt.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/01-evaluate-issuer-trust.js +2 -0
- package/lib/module/credential/issuance/v1.3.3/01-evaluate-issuer-trust.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/03-complete-user-authorization.js +2 -0
- package/lib/module/credential/issuance/v1.3.3/03-complete-user-authorization.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/05-obtain-credential.js +16 -9
- package/lib/module/credential/issuance/v1.3.3/05-obtain-credential.js.map +1 -1
- package/lib/module/credential/issuance/v1.3.3/mappers.js +0 -1
- package/lib/module/credential/issuance/v1.3.3/mappers.js.map +1 -1
- package/lib/module/credential/presentation/api/RelyingPartyConfig.js +1 -1
- package/lib/module/credential/presentation/api/RelyingPartyConfig.js.map +1 -1
- package/lib/module/credential/presentation/common/utils/sd-jwt.js +2 -1
- package/lib/module/credential/presentation/common/utils/sd-jwt.js.map +1 -1
- package/lib/module/credential/presentation/v1.0.0/04-verify-request-object.js.map +1 -1
- package/lib/module/credential/presentation/v1.3.3/04-verify-request-object.js +4 -2
- package/lib/module/credential/presentation/v1.3.3/04-verify-request-object.js.map +1 -1
- package/lib/module/credentials-catalogue/api/DigitalCredentialsCatalogue.js +37 -11
- package/lib/module/credentials-catalogue/api/DigitalCredentialsCatalogue.js.map +1 -1
- package/lib/module/credentials-catalogue/v1.0.0/mappers.js +16 -5
- package/lib/module/credentials-catalogue/v1.0.0/mappers.js.map +1 -1
- package/lib/module/credentials-catalogue/v1.3.3/mappers.js +4 -2
- package/lib/module/credentials-catalogue/v1.3.3/mappers.js.map +1 -1
- package/lib/module/credentials-catalogue/v1.3.3/types.js +91 -30
- package/lib/module/credentials-catalogue/v1.3.3/types.js.map +1 -1
- package/lib/module/credentials-catalogue/v1.3.3/utils.js +4 -4
- package/lib/module/credentials-catalogue/v1.3.3/utils.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/sd-jwt/index.js +3 -2
- package/lib/module/sd-jwt/index.js.map +1 -1
- package/lib/module/sd-jwt/utils.js +2 -1
- package/lib/module/sd-jwt/utils.js.map +1 -1
- package/lib/module/trust/common/types.js +3 -3
- package/lib/module/trust/common/types.js.map +1 -1
- package/lib/module/trust/v1.0.0/types.js +5 -7
- package/lib/module/trust/v1.0.0/types.js.map +1 -1
- package/lib/module/trust/v1.3.3/types.js +1 -3
- package/lib/module/trust/v1.3.3/types.js.map +1 -1
- package/lib/module/utils/callbacks.js +3 -0
- package/lib/module/utils/callbacks.js.map +1 -1
- package/lib/module/utils/credentials.js +15 -1
- package/lib/module/utils/credentials.js.map +1 -1
- package/lib/module/utils/crypto.js +8 -0
- package/lib/module/utils/crypto.js.map +1 -1
- package/lib/module/utils/dpop.js +1 -1
- package/lib/module/utils/dpop.js.map +1 -1
- package/lib/module/utils/jwk.js +1 -1
- package/lib/module/utils/jwk.js.map +1 -1
- package/lib/module/utils/zod.js +1 -1
- package/lib/module/utils/zod.js.map +1 -1
- package/lib/module/wallet-instance-attestation/README.md +13 -10
- package/lib/module/wallet-instance-attestation/api/types.js +7 -2
- package/lib/module/wallet-instance-attestation/api/types.js.map +1 -1
- package/lib/module/wallet-instance-attestation/v1.0.0/index.js +3 -3
- package/lib/module/wallet-instance-attestation/v1.0.0/index.js.map +1 -1
- package/lib/module/wallet-instance-attestation/v1.0.0/issuing.js +4 -5
- package/lib/module/wallet-instance-attestation/v1.0.0/issuing.js.map +1 -1
- package/lib/module/wallet-instance-attestation/v1.0.0/mappers.js +3 -4
- package/lib/module/wallet-instance-attestation/v1.0.0/mappers.js.map +1 -1
- package/lib/module/wallet-instance-attestation/v1.3.3/index.js +5 -7
- package/lib/module/wallet-instance-attestation/v1.3.3/index.js.map +1 -1
- package/lib/module/wallet-instance-attestation/v1.3.3/issuing.js +73 -3
- package/lib/module/wallet-instance-attestation/v1.3.3/issuing.js.map +1 -1
- package/lib/module/wallet-instance-attestation/v1.3.3/mappers.js +19 -0
- package/lib/module/wallet-instance-attestation/v1.3.3/mappers.js.map +1 -0
- package/lib/module/wallet-instance-attestation/v1.3.3/types.js +10 -21
- package/lib/module/wallet-instance-attestation/v1.3.3/types.js.map +1 -1
- package/lib/module/wallet-instance-attestation/v1.3.3/utils.js +29 -0
- package/lib/module/wallet-instance-attestation/v1.3.3/utils.js.map +1 -0
- package/lib/module/wallet-unit-attestation/README.md +73 -0
- package/lib/module/wallet-unit-attestation/api/index.js +2 -0
- package/lib/module/wallet-unit-attestation/api/index.js.map +1 -0
- package/lib/module/wallet-unit-attestation/api/types.js +36 -0
- package/lib/module/wallet-unit-attestation/api/types.js.map +1 -0
- package/lib/module/wallet-unit-attestation/index.js +3 -0
- package/lib/module/wallet-unit-attestation/index.js.map +1 -0
- package/lib/module/wallet-unit-attestation/v1.0.0/index.js +4 -0
- package/lib/module/wallet-unit-attestation/v1.0.0/index.js.map +1 -0
- package/lib/module/wallet-unit-attestation/v1.3.3/index.js +10 -0
- package/lib/module/wallet-unit-attestation/v1.3.3/index.js.map +1 -0
- package/lib/module/wallet-unit-attestation/v1.3.3/issuing.js +112 -0
- package/lib/module/wallet-unit-attestation/v1.3.3/issuing.js.map +1 -0
- package/lib/module/wallet-unit-attestation/v1.3.3/mappers.js +6 -0
- package/lib/module/wallet-unit-attestation/v1.3.3/mappers.js.map +1 -0
- package/lib/module/wallet-unit-attestation/v1.3.3/types.js +14 -0
- package/lib/module/wallet-unit-attestation/v1.3.3/types.js.map +1 -0
- package/lib/module/wallet-unit-attestation/v1.3.3/utils.js +15 -0
- package/lib/module/wallet-unit-attestation/v1.3.3/utils.js.map +1 -0
- package/lib/typescript/api/index.d.ts +2 -0
- package/lib/typescript/api/index.d.ts.map +1 -1
- package/lib/typescript/client/generated/wallet-provider.d.ts +122 -358
- package/lib/typescript/client/generated/wallet-provider.d.ts.map +1 -1
- package/lib/typescript/client/index.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/api/05-obtain-credential.d.ts +2 -0
- package/lib/typescript/credential/issuance/api/05-obtain-credential.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/api/IssuerConfig.d.ts +21 -357
- package/lib/typescript/credential/issuance/api/IssuerConfig.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/api/types.d.ts +5 -41
- package/lib/typescript/credential/issuance/api/types.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/common/02-start-user-authorization.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/common/06-verify-and-parse-credential.sdjwt.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/common/authorization.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.0.0/03-complete-user-authorization.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.0.0/05-obtain-credential.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.0.0/mappers.d.ts +103 -106
- package/lib/typescript/credential/issuance/v1.0.0/mappers.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.0.0/types.d.ts +4 -26
- package/lib/typescript/credential/issuance/v1.0.0/types.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/01-evaluate-issuer-trust.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/03-complete-user-authorization.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/05-obtain-credential.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/mappers.d.ts +594 -2095
- package/lib/typescript/credential/issuance/v1.3.3/mappers.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/v1.3.3/types.d.ts +1 -5
- package/lib/typescript/credential/issuance/v1.3.3/types.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/api/RelyingPartyConfig.d.ts +9 -154
- package/lib/typescript/credential/presentation/api/RelyingPartyConfig.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/api/types.d.ts +30 -106
- package/lib/typescript/credential/presentation/api/types.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/common/utils/dcql.d.ts +29 -244
- package/lib/typescript/credential/presentation/common/utils/dcql.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/common/utils/http.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/common/utils/sd-jwt.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/common/utils.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.0.0/06-send-authorization-response.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.0.0/mappers.d.ts +56 -58
- package/lib/typescript/credential/presentation/v1.0.0/mappers.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.0.0/types.d.ts +13 -52
- package/lib/typescript/credential/presentation/v1.0.0/types.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.0.0/utils.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.0.0/utils.jwks.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.3.3/04-verify-request-object.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.3.3/mappers.d.ts +133 -525
- package/lib/typescript/credential/presentation/v1.3.3/mappers.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.3.3/sdkErrorMapper.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.3.3/types.d.ts +39 -3672
- package/lib/typescript/credential/presentation/v1.3.3/types.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/v1.3.3/utils.mdoc.d.ts.map +1 -1
- package/lib/typescript/credential/status/v1.0.0/mappers.d.ts +6 -6
- package/lib/typescript/credential/status/v1.0.0/types.d.ts +33 -659
- package/lib/typescript/credential/status/v1.0.0/types.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/api/DigitalCredentialsCatalogue.d.ts +111 -525
- package/lib/typescript/credentials-catalogue/api/DigitalCredentialsCatalogue.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/v1.0.0/mappers.d.ts +48 -20
- package/lib/typescript/credentials-catalogue/v1.0.0/mappers.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/v1.0.0/types.d.ts +41 -737
- package/lib/typescript/credentials-catalogue/v1.0.0/types.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/v1.3.3/mappers.d.ts +147 -62
- package/lib/typescript/credentials-catalogue/v1.3.3/mappers.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/v1.3.3/types.d.ts +180 -941
- package/lib/typescript/credentials-catalogue/v1.3.3/types.d.ts.map +1 -1
- package/lib/typescript/credentials-catalogue/v1.3.3/utils.d.ts +1 -1
- package/lib/typescript/credentials-catalogue/v1.3.3/utils.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +4 -3
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/mdoc/index.d.ts.map +1 -1
- package/lib/typescript/mdoc/utils.d.ts.map +1 -1
- package/lib/typescript/sd-jwt/index.d.ts +16 -16
- package/lib/typescript/sd-jwt/index.d.ts.map +1 -1
- package/lib/typescript/sd-jwt/types.d.ts +33 -492
- package/lib/typescript/sd-jwt/types.d.ts.map +1 -1
- package/lib/typescript/sd-jwt/utils.d.ts.map +1 -1
- package/lib/typescript/trust/api/TrustAnchorConfig.d.ts +12 -201
- package/lib/typescript/trust/api/TrustAnchorConfig.d.ts.map +1 -1
- package/lib/typescript/trust/common/build-chain.d.ts.map +1 -1
- package/lib/typescript/trust/common/types.d.ts +32 -1198
- package/lib/typescript/trust/common/types.d.ts.map +1 -1
- package/lib/typescript/trust/common/utils.d.ts.map +1 -1
- package/lib/typescript/trust/v1.0.0/build-chain.d.ts +1 -53
- package/lib/typescript/trust/v1.0.0/build-chain.d.ts.map +1 -1
- package/lib/typescript/trust/v1.0.0/entities.d.ts +324 -347
- package/lib/typescript/trust/v1.0.0/entities.d.ts.map +1 -1
- package/lib/typescript/trust/v1.0.0/mappers.d.ts +31 -35
- package/lib/typescript/trust/v1.0.0/mappers.d.ts.map +1 -1
- package/lib/typescript/trust/v1.0.0/types.d.ts +678 -12454
- package/lib/typescript/trust/v1.0.0/types.d.ts.map +1 -1
- package/lib/typescript/trust/v1.0.0/verify-chain.d.ts +4 -56
- package/lib/typescript/trust/v1.0.0/verify-chain.d.ts.map +1 -1
- package/lib/typescript/trust/v1.3.3/entities.d.ts +43 -47
- package/lib/typescript/trust/v1.3.3/entities.d.ts.map +1 -1
- package/lib/typescript/trust/v1.3.3/types.d.ts +655 -14339
- package/lib/typescript/trust/v1.3.3/types.d.ts.map +1 -1
- package/lib/typescript/utils/auth.d.ts +3 -25
- package/lib/typescript/utils/auth.d.ts.map +1 -1
- package/lib/typescript/utils/callbacks.d.ts.map +1 -1
- package/lib/typescript/utils/config.d.ts +3 -3
- package/lib/typescript/utils/config.d.ts.map +1 -1
- package/lib/typescript/utils/credentials.d.ts +5 -0
- package/lib/typescript/utils/credentials.d.ts.map +1 -1
- package/lib/typescript/utils/crypto.d.ts +18 -0
- package/lib/typescript/utils/crypto.d.ts.map +1 -1
- package/lib/typescript/utils/decoder.d.ts.map +1 -1
- package/lib/typescript/utils/dpop.d.ts +5 -12
- package/lib/typescript/utils/dpop.d.ts.map +1 -1
- package/lib/typescript/utils/errors.d.ts.map +1 -1
- package/lib/typescript/utils/jwk.d.ts +15 -175
- package/lib/typescript/utils/jwk.d.ts.map +1 -1
- package/lib/typescript/utils/mappers.d.ts.map +1 -1
- package/lib/typescript/utils/misc.d.ts +2 -2
- package/lib/typescript/utils/misc.d.ts.map +1 -1
- package/lib/typescript/utils/object.d.ts.map +1 -1
- package/lib/typescript/utils/par.d.ts +7 -45
- package/lib/typescript/utils/par.d.ts.map +1 -1
- package/lib/typescript/utils/parser.d.ts.map +1 -1
- package/lib/typescript/utils/pop.d.ts +1 -9
- package/lib/typescript/utils/pop.d.ts.map +1 -1
- package/lib/typescript/utils/string.d.ts.map +1 -1
- package/lib/typescript/utils/zod.d.ts +4 -4
- package/lib/typescript/utils/zod.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/api/index.d.ts +9 -9
- package/lib/typescript/wallet-instance-attestation/api/index.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/api/types.d.ts +19 -174
- package/lib/typescript/wallet-instance-attestation/api/types.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/common/types.d.ts +14 -273
- package/lib/typescript/wallet-instance-attestation/common/types.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/v1.0.0/issuing.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/v1.0.0/mappers.d.ts +5 -3
- package/lib/typescript/wallet-instance-attestation/v1.0.0/mappers.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/v1.0.0/types.d.ts +39 -629
- package/lib/typescript/wallet-instance-attestation/v1.0.0/types.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/v1.3.3/index.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/v1.3.3/issuing.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/v1.3.3/mappers.d.ts +90 -0
- package/lib/typescript/wallet-instance-attestation/v1.3.3/mappers.d.ts.map +1 -0
- package/lib/typescript/wallet-instance-attestation/v1.3.3/types.d.ts +29 -891
- package/lib/typescript/wallet-instance-attestation/v1.3.3/types.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/v1.3.3/utils.d.ts +15 -0
- package/lib/typescript/wallet-instance-attestation/v1.3.3/utils.d.ts.map +1 -0
- package/lib/typescript/wallet-unit-attestation/api/index.d.ts +39 -0
- package/lib/typescript/wallet-unit-attestation/api/index.d.ts.map +1 -0
- package/lib/typescript/wallet-unit-attestation/api/types.d.ts +67 -0
- package/lib/typescript/wallet-unit-attestation/api/types.d.ts.map +1 -0
- package/lib/typescript/wallet-unit-attestation/index.d.ts +4 -0
- package/lib/typescript/wallet-unit-attestation/index.d.ts.map +1 -0
- package/lib/typescript/wallet-unit-attestation/v1.0.0/index.d.ts +3 -0
- package/lib/typescript/wallet-unit-attestation/v1.0.0/index.d.ts.map +1 -0
- package/lib/typescript/wallet-unit-attestation/v1.3.3/index.d.ts +3 -0
- package/lib/typescript/wallet-unit-attestation/v1.3.3/index.d.ts.map +1 -0
- package/lib/typescript/wallet-unit-attestation/v1.3.3/issuing.d.ts +3 -0
- package/lib/typescript/wallet-unit-attestation/v1.3.3/issuing.d.ts.map +1 -0
- package/lib/typescript/wallet-unit-attestation/v1.3.3/mappers.d.ts +107 -0
- package/lib/typescript/wallet-unit-attestation/v1.3.3/mappers.d.ts.map +1 -0
- package/lib/typescript/wallet-unit-attestation/v1.3.3/types.d.ts +69 -0
- package/lib/typescript/wallet-unit-attestation/v1.3.3/types.d.ts.map +1 -0
- package/lib/typescript/wallet-unit-attestation/v1.3.3/utils.d.ts +7 -0
- package/lib/typescript/wallet-unit-attestation/v1.3.3/utils.d.ts.map +1 -0
- package/package.json +8 -8
- package/src/api/index.ts +4 -0
- package/src/client/generated/wallet-provider.ts +44 -0
- package/src/client/index.ts +5 -1
- package/src/credential/issuance/README.md +2 -0
- package/src/credential/issuance/api/05-obtain-credential.ts +2 -0
- package/src/credential/issuance/api/IssuerConfig.ts +4 -2
- package/src/credential/issuance/common/06-verify-and-parse-credential.sdjwt.ts +2 -1
- package/src/credential/issuance/v1.3.3/01-evaluate-issuer-trust.ts +8 -3
- package/src/credential/issuance/v1.3.3/03-complete-user-authorization.ts +2 -0
- package/src/credential/issuance/v1.3.3/05-obtain-credential.ts +25 -11
- package/src/credential/issuance/v1.3.3/mappers.ts +10 -9
- package/src/credential/presentation/api/RelyingPartyConfig.ts +1 -1
- package/src/credential/presentation/common/utils/sd-jwt.ts +4 -1
- package/src/credential/presentation/v1.0.0/04-verify-request-object.ts +2 -2
- package/src/credential/presentation/v1.3.3/04-verify-request-object.ts +4 -2
- package/src/credentials-catalogue/api/DigitalCredentialsCatalogue.ts +42 -10
- package/src/credentials-catalogue/v1.0.0/mappers.ts +27 -12
- package/src/credentials-catalogue/v1.3.3/mappers.ts +10 -4
- package/src/credentials-catalogue/v1.3.3/types.ts +102 -29
- package/src/credentials-catalogue/v1.3.3/utils.ts +9 -4
- package/src/index.ts +11 -2
- package/src/sd-jwt/index.ts +8 -3
- package/src/sd-jwt/utils.ts +5 -1
- package/src/trust/common/types.ts +3 -3
- package/src/trust/v1.0.0/types.ts +10 -10
- package/src/trust/v1.3.3/types.ts +4 -7
- package/src/utils/callbacks.ts +7 -1
- package/src/utils/credentials.ts +17 -1
- package/src/utils/crypto.ts +18 -0
- package/src/utils/dpop.ts +1 -1
- package/src/utils/jwk.ts +1 -1
- package/src/utils/mappers.ts +2 -2
- package/src/utils/zod.ts +5 -1
- package/src/wallet-instance-attestation/README.md +13 -10
- package/src/wallet-instance-attestation/api/index.ts +20 -13
- package/src/wallet-instance-attestation/api/types.ts +16 -4
- package/src/wallet-instance-attestation/v1.0.0/index.ts +3 -3
- package/src/wallet-instance-attestation/v1.0.0/issuing.ts +7 -9
- package/src/wallet-instance-attestation/v1.0.0/mappers.ts +7 -5
- package/src/wallet-instance-attestation/v1.3.3/index.ts +5 -7
- package/src/wallet-instance-attestation/v1.3.3/issuing.ts +107 -3
- package/src/wallet-instance-attestation/v1.3.3/mappers.ts +18 -0
- package/src/wallet-instance-attestation/v1.3.3/types.ts +16 -30
- package/src/wallet-instance-attestation/v1.3.3/utils.ts +35 -0
- package/src/wallet-unit-attestation/README.md +73 -0
- package/src/wallet-unit-attestation/api/index.ts +51 -0
- package/src/wallet-unit-attestation/api/types.ts +49 -0
- package/src/wallet-unit-attestation/index.ts +3 -0
- package/src/wallet-unit-attestation/v1.0.0/index.ts +5 -0
- package/src/wallet-unit-attestation/v1.3.3/index.ts +11 -0
- package/src/wallet-unit-attestation/v1.3.3/issuing.ts +147 -0
- package/src/wallet-unit-attestation/v1.3.3/mappers.ts +10 -0
- package/src/wallet-unit-attestation/v1.3.3/types.ts +21 -0
- package/src/wallet-unit-attestation/v1.3.3/utils.ts +14 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["decodeSdJwtSync","digest","thumbprint","IoWalletError","LEGACY_SD_JWT","SD_JWT","extractJwkFromCredential","credential","format","includes","decoded","cnf","jwt","payload","jwk","kid"],"sourceRoot":"../../../src","sources":["utils/credentials.ts"],"mappings":"AAAA,SAASA,eAAe,QAAQ,gBAAgB;AAChD,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,UAAU,QAAQ,6BAA6B;AAGxD,SAASC,aAAa,QAAQ,UAAU;AACxC,SACEC,aAAa,QAGR,iBAAiB;AAExB,MAAMC,MAAM,GAAG,CAAC,WAAW,EAAED,aAAa,CAAC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,wBAAwB,GAAG,MAAAA,CACtCC,UAAkB,EAClBC,MAAqD,KACpC;EACjB,IAAIH,MAAM,CAACI,QAAQ,CAACD,MAAM,CAAC,EAAE;IAC3B;IACA,MAAME,OAAO,GAAGV,eAAe,
|
|
1
|
+
{"version":3,"names":["decodeSdJwtSync","digest","thumbprint","IoWalletError","LEGACY_SD_JWT","SD_JWT","extractJwkFromCredential","credential","format","includes","decoded","fixLegacyCredentialSdJwt","cnf","jwt","payload","jwk","kid","token","endsWith","_token$split$at","hasKeyBindingJwt","split","at","length"],"sourceRoot":"../../../src","sources":["utils/credentials.ts"],"mappings":"AAAA,SAASA,eAAe,QAAQ,gBAAgB;AAChD,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,UAAU,QAAQ,6BAA6B;AAGxD,SAASC,aAAa,QAAQ,UAAU;AACxC,SACEC,aAAa,QAGR,iBAAiB;AAExB,MAAMC,MAAM,GAAG,CAAC,WAAW,EAAED,aAAa,CAAC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,wBAAwB,GAAG,MAAAA,CACtCC,UAAkB,EAClBC,MAAqD,KACpC;EACjB,IAAIH,MAAM,CAACI,QAAQ,CAACD,MAAM,CAAC,EAAE;IAC3B;IACA,MAAME,OAAO,GAAGV,eAAe,CAC7BW,wBAAwB,CAACJ,UAAU,CAAC,EACpCN,MACF,CAAC;IACD,MAAM;MAAEW;IAAI,CAAC,GAAGF,OAAO,CAACG,GAAG,CAACC,OAAkC;IAC9D,IAAIF,GAAG,CAACG,GAAG,EAAE;MACX,OAAO;QAAE,GAAGH,GAAG,CAACG,GAAG;QAAEC,GAAG,EAAE,MAAMd,UAAU,CAACU,GAAG,CAACG,GAAG;MAAE,CAAC;IACvD;EACF;EACA,MAAM,IAAIZ,aAAa,CAAE,qBAAoBK,MAAO,gBAAe,CAAC;AACtE,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMG,wBAAwB,GAAIM,KAAa,IAAK;EACzD,IAAI,CAACA,KAAK,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;IAAA,IAAAC,eAAA;IACxB,MAAMC,gBAAgB,GAAG,EAAAD,eAAA,GAAAF,KAAK,CAACI,KAAK,CAAC,GAAG,CAAC,CAACC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAAH,eAAA,uBAAvBA,eAAA,CAAyBE,KAAK,CAAC,GAAG,CAAC,CAACE,MAAM,MAAK,CAAC;IACzE;IACA,OAAOH,gBAAgB,GAAGH,KAAK,GAAI,GAAEA,KAAM,GAAE;EAC/C;EACA,OAAOA,KAAK;AACd,CAAC"}
|
|
@@ -78,4 +78,12 @@ export const getSigninJwkFromCert = pemCert => {
|
|
|
78
78
|
}
|
|
79
79
|
throw new IoWalletError("Unable to find the signing key inside the PEM certificate");
|
|
80
80
|
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Extension of the {@link CryptoContext} that adds key generation with optional key attestation.
|
|
84
|
+
*
|
|
85
|
+
* This context requires the consumer to provide an additional method for **key generation**;
|
|
86
|
+
* on Android this method should also generate a key attestation as a certificate chain
|
|
87
|
+
* to ensure the key pair is hardware-backed.
|
|
88
|
+
*/
|
|
81
89
|
//# sourceMappingURL=crypto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["deleteKey","generate","getPublicKeyFixed","sign","v4","uuidv4","thumbprint","JWK","KEYUTIL","KJUR","RSAKey","X509","IoWalletError","createCryptoContextFor","keytag","getPublicKey","then","jwk","kid","getSignature","value","withEphemeralKey","fn","ephemeralContext","finally","convertBase64DerToPem","certificate","getSigninJwkFromCert","pemCert","x509","readCertPEM","publicKey","crypto","ECDSA","parse","getJWKFromKey","use"],"sourceRoot":"../../../src","sources":["utils/crypto.ts"],"mappings":"AAAA,SACEA,SAAS,EACTC,QAAQ,EACRC,iBAAiB,EACjBC,IAAI,QACC,gCAAgC;AACvC,SAASC,EAAE,IAAIC,MAAM,QAAQ,MAAM;AACnC,SAASC,UAAU,QAA4B,6BAA6B;AAC5E,SAASC,GAAG,QAAQ,OAAO;AAC3B,SAASC,OAAO,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,QAAQ,WAAW;AACvD,SAASC,aAAa,QAAQ,UAAU;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAIC,MAAc,IAAoB;EACvE,OAAO;IACL,MAAMC,YAAYA,CAAA,EAAG;MACnB,OAAOb,iBAAiB,CAACY,MAAM,CAAC,CAACE,IAAI,CAAC,MAAOC,GAAG,KAAM;QACpD,GAAGA,GAAG;QACN;QACA;QACA;QACA;QACAC,GAAG,EAAE,MAAMZ,UAAU,CAACW,GAAG;MAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IACD;AACJ;AACA;AACA;AACA;AACA;IACI,MAAME,YAAYA,CAACC,KAAa,EAAE;MAChC,OAAOjB,IAAI,CAACiB,KAAK,EAAEN,MAAM,CAAC;IAC5B;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,gBAAgB,GAAG,MAC9BC,EAAmD,IACpC;EACf;EACA,MAAMR,MAAM,GAAI,aAAYT,MAAM,CAAC,CAAE,EAAC;EACtC,MAAMJ,QAAQ,CAACa,MAAM,CAAC;EACtB,MAAMS,gBAAgB,GAAGV,sBAAsB,CAACC,MAAM,CAAC;EACvD,OAAOQ,EAAE,CAACC,gBAAgB,CAAC,CAACC,OAAO,CAAC,MAAMxB,SAAS,CAACc,MAAM,CAAC,CAAC;AAC9D,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMW,qBAAqB,GAAIC,WAAmB,IACtD,gCAA+BA,WAAY,6BAA4B;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAIC,OAAe,IAAU;EAC5D,MAAMC,IAAI,GAAG,IAAIlB,IAAI,CAAC,CAAC;EACvBkB,IAAI,CAACC,WAAW,CAACF,OAAO,CAAC;EACzB,MAAMG,SAAS,GAAGF,IAAI,CAACd,YAAY,CAAC,CAAC;EAErC,IAAIgB,SAAS,YAAYrB,MAAM,IAAIqB,SAAS,YAAYtB,IAAI,CAACuB,MAAM,CAACC,KAAK,EAAE;IACzE,OAAO;MACL,GAAG1B,GAAG,CAAC2B,KAAK,CAAC1B,OAAO,CAAC2B,aAAa,CAACJ,SAAS,CAAC,CAAC;MAC9CK,GAAG,EAAE;IACP,CAAC;EACH;EAEA,MAAM,IAAIxB,aAAa,CACrB,2DACF,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"names":["deleteKey","generate","getPublicKeyFixed","sign","v4","uuidv4","thumbprint","JWK","KEYUTIL","KJUR","RSAKey","X509","IoWalletError","createCryptoContextFor","keytag","getPublicKey","then","jwk","kid","getSignature","value","withEphemeralKey","fn","ephemeralContext","finally","convertBase64DerToPem","certificate","getSigninJwkFromCert","pemCert","x509","readCertPEM","publicKey","crypto","ECDSA","parse","getJWKFromKey","use"],"sourceRoot":"../../../src","sources":["utils/crypto.ts"],"mappings":"AAAA,SACEA,SAAS,EACTC,QAAQ,EACRC,iBAAiB,EACjBC,IAAI,QACC,gCAAgC;AACvC,SAASC,EAAE,IAAIC,MAAM,QAAQ,MAAM;AACnC,SAASC,UAAU,QAA4B,6BAA6B;AAC5E,SAASC,GAAG,QAAQ,OAAO;AAC3B,SAASC,OAAO,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,QAAQ,WAAW;AACvD,SAASC,aAAa,QAAQ,UAAU;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAIC,MAAc,IAAoB;EACvE,OAAO;IACL,MAAMC,YAAYA,CAAA,EAAG;MACnB,OAAOb,iBAAiB,CAACY,MAAM,CAAC,CAACE,IAAI,CAAC,MAAOC,GAAG,KAAM;QACpD,GAAGA,GAAG;QACN;QACA;QACA;QACA;QACAC,GAAG,EAAE,MAAMZ,UAAU,CAACW,GAAG;MAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IACD;AACJ;AACA;AACA;AACA;AACA;IACI,MAAME,YAAYA,CAACC,KAAa,EAAE;MAChC,OAAOjB,IAAI,CAACiB,KAAK,EAAEN,MAAM,CAAC;IAC5B;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,gBAAgB,GAAG,MAC9BC,EAAmD,IACpC;EACf;EACA,MAAMR,MAAM,GAAI,aAAYT,MAAM,CAAC,CAAE,EAAC;EACtC,MAAMJ,QAAQ,CAACa,MAAM,CAAC;EACtB,MAAMS,gBAAgB,GAAGV,sBAAsB,CAACC,MAAM,CAAC;EACvD,OAAOQ,EAAE,CAACC,gBAAgB,CAAC,CAACC,OAAO,CAAC,MAAMxB,SAAS,CAACc,MAAM,CAAC,CAAC;AAC9D,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMW,qBAAqB,GAAIC,WAAmB,IACtD,gCAA+BA,WAAY,6BAA4B;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAIC,OAAe,IAAU;EAC5D,MAAMC,IAAI,GAAG,IAAIlB,IAAI,CAAC,CAAC;EACvBkB,IAAI,CAACC,WAAW,CAACF,OAAO,CAAC;EACzB,MAAMG,SAAS,GAAGF,IAAI,CAACd,YAAY,CAAC,CAAC;EAErC,IAAIgB,SAAS,YAAYrB,MAAM,IAAIqB,SAAS,YAAYtB,IAAI,CAACuB,MAAM,CAACC,KAAK,EAAE;IACzE,OAAO;MACL,GAAG1B,GAAG,CAAC2B,KAAK,CAAC1B,OAAO,CAAC2B,aAAa,CAACJ,SAAS,CAAC,CAAC;MAC9CK,GAAG,EAAE;IACP,CAAC;EACH;EAEA,MAAM,IAAIxB,aAAa,CACrB,2DACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA"}
|
package/lib/module/utils/dpop.js
CHANGED
|
@@ -18,7 +18,7 @@ export const createDPopToken = async (payload, crypto) => {
|
|
|
18
18
|
};
|
|
19
19
|
export const DPoPPayload = z.object({
|
|
20
20
|
jti: z.string(),
|
|
21
|
-
htm: z.
|
|
21
|
+
htm: z.enum(["POST", "GET"]),
|
|
22
22
|
htu: z.string(),
|
|
23
23
|
ath: z.string().optional()
|
|
24
24
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["z","SignJWT","createDPopToken","payload","crypto","jwk","getPublicKey","setPayload","setProtectedHeader","typ","setIssuedAt","setExpirationTime","sign","DPoPPayload","object","jti","string","htm","
|
|
1
|
+
{"version":3,"names":["z","SignJWT","createDPopToken","payload","crypto","jwk","getPublicKey","setPayload","setProtectedHeader","typ","setIssuedAt","setExpirationTime","sign","DPoPPayload","object","jti","string","htm","enum","htu","ath","optional"],"sourceRoot":"../../../src","sources":["utils/dpop.ts"],"mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,KAAK;AAExB,SAASC,OAAO,QAA4B,6BAA6B;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAG,MAAAA,CAC7BC,OAAoB,EACpBC,MAAqB,KACD;EACpB,MAAMC,GAAG,GAAG,MAAMD,MAAM,CAACE,YAAY,CAAC,CAAC;EACvC,OAAO,IAAIL,OAAO,CAACG,MAAM,CAAC,CACvBG,UAAU,CAACJ,OAAO,CAAC,CACnBK,kBAAkB,CAAC;IAClBC,GAAG,EAAE,UAAU;IACfJ;EACF,CAAC,CAAC,CACDK,WAAW,CAAC,CAAC,CACbC,iBAAiB,CAAC,IAAI,CAAC,CACvBC,IAAI,CAAC,CAAC;AACX,CAAC;AAGD,OAAO,MAAMC,WAAW,GAAGb,CAAC,CAACc,MAAM,CAAC;EAClCC,GAAG,EAAEf,CAAC,CAACgB,MAAM,CAAC,CAAC;EACfC,GAAG,EAAEjB,CAAC,CAACkB,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;EAC5BC,GAAG,EAAEnB,CAAC,CAACgB,MAAM,CAAC,CAAC;EACfI,GAAG,EAAEpB,CAAC,CAACgB,MAAM,CAAC,CAAC,CAACK,QAAQ,CAAC;AAC3B,CAAC,CAAC"}
|
package/lib/module/utils/jwk.js
CHANGED
|
@@ -18,7 +18,7 @@ export const JWK = z.object({
|
|
|
18
18
|
/** JWK "kty" (Key Type) Parameter.
|
|
19
19
|
* This attribute is required to discriminate the
|
|
20
20
|
* type of EC/RSA algorithm */
|
|
21
|
-
kty: z.
|
|
21
|
+
kty: z.enum(["RSA", "EC"]),
|
|
22
22
|
n: z.string().optional(),
|
|
23
23
|
p: z.string().optional(),
|
|
24
24
|
q: z.string().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["removePadding","thumbprint","z","JWK","object","alg","string","optional","crv","d","dp","dq","e","ext","boolean","k","key_ops","array","kid","kty","
|
|
1
|
+
{"version":3,"names":["removePadding","thumbprint","z","JWK","object","alg","string","optional","crv","d","dp","dq","e","ext","boolean","k","key_ops","array","kid","kty","enum","n","p","q","qi","use","x","y","x5c","x5t","x5u","fixBase64EncodingOnKey","key","pk","JWKS","keys","isSameThumbprint","jwkA","jwkB","thumbprintJwkA","thumbprintJwkB","Promise","all"],"sourceRoot":"../../../src","sources":["utils/jwk.ts"],"mappings":"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"}
|
package/lib/module/utils/zod.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
const literalSchema = z.union([z.string(), z.number(), z.boolean(), z.null()]);
|
|
7
|
-
const jsonSchema = z.lazy(() => z.union([literalSchema, z.array(jsonSchema), z.record(jsonSchema)]));
|
|
7
|
+
const jsonSchema = z.lazy(() => z.union([literalSchema, z.array(jsonSchema), z.record(z.string(), jsonSchema)]));
|
|
8
8
|
export const json = () => jsonSchema;
|
|
9
9
|
export const stringToJSONSchema = z.string().transform((str, ctx) => {
|
|
10
10
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["z","literalSchema","union","string","number","boolean","null","jsonSchema","lazy","array","record","json","stringToJSONSchema","transform","str","ctx","JSON","parse","e","addIssue","code","message","NEVER","UnixTime","min","max"],"sourceRoot":"../../../src","sources":["utils/zod.ts"],"mappings":"AAAA;AACA;AACA;;AAEA,SAASA,CAAC,QAAQ,KAAK;AAEvB,MAAMC,aAAa,GAAGD,CAAC,CAACE,KAAK,CAAC,CAACF,CAAC,CAACG,MAAM,CAAC,CAAC,EAAEH,CAAC,CAACI,MAAM,CAAC,CAAC,EAAEJ,CAAC,CAACK,OAAO,CAAC,CAAC,EAAEL,CAAC,CAACM,IAAI,CAAC,CAAC,CAAC,CAAC;AAM9E,MAAMC,UAA2B,GAAGP,CAAC,CAACQ,IAAI,CAAC,MACzCR,CAAC,CAACE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"names":["z","literalSchema","union","string","number","boolean","null","jsonSchema","lazy","array","record","json","stringToJSONSchema","transform","str","ctx","JSON","parse","e","addIssue","code","message","NEVER","UnixTime","min","max"],"sourceRoot":"../../../src","sources":["utils/zod.ts"],"mappings":"AAAA;AACA;AACA;;AAEA,SAASA,CAAC,QAAQ,KAAK;AAEvB,MAAMC,aAAa,GAAGD,CAAC,CAACE,KAAK,CAAC,CAACF,CAAC,CAACG,MAAM,CAAC,CAAC,EAAEH,CAAC,CAACI,MAAM,CAAC,CAAC,EAAEJ,CAAC,CAACK,OAAO,CAAC,CAAC,EAAEL,CAAC,CAACM,IAAI,CAAC,CAAC,CAAC,CAAC;AAM9E,MAAMC,UAA2B,GAAGP,CAAC,CAACQ,IAAI,CAAC,MACzCR,CAAC,CAACE,KAAK,CAAC,CACND,aAAa,EACbD,CAAC,CAACS,KAAK,CAACF,UAAU,CAAC,EACnBP,CAAC,CAACU,MAAM,CAACV,CAAC,CAACG,MAAM,CAAC,CAAC,EAAEI,UAAU,CAAC,CACjC,CACH,CAAC;AAED,OAAO,MAAMI,IAAI,GAAGA,CAAA,KAAMJ,UAAU;AAEpC,OAAO,MAAMK,kBAAkB,GAAGZ,CAAC,CAChCG,MAAM,CAAC,CAAC,CACRU,SAAS,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAuC;EACzD,IAAI;IACF,OAAOC,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC;EACxB,CAAC,CAAC,OAAOI,CAAC,EAAE;IACVH,GAAG,CAACI,QAAQ,CAAC;MAAEC,IAAI,EAAE,QAAQ;MAAEC,OAAO,EAAE;IAAe,CAAC,CAAC;IACzD,OAAOrB,CAAC,CAACsB,KAAK;EAChB;AACF,CAAC,CAAC;AAEJ,OAAO,MAAMC,QAAQ,GAAGvB,CAAC,CAACI,MAAM,CAAC,CAAC,CAACoB,GAAG,CAAC,CAAC,CAAC,CAACC,GAAG,CAAC,aAAa,CAAC"}
|
|
@@ -30,16 +30,19 @@ const { WALLET_PROVIDER_BASE_URL } = env; // Let's assume env is an object conta
|
|
|
30
30
|
* WARNING: The integrity context must be the same used when creating the Wallet Instance with the same keytag.
|
|
31
31
|
*/
|
|
32
32
|
const wallet = new IoWallet({ version: "1.0.0" });
|
|
33
|
-
const issuedAttestation = await wallet.WalletInstanceAttestation.getAttestation(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
33
|
+
const issuedAttestation = await wallet.WalletInstanceAttestation.getAttestation(
|
|
34
|
+
{
|
|
35
|
+
walletProviderBaseUrl: WALLET_PROVIDER_BASE_URL,
|
|
36
|
+
walletSolutionId: "exampleId",
|
|
37
|
+
walletSolutionVersion: "1.2.3",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
wiaCryptoContext,
|
|
41
|
+
integrityContext,
|
|
42
|
+
appFetch,
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
// [{ "format": "jwt", "attestation": "ey..." }, { "format": "dc+sd-jwt", "attestation": "ey..." }]
|
|
43
46
|
return issuedAttestation;
|
|
44
47
|
```
|
|
45
48
|
|
|
@@ -3,11 +3,11 @@ import { UnixTime } from "../../utils/zod";
|
|
|
3
3
|
import { JWK } from "../../utils/jwk";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Common Wallet Attestation shape. This object is
|
|
6
|
+
* Common Wallet Instance Attestation shape. This object is
|
|
7
7
|
* an abstraction over the version-specific JWTs.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
export const
|
|
10
|
+
export const DecodedWalletInstanceAttestation = z.object({
|
|
11
11
|
iss: z.string(),
|
|
12
12
|
iat: UnixTime,
|
|
13
13
|
exp: UnixTime,
|
|
@@ -15,8 +15,13 @@ export const DecodedAttestationJwt = z.object({
|
|
|
15
15
|
jwk: JWK
|
|
16
16
|
}),
|
|
17
17
|
sub: z.string(),
|
|
18
|
+
wallet_provider_name: z.string().optional(),
|
|
19
|
+
wallet_solution_id: z.string().optional(),
|
|
20
|
+
/** @deprecated */
|
|
18
21
|
wallet_link: z.string().optional(),
|
|
22
|
+
/** @deprecated */
|
|
19
23
|
wallet_name: z.string().optional(),
|
|
24
|
+
/** @deprecated */
|
|
20
25
|
aal: z.string().optional()
|
|
21
26
|
});
|
|
22
27
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["z","UnixTime","JWK","
|
|
1
|
+
{"version":3,"names":["z","UnixTime","JWK","DecodedWalletInstanceAttestation","object","iss","string","iat","exp","cnf","jwk","sub","wallet_provider_name","optional","wallet_solution_id","wallet_link","wallet_name","aal"],"sourceRoot":"../../../../src","sources":["wallet-instance-attestation/api/types.ts"],"mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,KAAK;AACxB,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,GAAG,QAAQ,iBAAiB;;AAErC;AACA;AACA;AACA;;AAIA,OAAO,MAAMC,gCAAgC,GAAGH,CAAC,CAACI,MAAM,CAAC;EACvDC,GAAG,EAAEL,CAAC,CAACM,MAAM,CAAC,CAAC;EACfC,GAAG,EAAEN,QAAQ;EACbO,GAAG,EAAEP,QAAQ;EACbQ,GAAG,EAAET,CAAC,CAACI,MAAM,CAAC;IAAEM,GAAG,EAAER;EAAI,CAAC,CAAC;EAC3BS,GAAG,EAAEX,CAAC,CAACM,MAAM,CAAC,CAAC;EACfM,oBAAoB,EAAEZ,CAAC,CAACM,MAAM,CAAC,CAAC,CAACO,QAAQ,CAAC,CAAC;EAC3CC,kBAAkB,EAAEd,CAAC,CAACM,MAAM,CAAC,CAAC,CAACO,QAAQ,CAAC,CAAC;EACzC;EACAE,WAAW,EAAEf,CAAC,CAACM,MAAM,CAAC,CAAC,CAACO,QAAQ,CAAC,CAAC;EAClC;EACAG,WAAW,EAAEhB,CAAC,CAACM,MAAM,CAAC,CAAC,CAACO,QAAQ,CAAC,CAAC;EAClC;EACAI,GAAG,EAAEjB,CAAC,CAACM,MAAM,CAAC,CAAC,CAACO,QAAQ,CAAC;AAC3B,CAAC,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { withMapper, withMapperAsync } from "../../utils/mappers";
|
|
2
2
|
import { getAttestation } from "./issuing";
|
|
3
3
|
import { decode, verify } from "./utils";
|
|
4
|
-
import {
|
|
4
|
+
import { mapToDecodedWalletInstanceAttestation } from "./mappers";
|
|
5
5
|
export const WalletInstanceAttestation = {
|
|
6
6
|
getAttestation,
|
|
7
|
-
decode: withMapper(
|
|
8
|
-
verify: withMapperAsync(
|
|
7
|
+
decode: withMapper(mapToDecodedWalletInstanceAttestation, decode),
|
|
8
|
+
verify: withMapperAsync(mapToDecodedWalletInstanceAttestation, verify)
|
|
9
9
|
};
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["withMapper","withMapperAsync","getAttestation","decode","verify","
|
|
1
|
+
{"version":3,"names":["withMapper","withMapperAsync","getAttestation","decode","verify","mapToDecodedWalletInstanceAttestation","WalletInstanceAttestation"],"sourceRoot":"../../../../src","sources":["wallet-instance-attestation/v1.0.0/index.ts"],"mappings":"AACA,SAASA,UAAU,EAAEC,eAAe,QAAQ,qBAAqB;AACjE,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,MAAM,EAAEC,MAAM,QAAQ,SAAS;AACxC,SAASC,qCAAqC,QAAQ,WAAW;AAEjE,OAAO,MAAMC,yBAAuD,GAAG;EACrEJ,cAAc;EACdC,MAAM,EAAEH,UAAU,CAACK,qCAAqC,EAAEF,MAAM,CAAC;EACjEC,MAAM,EAAEH,eAAe,CAACI,qCAAqC,EAAED,MAAM;AACvE,CAAC"}
|
|
@@ -47,24 +47,23 @@ async function getAttestationRequest(challenge, wiaCryptoContext, integrityConte
|
|
|
47
47
|
typ: "wp-war+jwt"
|
|
48
48
|
}).setIssuedAt().setExpirationTime("1h").sign();
|
|
49
49
|
}
|
|
50
|
-
export const getAttestation = async _ref => {
|
|
50
|
+
export const getAttestation = async (requestParams, _ref) => {
|
|
51
51
|
let {
|
|
52
52
|
wiaCryptoContext,
|
|
53
53
|
integrityContext,
|
|
54
|
-
walletProviderBaseUrl,
|
|
55
54
|
appFetch = fetch
|
|
56
55
|
} = _ref;
|
|
57
56
|
const api = getWalletProviderClient({
|
|
58
|
-
walletProviderBaseUrl,
|
|
57
|
+
walletProviderBaseUrl: requestParams.walletProviderBaseUrl,
|
|
59
58
|
appFetch
|
|
60
59
|
});
|
|
61
60
|
|
|
62
61
|
// 1. Get nonce from backend
|
|
63
62
|
const challenge = await api.get("/nonce").then(response => response.nonce);
|
|
64
|
-
Logger.log(LogLevel.DEBUG, `Challenge obtained from ${walletProviderBaseUrl}: ${challenge} `);
|
|
63
|
+
Logger.log(LogLevel.DEBUG, `Challenge obtained from ${requestParams.walletProviderBaseUrl}: ${challenge} `);
|
|
65
64
|
|
|
66
65
|
// 2. Get a signed attestation request
|
|
67
|
-
const signedAttestationRequest = await getAttestationRequest(challenge, wiaCryptoContext, integrityContext, walletProviderBaseUrl);
|
|
66
|
+
const signedAttestationRequest = await getAttestationRequest(challenge, wiaCryptoContext, integrityContext, requestParams.walletProviderBaseUrl);
|
|
68
67
|
Logger.log(LogLevel.DEBUG, `Signed attestation request: ${signedAttestationRequest}`);
|
|
69
68
|
|
|
70
69
|
// 3. Request WIA in multiple formats
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SignJWT","thumbprint","fixBase64EncodingOnKey","JWK","getWalletProviderClient","LogLevel","Logger","ResponseErrorBuilder","WalletProviderResponseError","WalletProviderResponseErrorCodes","WalletAttestationResponse","mapToWalletAttestations","getAttestationRequest","challenge","wiaCryptoContext","integrityContext","walletProviderBaseUrl","jwk","getPublicKey","parsedJwk","parse","keyThumbprint","publicKey","kid","clientData","jwk_thumbprint","hardwareKeyTag","getHardwareKeyTag","signature","authenticatorData","getHardwareSignatureWithAuthData","JSON","stringify","setPayload","iss","aud","nonce","hardware_signature","integrity_assertion","hardware_key_tag","cnf","setProtectedHeader","typ","setIssuedAt","setExpirationTime","sign","getAttestation","_ref","appFetch","fetch","api","get","then","response","log","DEBUG","signedAttestationRequest","post","body","assertion","catch","handleAttestationCreationError","attestation","wallet_attestations","format","wallet_attestation","e","ERROR","handle","code","WalletInstanceRevoked","message","WalletInstanceNotFound","WalletInstanceIntegrityFailed","WalletInstanceAttestationIssuingFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["wallet-instance-attestation/v1.0.0/issuing.ts"],"mappings":"AAAA,SAEEA,OAAO,EACPC,UAAU,QACL,6BAA6B;AACpC,SAASC,sBAAsB,EAAEC,GAAG,QAAQ,iBAAiB;AAC7D,SAASC,uBAAuB,QAAQ,cAAc;AAEtD,SAASC,QAAQ,EAAEC,MAAM,QAAQ,qBAAqB;AACtD,SACEC,oBAAoB,EACpBC,2BAA2B,EAC3BC,gCAAgC,QAC3B,oBAAoB;AAC3B,SAASC,yBAAyB,QAAQ,SAAS;AAEnD,SAASC,uBAAuB,QAAQ,WAAW;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeC,qBAAqBA,CAClCC,SAAiB,EACjBC,gBAA+B,EAC/BC,gBAAkC,EAClCC,qBAA6B,EACZ;EACjB,MAAMC,GAAG,GAAG,MAAMH,gBAAgB,CAACI,YAAY,CAAC,CAAC;EACjD,MAAMC,SAAS,GAAGhB,GAAG,CAACiB,KAAK,CAACH,GAAG,CAAC;EAChC,MAAMI,aAAa,GAAG,MAAMpB,UAAU,CAACkB,SAAS,CAAC;EACjD,MAAMG,SAAS,GAAG;IAAE,GAAGH,SAAS;IAAEI,GAAG,EAAEF;EAAc,CAAC;EAEtD,MAAMG,UAAU,GAAG;IACjBX,SAAS;IACTY,cAAc,EAAEJ;EAClB,CAAC;EAED,MAAMK,cAAc,GAAGX,gBAAgB,CAACY,iBAAiB,CAAC,CAAC;EAC3D,MAAM;IAAEC,SAAS;IAAEC;EAAkB,CAAC,GACpC,MAAMd,gBAAgB,CAACe,gCAAgC,CACrDC,IAAI,CAACC,SAAS,CAACR,UAAU,CAC3B,CAAC;EAEH,OAAO,IAAIxB,OAAO,CAACc,gBAAgB,CAAC,CACjCmB,UAAU,CAAC;IACVC,GAAG,EAAEb,aAAa;IAClBc,GAAG,EAAEnB,qBAAqB;IAC1BoB,KAAK,EAAEvB,SAAS;IAChBwB,kBAAkB,EAAET,SAAS;IAC7BU,mBAAmB,EAAET,iBAAiB;IACtCU,gBAAgB,EAAEb,cAAc;IAChCc,GAAG,EAAE;MACHvB,GAAG,EAAEf,sBAAsB,CAACoB,SAAS;IACvC;EACF,CAAC,CAAC,CACDmB,kBAAkB,CAAC;IAClBlB,GAAG,EAAED,SAAS,CAACC,GAAG;IAClBmB,GAAG,EAAE;EACP,CAAC,CAAC,CACDC,WAAW,CAAC,CAAC,CACbC,iBAAiB,CAAC,IAAI,CAAC,CACvBC,IAAI,CAAC,CAAC;AACX;AAEA,OAAO,MAAMC,cAA8D,GACzE,
|
|
1
|
+
{"version":3,"names":["SignJWT","thumbprint","fixBase64EncodingOnKey","JWK","getWalletProviderClient","LogLevel","Logger","ResponseErrorBuilder","WalletProviderResponseError","WalletProviderResponseErrorCodes","WalletAttestationResponse","mapToWalletAttestations","getAttestationRequest","challenge","wiaCryptoContext","integrityContext","walletProviderBaseUrl","jwk","getPublicKey","parsedJwk","parse","keyThumbprint","publicKey","kid","clientData","jwk_thumbprint","hardwareKeyTag","getHardwareKeyTag","signature","authenticatorData","getHardwareSignatureWithAuthData","JSON","stringify","setPayload","iss","aud","nonce","hardware_signature","integrity_assertion","hardware_key_tag","cnf","setProtectedHeader","typ","setIssuedAt","setExpirationTime","sign","getAttestation","requestParams","_ref","appFetch","fetch","api","get","then","response","log","DEBUG","signedAttestationRequest","post","body","assertion","catch","handleAttestationCreationError","attestation","wallet_attestations","format","wallet_attestation","e","ERROR","handle","code","WalletInstanceRevoked","message","WalletInstanceNotFound","WalletInstanceIntegrityFailed","WalletInstanceAttestationIssuingFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["wallet-instance-attestation/v1.0.0/issuing.ts"],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { createMapper } from "../../utils/mappers";
|
|
2
|
-
import {
|
|
3
|
-
export const
|
|
4
|
-
outputSchema:
|
|
2
|
+
import { DecodedWalletInstanceAttestation } from "../api/types";
|
|
3
|
+
export const mapToDecodedWalletInstanceAttestation = createMapper(x => x.payload, {
|
|
4
|
+
outputSchema: DecodedWalletInstanceAttestation
|
|
5
5
|
});
|
|
6
6
|
export const mapToWalletAttestations = createMapper(x => x.wallet_attestations.map(wa => ({
|
|
7
|
-
type: "wallet_instance_attestation",
|
|
8
7
|
format: wa.format,
|
|
9
8
|
attestation: wa.wallet_attestation
|
|
10
9
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createMapper","
|
|
1
|
+
{"version":3,"names":["createMapper","DecodedWalletInstanceAttestation","mapToDecodedWalletInstanceAttestation","x","payload","outputSchema","mapToWalletAttestations","wallet_attestations","map","wa","format","attestation","wallet_attestation"],"sourceRoot":"../../../../src","sources":["wallet-instance-attestation/v1.0.0/mappers.ts"],"mappings":"AAAA,SAASA,YAAY,QAAQ,qBAAqB;AAClD,SACEC,gCAAgC,QAE3B,cAAc;AAMrB,OAAO,MAAMC,qCAAqC,GAAGF,YAAY,CAG9DG,CAAC,IAAKA,CAAC,CAACC,OAAO,EAAE;EAClBC,YAAY,EAAEJ;AAChB,CAAC,CAAC;AAEF,OAAO,MAAMK,uBAAuB,GAAGN,YAAY,CAGhDG,CAAC,IACFA,CAAC,CAACI,mBAAmB,CAACC,GAAG,CAAEC,EAAE,KAAM;EACjCC,MAAM,EAAED,EAAE,CAACC,MAAM;EACjBC,WAAW,EAAEF,EAAE,CAACG;AAClB,CAAC,CAAC,CACJ,CAAC"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { withMapper, withMapperAsync } from "../../utils/mappers";
|
|
2
2
|
import { getAttestation } from "./issuing";
|
|
3
|
+
import { decode, verify } from "./utils";
|
|
4
|
+
import { mapToDecodedWalletInstanceAttestation } from "./mappers";
|
|
3
5
|
export const WalletInstanceAttestation = {
|
|
4
6
|
getAttestation,
|
|
5
|
-
decode: ()
|
|
6
|
-
|
|
7
|
-
},
|
|
8
|
-
verify: () => {
|
|
9
|
-
throw new UnimplementedFeatureError("verify", "1.3.3");
|
|
10
|
-
}
|
|
7
|
+
decode: withMapper(mapToDecodedWalletInstanceAttestation, decode),
|
|
8
|
+
verify: withMapperAsync(mapToDecodedWalletInstanceAttestation, verify)
|
|
11
9
|
};
|
|
12
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["withMapper","withMapperAsync","getAttestation","decode","verify","mapToDecodedWalletInstanceAttestation","WalletInstanceAttestation"],"sourceRoot":"../../../../src","sources":["wallet-instance-attestation/v1.3.3/index.ts"],"mappings":"AAAA,SAASA,UAAU,EAAEC,eAAe,QAAQ,qBAAqB;AAEjE,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,MAAM,EAAEC,MAAM,QAAQ,SAAS;AACxC,SAASC,qCAAqC,QAAQ,WAAW;AAEjE,OAAO,MAAMC,yBAAuD,GAAG;EACrEJ,cAAc;EACdC,MAAM,EAAEH,UAAU,CAACK,qCAAqC,EAAEF,MAAM,CAAC;EACjEC,MAAM,EAAEH,eAAe,CAACI,qCAAqC,EAAED,MAAM;AACvE,CAAC"}
|
|
@@ -1,5 +1,75 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { Platform } from "react-native";
|
|
2
|
+
import { thumbprint, SignJWT } from "@pagopa/io-react-native-jwt";
|
|
3
|
+
import { LogLevel, Logger } from "../../utils/logging";
|
|
4
|
+
import { fixBase64EncodingOnKey, JWK } from "../../utils/jwk";
|
|
5
|
+
import { getWalletProviderClient } from "../../client";
|
|
6
|
+
import { WalletInstanceAttestationResponse } from "./types";
|
|
7
|
+
async function getAttestationRequest(_ref, wiaCryptoContext, integrityContext) {
|
|
8
|
+
let {
|
|
9
|
+
challenge,
|
|
10
|
+
walletSolutionId,
|
|
11
|
+
walletSolutionVersion
|
|
12
|
+
} = _ref;
|
|
13
|
+
const jwk = await wiaCryptoContext.getPublicKey();
|
|
14
|
+
const parsedJwk = JWK.parse(jwk);
|
|
15
|
+
const keyThumbprint = await thumbprint(parsedJwk);
|
|
16
|
+
const publicKey = {
|
|
17
|
+
...parsedJwk,
|
|
18
|
+
kid: keyThumbprint
|
|
19
|
+
};
|
|
20
|
+
const clientData = {
|
|
21
|
+
challenge,
|
|
22
|
+
jwk_thumbprint: keyThumbprint
|
|
23
|
+
};
|
|
24
|
+
const hardwareKeyTag = integrityContext.getHardwareKeyTag();
|
|
25
|
+
const {
|
|
26
|
+
signature,
|
|
27
|
+
authenticatorData
|
|
28
|
+
} = await integrityContext.getHardwareSignatureWithAuthData(JSON.stringify(clientData));
|
|
29
|
+
return new SignJWT(wiaCryptoContext).setPayload({
|
|
30
|
+
iss: hardwareKeyTag,
|
|
31
|
+
nonce: challenge,
|
|
32
|
+
platform: Platform.OS,
|
|
33
|
+
hardware_signature: signature,
|
|
34
|
+
integrity_assertion: authenticatorData,
|
|
35
|
+
hardware_key_tag: hardwareKeyTag,
|
|
36
|
+
wallet_solution_id: walletSolutionId,
|
|
37
|
+
wallet_solution_version: walletSolutionVersion,
|
|
38
|
+
cnf: {
|
|
39
|
+
jwk: fixBase64EncodingOnKey(publicKey)
|
|
40
|
+
}
|
|
41
|
+
}).setProtectedHeader({
|
|
42
|
+
kid: publicKey.kid,
|
|
43
|
+
typ: "wia-request+jwt"
|
|
44
|
+
}).setIssuedAt().setExpirationTime("1h").sign();
|
|
45
|
+
}
|
|
46
|
+
export const getAttestation = async (requestParams, _ref2) => {
|
|
47
|
+
let {
|
|
48
|
+
wiaCryptoContext,
|
|
49
|
+
integrityContext,
|
|
50
|
+
appFetch = fetch
|
|
51
|
+
} = _ref2;
|
|
52
|
+
const api = getWalletProviderClient({
|
|
53
|
+
walletProviderBaseUrl: requestParams.walletProviderBaseUrl,
|
|
54
|
+
appFetch
|
|
55
|
+
});
|
|
56
|
+
const challenge = await api.get("/nonce").then(response => response.nonce);
|
|
57
|
+
Logger.log(LogLevel.DEBUG, `Challenge obtained from ${requestParams.walletProviderBaseUrl}: ${challenge} `);
|
|
58
|
+
const signedAttestationRequest = await getAttestationRequest({
|
|
59
|
+
challenge,
|
|
60
|
+
...requestParams
|
|
61
|
+
}, wiaCryptoContext, integrityContext);
|
|
62
|
+
Logger.log(LogLevel.DEBUG, `Signed attestation request: ${signedAttestationRequest}`);
|
|
63
|
+
const response = await api.post("/wallet-instance-attestations", {
|
|
64
|
+
header: {
|
|
65
|
+
"Content-Type": "text/plain"
|
|
66
|
+
},
|
|
67
|
+
body: signedAttestationRequest
|
|
68
|
+
}).then(WalletInstanceAttestationResponse.parse);
|
|
69
|
+
Logger.log(LogLevel.DEBUG, `Obtained Wallet Instance Attestation in jwt format: ${response.wallet_instance_attestation}`);
|
|
70
|
+
return [{
|
|
71
|
+
format: "jwt",
|
|
72
|
+
attestation: response.wallet_instance_attestation
|
|
73
|
+
}];
|
|
4
74
|
};
|
|
5
75
|
//# sourceMappingURL=issuing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["Platform","thumbprint","SignJWT","LogLevel","Logger","fixBase64EncodingOnKey","JWK","getWalletProviderClient","WalletInstanceAttestationResponse","getAttestationRequest","_ref","wiaCryptoContext","integrityContext","challenge","walletSolutionId","walletSolutionVersion","jwk","getPublicKey","parsedJwk","parse","keyThumbprint","publicKey","kid","clientData","jwk_thumbprint","hardwareKeyTag","getHardwareKeyTag","signature","authenticatorData","getHardwareSignatureWithAuthData","JSON","stringify","setPayload","iss","nonce","platform","OS","hardware_signature","integrity_assertion","hardware_key_tag","wallet_solution_id","wallet_solution_version","cnf","setProtectedHeader","typ","setIssuedAt","setExpirationTime","sign","getAttestation","requestParams","_ref2","appFetch","fetch","api","walletProviderBaseUrl","get","then","response","log","DEBUG","signedAttestationRequest","post","header","body","wallet_instance_attestation","format","attestation"],"sourceRoot":"../../../../src","sources":["wallet-instance-attestation/v1.3.3/issuing.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createMapper } from "../../utils/mappers";
|
|
2
|
+
import { DecodedWalletInstanceAttestation } from "../api/types";
|
|
3
|
+
export const mapToDecodedWalletInstanceAttestation = createMapper(_ref => {
|
|
4
|
+
let {
|
|
5
|
+
payload
|
|
6
|
+
} = _ref;
|
|
7
|
+
const {
|
|
8
|
+
eudi_wallet_info,
|
|
9
|
+
...rest
|
|
10
|
+
} = payload;
|
|
11
|
+
return {
|
|
12
|
+
...rest,
|
|
13
|
+
wallet_provider_name: eudi_wallet_info.general_info.wallet_provider_name,
|
|
14
|
+
wallet_solution_id: eudi_wallet_info.general_info.wallet_solution_id
|
|
15
|
+
};
|
|
16
|
+
}, {
|
|
17
|
+
outputSchema: DecodedWalletInstanceAttestation
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=mappers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createMapper","DecodedWalletInstanceAttestation","mapToDecodedWalletInstanceAttestation","_ref","payload","eudi_wallet_info","rest","wallet_provider_name","general_info","wallet_solution_id","outputSchema"],"sourceRoot":"../../../../src","sources":["wallet-instance-attestation/v1.3.3/mappers.ts"],"mappings":"AAAA,SAASA,YAAY,QAAQ,qBAAqB;AAClD,SAASC,gCAAgC,QAAQ,cAAc;AAG/D,OAAO,MAAMC,qCAAqC,GAAGF,YAAY,CAI/DG,IAAA,IAAiB;EAAA,IAAhB;IAAEC;EAAQ,CAAC,GAAAD,IAAA;EACV,MAAM;IAAEE,gBAAgB;IAAE,GAAGC;EAAK,CAAC,GAAGF,OAAO;EAC7C,OAAO;IACL,GAAGE,IAAI;IACPC,oBAAoB,EAAEF,gBAAgB,CAACG,YAAY,CAACD,oBAAoB;IACxEE,kBAAkB,EAAEJ,gBAAgB,CAACG,YAAY,CAACC;EACpD,CAAC;AACH,CAAC,EACD;EAAEC,YAAY,EAAET;AAAiC,CACnD,CAAC"}
|
|
@@ -1,32 +1,21 @@
|
|
|
1
1
|
import * as z from "zod";
|
|
2
|
-
import { JWK } from "../../utils/jwk";
|
|
3
2
|
import { Jwt } from "../common/types";
|
|
4
|
-
const
|
|
5
|
-
status_list: z.object({
|
|
6
|
-
idx: z.number(),
|
|
7
|
-
uri: z.string()
|
|
8
|
-
})
|
|
9
|
-
});
|
|
10
|
-
export const WalletAppAttestationJwt = z.object({
|
|
3
|
+
export const WalletInstanceAttestationJwt = z.object({
|
|
11
4
|
header: z.intersection(Jwt.shape.header, z.object({
|
|
12
5
|
typ: z.literal("oauth-client-attestation+jwt")
|
|
13
6
|
})),
|
|
14
7
|
payload: z.intersection(Jwt.shape.payload, z.object({
|
|
15
8
|
sub: z.string(),
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
eudi_wallet_info: z.object({
|
|
10
|
+
general_info: z.object({
|
|
11
|
+
wallet_provider_name: z.string(),
|
|
12
|
+
wallet_solution_id: z.string(),
|
|
13
|
+
wallet_solution_version: z.string()
|
|
14
|
+
})
|
|
15
|
+
})
|
|
19
16
|
}))
|
|
20
17
|
});
|
|
21
|
-
export const
|
|
22
|
-
|
|
23
|
-
typ: z.literal("key-attestation+jwt")
|
|
24
|
-
})),
|
|
25
|
-
payload: z.intersection(Jwt.shape.payload, z.object({
|
|
26
|
-
attested_keys: z.array(JWK),
|
|
27
|
-
user_authentication: z.array(z.string()),
|
|
28
|
-
key_storage: z.array(z.string()),
|
|
29
|
-
status: Status
|
|
30
|
-
}))
|
|
18
|
+
export const WalletInstanceAttestationResponse = z.object({
|
|
19
|
+
wallet_instance_attestation: z.string()
|
|
31
20
|
});
|
|
32
21
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["z","
|
|
1
|
+
{"version":3,"names":["z","Jwt","WalletInstanceAttestationJwt","object","header","intersection","shape","typ","literal","payload","sub","string","eudi_wallet_info","general_info","wallet_provider_name","wallet_solution_id","wallet_solution_version","WalletInstanceAttestationResponse","wallet_instance_attestation"],"sourceRoot":"../../../../src","sources":["wallet-instance-attestation/v1.3.3/types.ts"],"mappings":"AAAA,OAAO,KAAKA,CAAC,MAAM,KAAK;AACxB,SAASC,GAAG,QAAQ,iBAAiB;AAKrC,OAAO,MAAMC,4BAA4B,GAAGF,CAAC,CAACG,MAAM,CAAC;EACnDC,MAAM,EAAEJ,CAAC,CAACK,YAAY,CACpBJ,GAAG,CAACK,KAAK,CAACF,MAAM,EAChBJ,CAAC,CAACG,MAAM,CAAC;IACPI,GAAG,EAAEP,CAAC,CAACQ,OAAO,CAAC,8BAA8B;EAC/C,CAAC,CACH,CAAC;EACDC,OAAO,EAAET,CAAC,CAACK,YAAY,CACrBJ,GAAG,CAACK,KAAK,CAACG,OAAO,EACjBT,CAAC,CAACG,MAAM,CAAC;IACPO,GAAG,EAAEV,CAAC,CAACW,MAAM,CAAC,CAAC;IACfC,gBAAgB,EAAEZ,CAAC,CAACG,MAAM,CAAC;MACzBU,YAAY,EAAEb,CAAC,CAACG,MAAM,CAAC;QACrBW,oBAAoB,EAAEd,CAAC,CAACW,MAAM,CAAC,CAAC;QAChCI,kBAAkB,EAAEf,CAAC,CAACW,MAAM,CAAC,CAAC;QAC9BK,uBAAuB,EAAEhB,CAAC,CAACW,MAAM,CAAC;MACpC,CAAC;IACH,CAAC;EACH,CAAC,CACH;AACF,CAAC,CAAC;AAKF,OAAO,MAAMM,iCAAiC,GAAGjB,CAAC,CAACG,MAAM,CAAC;EACxDe,2BAA2B,EAAElB,CAAC,CAACW,MAAM,CAAC;AACxC,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { WalletInstanceAttestationJwt } from "./types";
|
|
2
|
+
import { decode as decodeJwt, verify as verifyJwt } from "@pagopa/io-react-native-jwt";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Decode a given JWT to get the parsed Wallet Instance Attestation object they define.
|
|
6
|
+
* It ensures provided data is in a valid shape.
|
|
7
|
+
*
|
|
8
|
+
* It DOES NOT verify token signature nor check disclosures are correctly referenced by the JWT.
|
|
9
|
+
* Use {@link verify} instead
|
|
10
|
+
*/
|
|
11
|
+
export function decode(token) {
|
|
12
|
+
const decodedJwt = decodeJwt(token);
|
|
13
|
+
return WalletInstanceAttestationJwt.parse({
|
|
14
|
+
header: decodedJwt.protectedHeader,
|
|
15
|
+
payload: decodedJwt.payload
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Verify a given JWT to get the parsed Wallet Instance Attestation object they define.
|
|
21
|
+
* Same as {@link decode} plus token signature verification
|
|
22
|
+
*/
|
|
23
|
+
export async function verify(token) {
|
|
24
|
+
const decoded = decode(token);
|
|
25
|
+
const pubKey = decoded.payload.cnf.jwk;
|
|
26
|
+
await verifyJwt(token, pubKey);
|
|
27
|
+
return decoded;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["WalletInstanceAttestationJwt","decode","decodeJwt","verify","verifyJwt","token","decodedJwt","parse","header","protectedHeader","payload","decoded","pubKey","cnf","jwk"],"sourceRoot":"../../../../src","sources":["wallet-instance-attestation/v1.3.3/utils.ts"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,SAAS;AACtD,SACEC,MAAM,IAAIC,SAAS,EACnBC,MAAM,IAAIC,SAAS,QACd,6BAA6B;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASH,MAAMA,CAACI,KAAa,EAAgC;EAClE,MAAMC,UAAU,GAAGJ,SAAS,CAACG,KAAK,CAAC;EACnC,OAAOL,4BAA4B,CAACO,KAAK,CAAC;IACxCC,MAAM,EAAEF,UAAU,CAACG,eAAe;IAClCC,OAAO,EAAEJ,UAAU,CAACI;EACtB,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeP,MAAMA,CAC1BE,KAAa,EAC0B;EACvC,MAAMM,OAAO,GAAGV,MAAM,CAACI,KAAK,CAAC;EAC7B,MAAMO,MAAM,GAAGD,OAAO,CAACD,OAAO,CAACG,GAAG,CAACC,GAAG;EAEtC,MAAMV,SAAS,CAACC,KAAK,EAAEO,MAAM,CAAC;EAE9B,OAAOD,OAAO;AAChB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Wallet Unit Attestation
|
|
2
|
+
|
|
3
|
+
This flow is used to obtain a [**Wallet Unit Attestation**](https://italia.github.io/eid-wallet-it-docs/releases/1.3.3/en/wallet-solution-requirements.html#wallet-unit-attestation-requirements). The WUA is bound to one or more cryptographic keys, that must be provided by the consumer application:
|
|
4
|
+
- `keyAttestationCryptoContext` one or more objects that extend the `CryptoContext` with a function to generate a WSCD-stored key with an optional key attestation (Android only); these are the keys that will be attested in the WUA.
|
|
5
|
+
- `integrityContext` object that is used to verify the integrity of the device where the app is running. The key tag must be the same used when creating the Wallet Instance.
|
|
6
|
+
|
|
7
|
+
#### Note
|
|
8
|
+
Before invoking `WalletUnitAttestation`'s functions, it is necessary to check whether the feature is supported by the current IoWallet instance.
|
|
9
|
+
```ts
|
|
10
|
+
const wallet = new IoWallet({ version: "1.3.3" });
|
|
11
|
+
|
|
12
|
+
if (wallet.WalletUnitAttestation.isSupported) {
|
|
13
|
+
// Get the WUA
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Example usage
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
import {
|
|
21
|
+
IoWallet,
|
|
22
|
+
createCryptoContextFor,
|
|
23
|
+
KeyAttestationCryptoContext
|
|
24
|
+
} from "@pagopa/io-react-native-wallet";
|
|
25
|
+
|
|
26
|
+
// Retrieve the integrity key tag from the store and create its context
|
|
27
|
+
const integrityKeyTag = "example"; // Let's assume this is the same key used when creating the Wallet Instance
|
|
28
|
+
const integrityContext = getIntegrityContext(integrityKeyTag);
|
|
29
|
+
|
|
30
|
+
// Get env URLs
|
|
31
|
+
const { WALLET_PROVIDER_BASE_URL } = env; // Let's assume env is an object containing the environment variables
|
|
32
|
+
|
|
33
|
+
// The list of crypto contexts for each key to attest.
|
|
34
|
+
const keysToAttest: KeyAttestationCryptoContext[] = [
|
|
35
|
+
{
|
|
36
|
+
...createCryptoContextFor("example-keytag"),
|
|
37
|
+
generateKeyWithAttestation(challenge: string) {
|
|
38
|
+
// Generate a key stored in a trustworthy WSCD.
|
|
39
|
+
// On Android this function must return a key attestation.
|
|
40
|
+
return {
|
|
41
|
+
success: true,
|
|
42
|
+
attestation: "android-key-attestation-string",
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Obtain a new Wallet Unit Attestation.
|
|
50
|
+
* WARNING: The integrity context must be the same used when creating the Wallet Instance with the same keytag.
|
|
51
|
+
*/
|
|
52
|
+
const wallet = new IoWallet({ version: "1.3.3" });
|
|
53
|
+
const issuedAttestation = await wallet.WalletUnitAttestation.getAttestation(
|
|
54
|
+
{
|
|
55
|
+
walletProviderBaseUrl: WALLET_PROVIDER_BASE_URL,
|
|
56
|
+
walletSolutionId: "exampleId",
|
|
57
|
+
walletSolutionVersion: "1.2.3",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
keysToAttest,
|
|
61
|
+
integrityContext,
|
|
62
|
+
appFetch,
|
|
63
|
+
}
|
|
64
|
+
);
|
|
65
|
+
```
|
|
66
|
+
## Mapped results
|
|
67
|
+
|
|
68
|
+
The following errors are mapped to a `WalletProviderResponseError` with specific codes.
|
|
69
|
+
|
|
70
|
+
|HTTP Status|Error Code|Description|
|
|
71
|
+
|-----------|----------|-----------|
|
|
72
|
+
|`*`|`ERR_IO_WALLET_PROVIDER_GENERIC_ERROR`|This is a generic error code to map unexpected errors that occurred when interacting with the Wallet Provider.|
|
|
73
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["wallet-unit-attestation/api/index.ts"],"mappings":""}
|