@pagopa/io-react-native-wallet 1.7.0 → 1.8.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/client/generated/wallet-provider.js +37 -11
- package/lib/commonjs/client/generated/wallet-provider.js.map +1 -1
- package/lib/commonjs/credential/issuance/02-get-issuer-config.js +83 -3
- package/lib/commonjs/credential/issuance/02-get-issuer-config.js.map +1 -1
- package/lib/commonjs/credential/issuance/03-start-user-authorization.js +5 -7
- package/lib/commonjs/credential/issuance/03-start-user-authorization.js.map +1 -1
- package/lib/commonjs/credential/issuance/06-obtain-credential.js +27 -10
- package/lib/commonjs/credential/issuance/06-obtain-credential.js.map +1 -1
- package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js +50 -46
- package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/commonjs/credential/issuance/README.md +1 -1
- package/lib/commonjs/credential/issuance/const.js +1 -1
- package/lib/commonjs/credential/issuance/const.js.map +1 -1
- package/lib/commonjs/credential/issuance/index.js +6 -0
- package/lib/commonjs/credential/issuance/index.js.map +1 -1
- package/lib/commonjs/credential/issuance/types.js +19 -10
- package/lib/commonjs/credential/issuance/types.js.map +1 -1
- package/lib/commonjs/credential/presentation/07-evaluate-dcql-query.js +10 -3
- package/lib/commonjs/credential/presentation/07-evaluate-dcql-query.js.map +1 -1
- package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js +11 -4
- package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js.map +1 -1
- package/lib/commonjs/credential/presentation/08-send-authorization-response.js +3 -3
- package/lib/commonjs/credential/presentation/08-send-authorization-response.js.map +1 -1
- package/lib/commonjs/credential/presentation/types.js.map +1 -1
- package/lib/commonjs/entity/openid-connect/issuer/types.js +2 -2
- package/lib/commonjs/entity/openid-connect/issuer/types.js.map +1 -1
- package/lib/commonjs/entity/trust/types.js +19 -30
- package/lib/commonjs/entity/trust/types.js.map +1 -1
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/mdoc/index.js +4 -4
- package/lib/commonjs/mdoc/index.js.map +1 -1
- package/lib/commonjs/sd-jwt/index.js +2 -2
- package/lib/commonjs/sd-jwt/index.js.map +1 -1
- package/lib/commonjs/sd-jwt/types.js +1 -1
- package/lib/commonjs/sd-jwt/types.js.map +1 -1
- package/lib/commonjs/utils/credential/issuance/07-verify-and-parse-credentials-utils.js +3 -2
- package/lib/commonjs/utils/credential/issuance/07-verify-and-parse-credentials-utils.js.map +1 -1
- package/lib/commonjs/utils/pop.js +1 -1
- package/lib/commonjs/utils/pop.js.map +1 -1
- package/lib/commonjs/wallet-instance-attestation/issuing.js +11 -7
- package/lib/commonjs/wallet-instance-attestation/issuing.js.map +1 -1
- package/lib/commonjs/wallet-instance-attestation/types.js +14 -19
- package/lib/commonjs/wallet-instance-attestation/types.js.map +1 -1
- package/lib/module/client/generated/wallet-provider.js +29 -7
- package/lib/module/client/generated/wallet-provider.js.map +1 -1
- package/lib/module/credential/issuance/02-get-issuer-config.js +80 -1
- package/lib/module/credential/issuance/02-get-issuer-config.js.map +1 -1
- package/lib/module/credential/issuance/03-start-user-authorization.js +5 -7
- package/lib/module/credential/issuance/03-start-user-authorization.js.map +1 -1
- package/lib/module/credential/issuance/06-obtain-credential.js +28 -11
- package/lib/module/credential/issuance/06-obtain-credential.js.map +1 -1
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js +50 -46
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/module/credential/issuance/README.md +1 -1
- package/lib/module/credential/issuance/const.js +1 -1
- package/lib/module/credential/issuance/const.js.map +1 -1
- package/lib/module/credential/issuance/index.js +2 -2
- package/lib/module/credential/issuance/index.js.map +1 -1
- package/lib/module/credential/issuance/types.js +15 -8
- package/lib/module/credential/issuance/types.js.map +1 -1
- package/lib/module/credential/presentation/07-evaluate-dcql-query.js +10 -3
- package/lib/module/credential/presentation/07-evaluate-dcql-query.js.map +1 -1
- package/lib/module/credential/presentation/07-evaluate-input-descriptor.js +11 -4
- package/lib/module/credential/presentation/07-evaluate-input-descriptor.js.map +1 -1
- package/lib/module/credential/presentation/08-send-authorization-response.js +3 -3
- package/lib/module/credential/presentation/08-send-authorization-response.js.map +1 -1
- package/lib/module/credential/presentation/types.js.map +1 -1
- package/lib/module/entity/openid-connect/issuer/types.js +2 -2
- package/lib/module/entity/openid-connect/issuer/types.js.map +1 -1
- package/lib/module/entity/trust/types.js +19 -30
- package/lib/module/entity/trust/types.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/mdoc/index.js +4 -4
- package/lib/module/mdoc/index.js.map +1 -1
- package/lib/module/sd-jwt/index.js +2 -2
- package/lib/module/sd-jwt/index.js.map +1 -1
- package/lib/module/sd-jwt/types.js +1 -1
- package/lib/module/sd-jwt/types.js.map +1 -1
- package/lib/module/utils/credential/issuance/07-verify-and-parse-credentials-utils.js +3 -2
- package/lib/module/utils/credential/issuance/07-verify-and-parse-credentials-utils.js.map +1 -1
- package/lib/module/utils/pop.js +1 -1
- package/lib/module/utils/pop.js.map +1 -1
- package/lib/module/wallet-instance-attestation/issuing.js +13 -9
- package/lib/module/wallet-instance-attestation/issuing.js.map +1 -1
- package/lib/module/wallet-instance-attestation/types.js +12 -17
- package/lib/module/wallet-instance-attestation/types.js.map +1 -1
- package/lib/typescript/client/generated/wallet-provider.d.ts +146 -17
- package/lib/typescript/client/generated/wallet-provider.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/02-get-issuer-config.d.ts +15 -0
- package/lib/typescript/credential/issuance/02-get-issuer-config.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/03-start-user-authorization.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/06-obtain-credential.d.ts +7 -2
- package/lib/typescript/credential/issuance/06-obtain-credential.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/const.d.ts +1 -1
- package/lib/typescript/credential/issuance/const.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/index.d.ts +2 -2
- package/lib/typescript/credential/issuance/index.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/types.d.ts +52 -21
- package/lib/typescript/credential/issuance/types.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/07-evaluate-dcql-query.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/07-evaluate-input-descriptor.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts +1 -1
- package/lib/typescript/credential/presentation/types.d.ts +4 -2
- package/lib/typescript/credential/presentation/types.d.ts.map +1 -1
- package/lib/typescript/entity/openid-connect/issuer/types.d.ts +17 -17
- package/lib/typescript/entity/openid-connect/issuer/types.d.ts.map +1 -1
- package/lib/typescript/entity/trust/index.d.ts +150 -140
- package/lib/typescript/entity/trust/index.d.ts.map +1 -1
- package/lib/typescript/entity/trust/types.d.ts +540 -344
- package/lib/typescript/entity/trust/types.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/pid/sd-jwt/types.d.ts +2 -2
- package/lib/typescript/sd-jwt/index.d.ts +12 -12
- package/lib/typescript/sd-jwt/types.d.ts +14 -14
- package/lib/typescript/utils/credential/issuance/07-verify-and-parse-credentials-utils.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/issuing.d.ts.map +1 -1
- package/lib/typescript/wallet-instance-attestation/types.d.ts +50 -102
- package/lib/typescript/wallet-instance-attestation/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/client/generated/wallet-provider.ts +39 -7
- package/src/credential/issuance/02-get-issuer-config.ts +117 -0
- package/src/credential/issuance/03-start-user-authorization.ts +7 -8
- package/src/credential/issuance/06-obtain-credential.ts +41 -14
- package/src/credential/issuance/07-verify-and-parse-credential.ts +7 -3
- package/src/credential/issuance/README.md +1 -1
- package/src/credential/issuance/const.ts +1 -0
- package/src/credential/issuance/index.ts +6 -1
- package/src/credential/issuance/types.ts +21 -8
- package/src/credential/presentation/07-evaluate-dcql-query.ts +15 -5
- package/src/credential/presentation/07-evaluate-input-descriptor.ts +21 -4
- package/src/credential/presentation/08-send-authorization-response.ts +3 -3
- package/src/credential/presentation/types.ts +3 -0
- package/src/entity/openid-connect/issuer/types.ts +2 -1
- package/src/entity/trust/types.ts +22 -20
- package/src/index.ts +2 -0
- package/src/mdoc/index.ts +4 -4
- package/src/sd-jwt/index.ts +2 -2
- package/src/sd-jwt/types.ts +1 -1
- package/src/utils/credential/issuance/07-verify-and-parse-credentials-utils.ts +3 -2
- package/src/utils/pop.ts +1 -1
- package/src/wallet-instance-attestation/issuing.ts +14 -8
- package/src/wallet-instance-attestation/types.ts +16 -22
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["buildMockMDOCTestScenario","claims","nameSpaces","cryptographic_suites_supported","cryptographic_binding_methods_supported","format","display","issuerSigned","map","namespace","elementIdentifier","elementValue","issuerAuth","unprotectedHeader","protectedHeader","payload","validityInfo","signed","Date","validFrom","validUntil","deviceKeyInfo","deviceKey","kty","crv","x","y","valueDigests","buildMockSDJWTTestScenario","disclosures","sdJwt","header","typ","alg","status","status_assertion","credential_hash_alg","
|
1
|
+
{"version":3,"names":["buildMockMDOCTestScenario","claims","nameSpaces","cryptographic_suites_supported","cryptographic_binding_methods_supported","format","display","issuerSigned","map","namespace","elementIdentifier","elementValue","issuerAuth","unprotectedHeader","protectedHeader","payload","validityInfo","signed","Date","validFrom","validUntil","deviceKeyInfo","deviceKey","kty","crv","x","y","valueDigests","buildMockSDJWTTestScenario","disclosures","dc_sd_jwt_PersonIdentificationData","vct","sdJwt","header","typ","alg","status","status_assertion","credential_hash_alg","iss","sub","expiry_date","issuing_authority","issuing_country","exp","_sd_alg","cnf","jwk","_sd"],"sourceRoot":"../../../../../src","sources":["utils/credential/issuance/07-verify-and-parse-credentials-utils.ts"],"mappings":";;;;;;;AAuEO,SAASA,yBAAyBA,CACvCC,MAAkB,EAClBC,UAA2B,EACa;EACxC,OAAO,CACL;IACE,uBAAuB,EAAE;MACvBC,8BAA8B,EAAE,EAAE;MAClCC,uCAAuC,EAAE,EAAE;MAC3CC,MAAM,EAAE,UAAU;MAClBC,OAAO,EAAE,EAAE;MACXL,MAAM,EAAE;QACN,mBAAmB,EAAEA;MACvB;IACF;EACF,CAAC,EACD,uBAAuB,EACvB;IACEM,YAAY,EAAE;MACZL,UAAU,EAAE;QACV,mBAAmB,EAAEA,UAAU,CAACM,GAAG,CAAEC,SAAS,KAAM;UAClDC,iBAAiB,EAAED,SAAS,CAAC,CAAC,CAAC;UAC/BE,YAAY,EAAEF,SAAS,CAAC,CAAC;QAC3B,CAAC,CAAC;MACJ,CAAC;MACDG,UAAU,EAAE;QACVC,iBAAiB,EAAE,EAAE;QACrBC,eAAe,EAAE,QAAQ;QACzBC,OAAO,EAAE;UACPC,YAAY,EAAE;YACZC,MAAM,EAAE,IAAIC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5BC,SAAS,EAAE,IAAID,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/BE,UAAU,EAAE,IAAIF,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;UACjC,CAAC;UACDG,aAAa,EAAE;YACbC,SAAS,EAAE;cACTC,GAAG,EAAE,IAAI;cACTC,GAAG,EAAE,OAAO;cACZC,CAAC,EAAE,QAAQ;cACXC,CAAC,EAAE;YACL;UACF,CAAC;UACDC,YAAY,EAAE,CAAC;QACjB;MACF;IACF;EACF,CAAC,EACD,KAAK,EACL,IAAI,CACL;AACH;AAEO,SAASC,0BAA0BA,CACxC3B,MAAmB,EACnB4B,WAAwC,EACC;EACzC,OAAO,CACL;IACEC,kCAAkC,EAAE;MAClC3B,8BAA8B,EAAE,EAAE;MAClCC,uCAAuC,EAAE,EAAE;MAC3CC,MAAM,EAAE,WAAW;MACnB0B,GAAG,EAAE,6BAA6B;MAClCzB,OAAO,EAAE,EAAE;MACXL;IACF;EACF,CAAC,EACD;IACE+B,KAAK,EAAE;MACLC,MAAM,EAAE;QACNC,GAAG,EAAE,WAAW;QAChBC,GAAG,EAAE;MACP,CAAC;MACDpB,OAAO,EAAE;QACPqB,MAAM,EAAE;UACNC,gBAAgB,EAAE;YAChBC,mBAAmB,EAAE;UACvB;QACF,CAAC;QACDP,GAAG,EAAE,6BAA6B;QAClCQ,GAAG,EAAE,QAAQ;QACbC,GAAG,EAAE,QAAQ;QACbC,WAAW,EAAE,QAAQ;QACrBC,iBAAiB,EAAE,QAAQ;QAC3BC,eAAe,EAAE,QAAQ;QACzBC,GAAG,EAAE,CAAC;QACNC,OAAO,EAAE,SAAS;QAClBC,GAAG,EAAE;UACHC,GAAG,EAAE;YACHxB,GAAG,EAAE;UACP;QACF,CAAC;QACDyB,GAAG,EAAE;MACP;IACF,CAAC;IACDnB;EACF,CAAC,EACD,KAAK,EACL,IAAI,CACL;AACH"}
|
@@ -19,7 +19,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
19
19
|
const createPopToken = async (payload, crypto) => {
|
20
20
|
const kid = await crypto.getPublicKey().then(_ => _.kid);
|
21
21
|
return new _ioReactNativeJwt.SignJWT(crypto).setPayload(payload).setProtectedHeader({
|
22
|
-
typ: "
|
22
|
+
typ: "oauth-client-attestation-pop+jwt",
|
23
23
|
kid
|
24
24
|
}).setIssuedAt().setExpirationTime("5min").sign();
|
25
25
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["z","_interopRequireWildcard","require","_ioReactNativeJwt","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","createPopToken","payload","crypto","kid","getPublicKey","then","_","SignJWT","setPayload","setProtectedHeader","typ","setIssuedAt","setExpirationTime","sign","exports","PoPPayload","object","jti","string","aud","iss"],"sourceRoot":"../../../src","sources":["utils/pop.ts"],"mappings":";;;;;;AAAA,IAAAA,CAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAD,OAAA;AAA0E,SAAAE,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMW,cAAc,GAAG,MAAAA,CAC5BC,OAAmB,EACnBC,MAAqB,KACD;EACpB,MAAMC,GAAG,GAAG,MAAMD,MAAM,CAACE,YAAY,CAAC,CAAC,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACH,GAAG,CAAC;EAC1D,OAAO,IAAII,yBAAO,CAACL,MAAM,CAAC,CACvBM,UAAU,CAACP,OAAO,CAAC,CACnBQ,kBAAkB,CAAC;IAClBC,GAAG,EAAE,
|
1
|
+
{"version":3,"names":["z","_interopRequireWildcard","require","_ioReactNativeJwt","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","createPopToken","payload","crypto","kid","getPublicKey","then","_","SignJWT","setPayload","setProtectedHeader","typ","setIssuedAt","setExpirationTime","sign","exports","PoPPayload","object","jti","string","aud","iss"],"sourceRoot":"../../../src","sources":["utils/pop.ts"],"mappings":";;;;;;AAAA,IAAAA,CAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAD,OAAA;AAA0E,SAAAE,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMW,cAAc,GAAG,MAAAA,CAC5BC,OAAmB,EACnBC,MAAqB,KACD;EACpB,MAAMC,GAAG,GAAG,MAAMD,MAAM,CAACE,YAAY,CAAC,CAAC,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACH,GAAG,CAAC;EAC1D,OAAO,IAAII,yBAAO,CAACL,MAAM,CAAC,CACvBM,UAAU,CAACP,OAAO,CAAC,CACnBQ,kBAAkB,CAAC;IAClBC,GAAG,EAAE,kCAAkC;IACvCP;EACF,CAAC,CAAC,CACDQ,WAAW,CAAC,CAAC,CACbC,iBAAiB,CAAC,MAAM,CAAC,CACzBC,IAAI,CAAC,CAAC;AACX,CAAC;AAACC,OAAA,CAAAd,cAAA,GAAAA,cAAA;AAGK,MAAMe,UAAU,GAAGzC,CAAC,CAAC0C,MAAM,CAAC;EACjCC,GAAG,EAAE3C,CAAC,CAAC4C,MAAM,CAAC,CAAC;EACfC,GAAG,EAAE7C,CAAC,CAAC4C,MAAM,CAAC,CAAC;EACfE,GAAG,EAAE9C,CAAC,CAAC4C,MAAM,CAAC;AAChB,CAAC,CAAC;AAACJ,OAAA,CAAAC,UAAA,GAAAA,UAAA"}
|
@@ -38,8 +38,8 @@ async function getAttestationRequest(challenge, wiaCryptoContext, integrityConte
|
|
38
38
|
} = await integrityContext.getHardwareSignatureWithAuthData(JSON.stringify(clientData));
|
39
39
|
return new _ioReactNativeJwt.SignJWT(wiaCryptoContext).setPayload({
|
40
40
|
iss: keyThumbprint,
|
41
|
-
|
42
|
-
challenge,
|
41
|
+
aud: walletProviderBaseUrl,
|
42
|
+
nonce: challenge,
|
43
43
|
hardware_signature: signature,
|
44
44
|
integrity_assertion: authenticatorData,
|
45
45
|
hardware_key_tag: hardwareKeyTag,
|
@@ -48,7 +48,7 @@ async function getAttestationRequest(challenge, wiaCryptoContext, integrityConte
|
|
48
48
|
}
|
49
49
|
}).setProtectedHeader({
|
50
50
|
kid: publicKey.kid,
|
51
|
-
typ: "war+jwt"
|
51
|
+
typ: "wp-war+jwt"
|
52
52
|
}).setIssuedAt().setExpirationTime("1h").sign();
|
53
53
|
}
|
54
54
|
|
@@ -80,13 +80,17 @@ const getAttestation = async _ref => {
|
|
80
80
|
const signedAttestationRequest = await getAttestationRequest(challenge, wiaCryptoContext, integrityContext, walletProviderBaseUrl);
|
81
81
|
|
82
82
|
// 3. Request WIA
|
83
|
-
const tokenResponse = await api.post("/
|
83
|
+
const tokenResponse = await api.post("/wallet-attestations", {
|
84
84
|
body: {
|
85
|
-
grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer",
|
86
85
|
assertion: signedAttestationRequest
|
87
86
|
}
|
88
|
-
}).then(
|
89
|
-
|
87
|
+
}).then(_types.WalletAttestationResponse.parse).catch(handleAttestationCreationError);
|
88
|
+
const wallet_attestation = tokenResponse.wallet_attestations;
|
89
|
+
if (wallet_attestation && wallet_attestation[0]) {
|
90
|
+
// Return first because eudiw be return only jwt
|
91
|
+
return wallet_attestation[0].wallet_attestation;
|
92
|
+
}
|
93
|
+
throw new _errors.IoWalletError("Wallet Attestation response is empty!");
|
90
94
|
};
|
91
95
|
exports.getAttestation = getAttestation;
|
92
96
|
const handleAttestationCreationError = e => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_ioReactNativeJwt","require","_jwk","_client","_errors","_types","getAttestationRequest","challenge","wiaCryptoContext","integrityContext","walletProviderBaseUrl","jwk","getPublicKey","parsedJwk","JWK","parse","keyThumbprint","thumbprint","publicKey","kid","clientData","jwk_thumbprint","hardwareKeyTag","getHardwareKeyTag","signature","authenticatorData","getHardwareSignatureWithAuthData","JSON","stringify","SignJWT","setPayload","iss","
|
1
|
+
{"version":3,"names":["_ioReactNativeJwt","require","_jwk","_client","_errors","_types","getAttestationRequest","challenge","wiaCryptoContext","integrityContext","walletProviderBaseUrl","jwk","getPublicKey","parsedJwk","JWK","parse","keyThumbprint","thumbprint","publicKey","kid","clientData","jwk_thumbprint","hardwareKeyTag","getHardwareKeyTag","signature","authenticatorData","getHardwareSignatureWithAuthData","JSON","stringify","SignJWT","setPayload","iss","aud","nonce","hardware_signature","integrity_assertion","hardware_key_tag","cnf","fixBase64EncodingOnKey","setProtectedHeader","typ","setIssuedAt","setExpirationTime","sign","getAttestation","_ref","appFetch","fetch","api","getWalletProviderClient","get","then","response","signedAttestationRequest","tokenResponse","post","body","assertion","WalletAttestationResponse","catch","handleAttestationCreationError","wallet_attestation","wallet_attestations","IoWalletError","exports","e","WalletProviderResponseError","ResponseErrorBuilder","handle","code","WalletProviderResponseErrorCodes","WalletInstanceRevoked","message","WalletInstanceNotFound","WalletInstanceIntegrityFailed","WalletInstanceAttestationIssuingFailed","buildFrom"],"sourceRoot":"../../../src","sources":["wallet-instance-attestation/issuing.ts"],"mappings":"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"}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.WalletInstanceAttestationRequestJwt = exports.WalletInstanceAttestationJwt = exports.
|
6
|
+
exports.WalletInstanceAttestationRequestJwt = exports.WalletInstanceAttestationJwt = exports.WalletAttestationResponse = void 0;
|
7
7
|
var _jwk = require("../utils/jwk");
|
8
8
|
var z = _interopRequireWildcard(require("zod"));
|
9
9
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
@@ -32,7 +32,7 @@ const Jwt = z.object({
|
|
32
32
|
});
|
33
33
|
const WalletInstanceAttestationRequestJwt = z.object({
|
34
34
|
header: z.intersection(Jwt.shape.header, z.object({
|
35
|
-
typ: z.literal("war+jwt")
|
35
|
+
typ: z.literal("wp-war+jwt")
|
36
36
|
})),
|
37
37
|
payload: z.intersection(Jwt.shape.payload, z.object({
|
38
38
|
aud: z.string(),
|
@@ -43,28 +43,23 @@ const WalletInstanceAttestationRequestJwt = z.object({
|
|
43
43
|
exports.WalletInstanceAttestationRequestJwt = WalletInstanceAttestationRequestJwt;
|
44
44
|
const WalletInstanceAttestationJwt = z.object({
|
45
45
|
header: z.intersection(Jwt.shape.header, z.object({
|
46
|
-
typ: z.literal("
|
46
|
+
typ: z.literal("oauth-client-attestation+jwt"),
|
47
|
+
trust_chain: z.array(z.string()).optional() // TODO: [SIW-2264] Make mandatory
|
47
48
|
})),
|
49
|
+
|
48
50
|
payload: z.intersection(Jwt.shape.payload, z.object({
|
49
51
|
sub: z.string(),
|
50
|
-
aal: z.string(),
|
51
|
-
|
52
|
-
|
53
|
-
vp_formats_supported: z.object({
|
54
|
-
"vc+sd-jwt": z.object({
|
55
|
-
"sd-jwt_alg_values": z.array(z.string())
|
56
|
-
}).optional(),
|
57
|
-
"vp+sd-jwt": z.object({
|
58
|
-
"sd-jwt_alg_values": z.array(z.string())
|
59
|
-
}).optional()
|
60
|
-
}),
|
61
|
-
request_object_signing_alg_values_supported: z.array(z.string()),
|
62
|
-
presentation_definition_uri_supported: z.boolean()
|
52
|
+
aal: z.string().optional(),
|
53
|
+
wallet_link: z.string().optional(),
|
54
|
+
wallet_name: z.string().optional()
|
63
55
|
}))
|
64
56
|
});
|
65
57
|
exports.WalletInstanceAttestationJwt = WalletInstanceAttestationJwt;
|
66
|
-
const
|
67
|
-
|
58
|
+
const WalletAttestationResponse = z.object({
|
59
|
+
wallet_attestations: z.array(z.object({
|
60
|
+
wallet_attestation: z.string(),
|
61
|
+
format: z.enum(["jwt", "dc+sd-jwt", "mso_mdoc"])
|
62
|
+
}))
|
68
63
|
});
|
69
|
-
exports.
|
64
|
+
exports.WalletAttestationResponse = WalletAttestationResponse;
|
70
65
|
//# sourceMappingURL=types.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_jwk","require","z","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UnixTime","number","min","max","Jwt","object","header","alg","string","kid","typ","x5c","array","optional","trust_chain","payload","iss","iat","exp","cnf","jwk","intersection","JWK","WalletInstanceAttestationRequestJwt","shape","literal","aud","jti","nonce","exports","WalletInstanceAttestationJwt","sub","aal","
|
1
|
+
{"version":3,"names":["_jwk","require","z","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UnixTime","number","min","max","Jwt","object","header","alg","string","kid","typ","x5c","array","optional","trust_chain","payload","iss","iat","exp","cnf","jwk","intersection","JWK","WalletInstanceAttestationRequestJwt","shape","literal","aud","jti","nonce","exports","WalletInstanceAttestationJwt","sub","aal","wallet_link","wallet_name","WalletAttestationResponse","wallet_attestations","wallet_attestation","format","enum"],"sourceRoot":"../../../src","sources":["wallet-instance-attestation/types.ts"],"mappings":"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"}
|
@@ -1,10 +1,20 @@
|
|
1
1
|
import z from "zod";
|
2
|
+
export const ApplicationInfo = z.object({
|
3
|
+
name: z.string(),
|
4
|
+
version: z.string()
|
5
|
+
});
|
2
6
|
export const NonceDetailView = z.object({
|
3
7
|
nonce: z.string()
|
4
8
|
});
|
5
9
|
export const WalletAttestationView = z.object({
|
6
10
|
wallet_attestation: z.string()
|
7
11
|
});
|
12
|
+
export const WalletAttestationsView = z.object({
|
13
|
+
wallet_attestations: z.array(z.object({
|
14
|
+
format: z.union([z.literal("jwt"), z.literal("dc+sd-jwt")]),
|
15
|
+
wallet_attestation: z.string()
|
16
|
+
}))
|
17
|
+
});
|
8
18
|
export const CreateWalletInstanceBody = z.object({
|
9
19
|
challenge: z.string(),
|
10
20
|
key_attestation: z.string(),
|
@@ -14,12 +24,8 @@ export const CreateWalletAttestationBody = z.object({
|
|
14
24
|
grant_type: z.literal("urn:ietf:params:oauth:grant-type:jwt-bearer"),
|
15
25
|
assertion: z.string()
|
16
26
|
});
|
17
|
-
export const
|
18
|
-
|
19
|
-
title: z.string().optional(),
|
20
|
-
status: z.number().optional(),
|
21
|
-
detail: z.string().optional(),
|
22
|
-
instance: z.string().optional()
|
27
|
+
export const CreateWalletAttestationV2Body = z.object({
|
28
|
+
assertion: z.string()
|
23
29
|
});
|
24
30
|
export const SetWalletInstanceStatusBody = z.object({
|
25
31
|
status: z.literal("REVOKED")
|
@@ -30,6 +36,13 @@ export const WalletInstanceData = z.object({
|
|
30
36
|
is_revoked: z.boolean(),
|
31
37
|
revocation_reason: z.union([RevocationReason, z.undefined()]).optional()
|
32
38
|
});
|
39
|
+
export const ProblemDetail = z.object({
|
40
|
+
type: z.string().optional(),
|
41
|
+
title: z.string().optional(),
|
42
|
+
status: z.number().optional(),
|
43
|
+
detail: z.string().optional(),
|
44
|
+
instance: z.string().optional()
|
45
|
+
});
|
33
46
|
export const get_GetNonce = {
|
34
47
|
method: z.literal("GET"),
|
35
48
|
path: z.literal("/nonce"),
|
@@ -73,6 +86,14 @@ export const post_CreateWalletAttestation = {
|
|
73
86
|
}),
|
74
87
|
response: WalletAttestationView
|
75
88
|
};
|
89
|
+
export const post_CreateWalletAttestationV2 = {
|
90
|
+
method: z.literal("POST"),
|
91
|
+
path: z.literal("/wallet-attestations"),
|
92
|
+
parameters: z.object({
|
93
|
+
body: CreateWalletAttestationV2Body
|
94
|
+
}),
|
95
|
+
response: WalletAttestationsView
|
96
|
+
};
|
76
97
|
|
77
98
|
// <EndpointByMethod>
|
78
99
|
export const EndpointByMethod = {
|
@@ -82,7 +103,8 @@ export const EndpointByMethod = {
|
|
82
103
|
},
|
83
104
|
post: {
|
84
105
|
"/wallet-instances": post_CreateWalletInstance,
|
85
|
-
"/token": post_CreateWalletAttestation
|
106
|
+
"/token": post_CreateWalletAttestation,
|
107
|
+
"/wallet-attestations": post_CreateWalletAttestationV2
|
86
108
|
},
|
87
109
|
put: {
|
88
110
|
"/wallet-instances/{id}/status": put_SetWalletInstanceStatus
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["z","
|
1
|
+
{"version":3,"names":["z","ApplicationInfo","object","name","string","version","NonceDetailView","nonce","WalletAttestationView","wallet_attestation","WalletAttestationsView","wallet_attestations","array","format","union","literal","CreateWalletInstanceBody","challenge","key_attestation","hardware_key_tag","CreateWalletAttestationBody","grant_type","assertion","CreateWalletAttestationV2Body","SetWalletInstanceStatusBody","status","RevocationReason","WalletInstanceData","id","is_revoked","boolean","revocation_reason","undefined","optional","ProblemDetail","type","title","number","detail","instance","get_GetNonce","method","path","parameters","never","response","post_CreateWalletInstance","body","unknown","get_GetWalletInstanceStatus","put_SetWalletInstanceStatus","post_CreateWalletAttestation","post_CreateWalletAttestationV2","EndpointByMethod","get","post","put","ApiClient","baseUrl","constructor","fetcher","setBaseUrl","arguments","length","createApiClient"],"sourceRoot":"../../../../src","sources":["client/generated/wallet-provider.ts"],"mappings":"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"}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { getCredentialIssuerMetadata } from "../../entity/openid-connect/issuer";
|
2
|
+
import { getCredentialIssuerEntityConfiguration } from "@pagopa/io-react-native-wallet";
|
2
3
|
|
3
4
|
/**
|
4
5
|
* Common configuration for the issuer.
|
@@ -8,6 +9,8 @@ import { getCredentialIssuerMetadata } from "../../entity/openid-connect/issuer"
|
|
8
9
|
|
9
10
|
/**
|
10
11
|
* WARNING: This function must be called after {@link startFlow}. The next function to be called is {@link startUserAuthorization}.
|
12
|
+
* WARNING: This function extracts the {@link IssuerConfig} from the OpenID Connect endpoint. For the OpenID Federation variant, use {@link getIssuerConfigOIDFED}.
|
13
|
+
* WARNING: The variants should not be used in conjunction.
|
11
14
|
* Get the Issuer's configuration from the Issuer's metadata.
|
12
15
|
* Currently it only supports a mixed configuration based on OpenID Connect partial implementation.
|
13
16
|
* @param issuerUrl The base url of the Issuer returned by {@link startFlow}
|
@@ -22,6 +25,24 @@ export const getIssuerConfig = async function (issuerUrl) {
|
|
22
25
|
return credentialIssuerRationalization(res);
|
23
26
|
};
|
24
27
|
|
28
|
+
/**
|
29
|
+
* WARNING: This function must be called after {@link startFlow}. The next function to be called is {@link startUserAuthorization}.
|
30
|
+
* WARNING: This function extracts the {@link IssuerConfig} from the OpenID Federation EC. For the OpenID Connect variant, use {@link getIssuerConfig}.
|
31
|
+
* WARNING: The variants should not be used in conjunction.
|
32
|
+
* Get the Issuer's configuration from the Issuer's metadata fetched from the OpenID Federation system.
|
33
|
+
* Currently it only supports a mixed configuration based on OpenID Federation partial implementation.
|
34
|
+
* @param issuerUrl The base url of the Issuer returned by {@link startFlow}
|
35
|
+
* @param context.appFetch (optional) fetch api implementation. Default: built-in fetch
|
36
|
+
* @returns The Issuer's configuration
|
37
|
+
*/
|
38
|
+
export const getIssuerConfigOIDFED = async function (issuerUrl) {
|
39
|
+
let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
40
|
+
const res = await getCredentialIssuerEntityConfiguration(issuerUrl, {
|
41
|
+
appFetch: context.appFetch
|
42
|
+
});
|
43
|
+
return credentialIssuerRationalizationOIDFED(res);
|
44
|
+
};
|
45
|
+
|
25
46
|
/**
|
26
47
|
* Rationalize the issuer's metadata to the issuer's configuration which is then used in our flows to interact with the issuer.
|
27
48
|
* @param issuerMetadata - The issuer's metadata
|
@@ -35,7 +56,65 @@ const credentialIssuerRationalization = issuerMetadata => {
|
|
35
56
|
authorization_endpoint: issuerMetadata.authorization_endpoint,
|
36
57
|
token_endpoint: issuerMetadata.token_endpoint,
|
37
58
|
credential_endpoint: issuerMetadata.credential_endpoint,
|
38
|
-
keys: issuerMetadata.jwks.keys
|
59
|
+
keys: issuerMetadata.jwks.keys,
|
60
|
+
issuer: issuerMetadata.authorization_endpoint
|
61
|
+
}
|
62
|
+
};
|
63
|
+
};
|
64
|
+
|
65
|
+
/**
|
66
|
+
* Rationalize the issuer's metadata taken from OpenID Federation to the issuer's configuration which is then used in our flows to interact with the issuer.
|
67
|
+
* @param issuerMetadata - The issuer's metadata
|
68
|
+
* @returns the isssuer configuration to be used later in our flows
|
69
|
+
*/
|
70
|
+
const credentialIssuerRationalizationOIDFED = issuerMetadata => {
|
71
|
+
const adapted_credential_configurations_supported = Object.fromEntries(Object.entries(issuerMetadata.payload.metadata.openid_credential_issuer.credential_configurations_supported).map(_ref => {
|
72
|
+
let [key, config] = _ref;
|
73
|
+
const claimsRaw = config.claims;
|
74
|
+
// we need to evaluate how claims is in oder to support Federation and OID4VCI
|
75
|
+
// claim structure is different in both case
|
76
|
+
let claims;
|
77
|
+
if (claimsRaw && typeof Object.values(claimsRaw)[0] === "object" && "mandatory" in Object.values(claimsRaw)[0]) {
|
78
|
+
// claims is Record<string, { mandatory: boolean; display: Display[] }>
|
79
|
+
claims = Object.fromEntries(Object.entries(claimsRaw).map(_ref2 => {
|
80
|
+
let [, v] = _ref2;
|
81
|
+
return [[v.path[0]], {
|
82
|
+
mandatory: true,
|
83
|
+
display: v.display
|
84
|
+
}];
|
85
|
+
}));
|
86
|
+
} else {
|
87
|
+
// claims is Record<string, Record<string, { mandatory; display }>>
|
88
|
+
claims = Object.fromEntries(Object.entries(claimsRaw).map(_ref3 => {
|
89
|
+
let [k, inner] = _ref3;
|
90
|
+
return [[k], Object.fromEntries(Object.entries(inner).map(_ref4 => {
|
91
|
+
let [innerK, v] = _ref4;
|
92
|
+
return [[innerK], {
|
93
|
+
mandatory: v.mandatory,
|
94
|
+
display: v.display
|
95
|
+
}];
|
96
|
+
}))];
|
97
|
+
}));
|
98
|
+
}
|
99
|
+
const newConfig = {
|
100
|
+
...config,
|
101
|
+
claims,
|
102
|
+
// cryptographic_suites_supported have been renamed credential_signing_alg_values_supported.
|
103
|
+
// We mantain it for Potential compatibility
|
104
|
+
cryptographic_suites_supported: config.credential_signing_alg_values_supported
|
105
|
+
};
|
106
|
+
return [key, newConfig];
|
107
|
+
}));
|
108
|
+
return {
|
109
|
+
issuerConf: {
|
110
|
+
credential_configurations_supported: adapted_credential_configurations_supported,
|
111
|
+
pushed_authorization_request_endpoint: issuerMetadata.payload.metadata.oauth_authorization_server.pushed_authorization_request_endpoint,
|
112
|
+
authorization_endpoint: issuerMetadata.payload.metadata.oauth_authorization_server.authorization_endpoint,
|
113
|
+
token_endpoint: issuerMetadata.payload.metadata.oauth_authorization_server.token_endpoint,
|
114
|
+
credential_endpoint: issuerMetadata.payload.metadata.openid_credential_issuer.credential_endpoint,
|
115
|
+
keys: issuerMetadata.payload.metadata.openid_credential_issuer.jwks.keys,
|
116
|
+
issuer: issuerMetadata.payload.metadata.oauth_authorization_server.issuer,
|
117
|
+
nonce_endpoint: issuerMetadata.payload.metadata.openid_credential_issuer.nonce_endpoint
|
39
118
|
}
|
40
119
|
};
|
41
120
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["getCredentialIssuerMetadata","getIssuerConfig","issuerUrl","context","arguments","length","undefined","res","appFetch","credentialIssuerRationalization","issuerMetadata","issuerConf","credential_configurations_supported","pushed_authorization_request_endpoint","authorization_endpoint","token_endpoint","credential_endpoint","keys","jwks"],"sourceRoot":"../../../../src","sources":["credential/issuance/02-get-issuer-config.ts"],"mappings":"AAGA,SAASA,2BAA2B,QAAQ,oCAAoC;;
|
1
|
+
{"version":3,"names":["getCredentialIssuerMetadata","getCredentialIssuerEntityConfiguration","getIssuerConfig","issuerUrl","context","arguments","length","undefined","res","appFetch","credentialIssuerRationalization","getIssuerConfigOIDFED","credentialIssuerRationalizationOIDFED","issuerMetadata","issuerConf","credential_configurations_supported","pushed_authorization_request_endpoint","authorization_endpoint","token_endpoint","credential_endpoint","keys","jwks","issuer","adapted_credential_configurations_supported","Object","fromEntries","entries","payload","metadata","openid_credential_issuer","map","_ref","key","config","claimsRaw","claims","values","_ref2","v","path","mandatory","display","_ref3","k","inner","_ref4","innerK","newConfig","cryptographic_suites_supported","credential_signing_alg_values_supported","oauth_authorization_server","nonce_endpoint"],"sourceRoot":"../../../../src","sources":["credential/issuance/02-get-issuer-config.ts"],"mappings":"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"}
|
@@ -13,15 +13,13 @@ import { makeParRequest } from "../../utils/par";
|
|
13
13
|
*/
|
14
14
|
const selectCredentialDefinition = (issuerConf, credentialType) => {
|
15
15
|
const credential_configurations_supported = issuerConf.credential_configurations_supported;
|
16
|
-
const
|
17
|
-
if (!credential) {
|
18
|
-
throw new Error(`No credential support the type '${credentialType}'`);
|
19
|
-
}
|
20
|
-
const result = {
|
16
|
+
const [result] = Object.keys(credential_configurations_supported).filter(e => e.includes(credentialType)).map(() => ({
|
21
17
|
credential_configuration_id: credentialType,
|
22
|
-
format: credential.format,
|
23
18
|
type: "openid_credential"
|
24
|
-
};
|
19
|
+
}));
|
20
|
+
if (!result) {
|
21
|
+
throw new Error(`No credential support the type '${credentialType}'`);
|
22
|
+
}
|
25
23
|
return result;
|
26
24
|
};
|
27
25
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["generateRandomAlphaNumericString","makeParRequest","selectCredentialDefinition","issuerConf","credentialType","credential_configurations_supported","
|
1
|
+
{"version":3,"names":["generateRandomAlphaNumericString","makeParRequest","selectCredentialDefinition","issuerConf","credentialType","credential_configurations_supported","result","Object","keys","filter","e","includes","map","credential_configuration_id","type","Error","selectResponseMode","responseMode","startUserAuthorization","ctx","wiaCryptoContext","walletInstanceAttestation","redirectUri","appFetch","fetch","clientId","getPublicKey","then","_","kid","codeVerifier","parEndpoint","pushed_authorization_request_endpoint","credentialDefinition","getPar","issuerRequestUri"],"sourceRoot":"../../../../src","sources":["credential/issuance/03-start-user-authorization.ts"],"mappings":"AAEA,SAASA,gCAAgC,QAAkB,kBAAkB;AAE7E,SAA8BC,cAAc,QAAQ,iBAAiB;AAmBrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,0BAA0B,GAAGA,CACjCC,UAA8C,EAC9CC,cAAgD,KACxB;EACxB,MAAMC,mCAAmC,GACvCF,UAAU,CAACE,mCAAmC;EAEhD,MAAM,CAACC,MAAM,CAAC,GAAGC,MAAM,CAACC,IAAI,CAACH,mCAAmC,CAAC,CAC9DI,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAACP,cAAc,CAAC,CAAC,CACzCQ,GAAG,CAAC,OAAO;IACVC,2BAA2B,EAAET,cAAc;IAC3CU,IAAI,EAAE;EACR,CAAC,CAAC,CAAC;EAEL,IAAI,CAACR,MAAM,EAAE;IACX,MAAM,IAAIS,KAAK,CAAE,mCAAkCX,cAAe,GAAE,CAAC;EACvE;EAEA,OAAOE,MAAM;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAMU,kBAAkB,GACtBZ,cAAgD,IAC/B;EACjB,MAAMa,YAAY,GAChBb,cAAc,KAAK,6BAA6B,GAC5C,OAAO,GACP,eAAe;EAErB,OAAOa,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAA8C,GAAG,MAAAA,CAC5Df,UAAU,EACVC,cAAc,EACde,GAAG,KACA;EACH,MAAM;IACJC,gBAAgB;IAChBC,yBAAyB;IACzBC,WAAW;IACXC,QAAQ,GAAGC;EACb,CAAC,GAAGL,GAAG;EAEP,MAAMM,QAAQ,GAAG,MAAML,gBAAgB,CAACM,YAAY,CAAC,CAAC,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,CAAC;EACzE,IAAI,CAACJ,QAAQ,EAAE;IACb,MAAM,IAAIV,KAAK,CAAC,qBAAqB,CAAC;EACxC;EACA,MAAMe,YAAY,GAAG9B,gCAAgC,CAAC,EAAE,CAAC;EACzD,MAAM+B,WAAW,GAAG5B,UAAU,CAAC6B,qCAAqC;EACpE,MAAMC,oBAAoB,GAAG/B,0BAA0B,CACrDC,UAAU,EACVC,cACF,CAAC;EACD,MAAMa,YAAY,GAAGD,kBAAkB,CAACZ,cAAc,CAAC;EAEvD,MAAM8B,MAAM,GAAGjC,cAAc,CAAC;IAAEmB,gBAAgB;IAAEG;EAAS,CAAC,CAAC;EAC7D,MAAMY,gBAAgB,GAAG,MAAMD,MAAM,CACnCT,QAAQ,EACRK,YAAY,EACZR,WAAW,EACXL,YAAY,EACZc,WAAW,EACXV,yBAAyB,EACzB,CAACY,oBAAoB,CACvB,CAAC;EAED,OAAO;IAAEE,gBAAgB;IAAEV,QAAQ;IAAEK,YAAY;IAAEG;EAAqB,CAAC;AAC3E,CAAC"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { sha256ToBase64, SignJWT } from "@pagopa/io-react-native-jwt";
|
2
2
|
import { hasStatusOrThrow } from "../../utils/misc";
|
3
3
|
import { IssuerResponseError, IssuerResponseErrorCodes, ResponseErrorBuilder, UnexpectedStatusCodeError, ValidationFailed } from "../../utils/errors";
|
4
|
-
import { CredentialResponse } from "./types";
|
4
|
+
import { CredentialResponse, NonceResponse } from "./types";
|
5
5
|
import { createDPopToken } from "../../utils/dpop";
|
6
6
|
import uuid from "react-native-uuid";
|
7
7
|
export const createNonceProof = async (nonce, issuer, audience, ctx) => {
|
@@ -37,14 +37,33 @@ export const obtainCredential = async (issuerConf, accessToken, clientId, creden
|
|
37
37
|
dPopCryptoContext
|
38
38
|
} = context;
|
39
39
|
const credentialUrl = issuerConf.credential_endpoint;
|
40
|
+
const issuerUrl = issuerConf.issuer;
|
41
|
+
const nonceUrl = issuerConf.nonce_endpoint;
|
42
|
+
|
43
|
+
// Fetch the nonce from the Credential Issuer
|
44
|
+
const {
|
45
|
+
c_nonce
|
46
|
+
} = nonceUrl ? await appFetch(nonceUrl, {
|
47
|
+
method: "POST",
|
48
|
+
headers: {
|
49
|
+
"Content-Type": "application/json"
|
50
|
+
}
|
51
|
+
}).then(hasStatusOrThrow(200)).then(res => res.json()).then(body => NonceResponse.parse(body)) : accessToken;
|
52
|
+
if (!c_nonce) {
|
53
|
+
throw new ValidationFailed({
|
54
|
+
message: "Nonce Endpoint not found or access token does not contain the c_nonce"
|
55
|
+
});
|
56
|
+
}
|
40
57
|
|
41
58
|
/**
|
42
59
|
* JWT proof token to bind the request nonce to the key that will bind the holder User with the Credential
|
43
60
|
* This is presented along with the access token to the Credential Endpoint as proof of possession of the private key used to sign the Access Token.
|
44
61
|
* @see https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html#name-proof-types
|
45
62
|
*/
|
46
|
-
const signedNonceProof = await createNonceProof(
|
47
|
-
|
63
|
+
const signedNonceProof = await createNonceProof(c_nonce, clientId, issuerUrl, credentialCryptoContext);
|
64
|
+
|
65
|
+
// Validation of accessTokenResponse.authorization_details if contain credentialDefinition
|
66
|
+
const containsCredentialDefinition = accessToken.authorization_details.some(c => c.credential_configuration_id === credentialDefinition.credential_configuration_id && (credentialDefinition.credential_identifier ? c.credential_identifiers.includes(credentialDefinition.credential_identifier) : true));
|
48
67
|
if (!containsCredentialDefinition) {
|
49
68
|
throw new ValidationFailed({
|
50
69
|
message: "The access token response does not contain the requested credential"
|
@@ -65,12 +84,7 @@ export const obtainCredential = async (issuerConf, accessToken, clientId, creden
|
|
65
84
|
|
66
85
|
/** The credential request body */
|
67
86
|
const credentialRequestFormBody = {
|
68
|
-
|
69
|
-
doctype: credentialDefinition.credential_configuration_id
|
70
|
-
} : {
|
71
|
-
vct: credentialDefinition.credential_configuration_id
|
72
|
-
}),
|
73
|
-
format,
|
87
|
+
credential_identifier: credentialDefinition.credential_configuration_id,
|
74
88
|
proof: {
|
75
89
|
jwt: signedNonceProof,
|
76
90
|
proof_type: "jwt"
|
@@ -98,8 +112,11 @@ export const obtainCredential = async (issuerConf, accessToken, clientId, creden
|
|
98
112
|
});
|
99
113
|
}
|
100
114
|
|
101
|
-
|
102
|
-
return
|
115
|
+
// We support only one credential for now
|
116
|
+
return {
|
117
|
+
format,
|
118
|
+
...credentialRes.data.credentials.at(0)
|
119
|
+
};
|
103
120
|
};
|
104
121
|
|
105
122
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["sha256ToBase64","SignJWT","hasStatusOrThrow","IssuerResponseError","IssuerResponseErrorCodes","ResponseErrorBuilder","UnexpectedStatusCodeError","ValidationFailed","CredentialResponse","createDPopToken","uuid","createNonceProof","nonce","issuer","audience","ctx","jwk","getPublicKey","setPayload","setProtectedHeader","typ","setAudience","setIssuer","setIssuedAt","setExpirationTime","sign","obtainCredential","issuerConf","accessToken","clientId","credentialDefinition","context","credentialCryptoContext","appFetch","fetch","dPopCryptoContext","credentialUrl","credential_endpoint","
|
1
|
+
{"version":3,"names":["sha256ToBase64","SignJWT","hasStatusOrThrow","IssuerResponseError","IssuerResponseErrorCodes","ResponseErrorBuilder","UnexpectedStatusCodeError","ValidationFailed","CredentialResponse","NonceResponse","createDPopToken","uuid","createNonceProof","nonce","issuer","audience","ctx","jwk","getPublicKey","setPayload","setProtectedHeader","typ","setAudience","setIssuer","setIssuedAt","setExpirationTime","sign","obtainCredential","issuerConf","accessToken","clientId","credentialDefinition","context","credentialCryptoContext","appFetch","fetch","dPopCryptoContext","credentialUrl","credential_endpoint","issuerUrl","nonceUrl","nonce_endpoint","c_nonce","method","headers","then","res","json","body","parse","message","signedNonceProof","containsCredentialDefinition","authorization_details","some","c","credential_configuration_id","credential_identifier","credential_identifiers","includes","credential","credential_configurations_supported","format","credentialRequestFormBody","proof","jwt","proof_type","tokenRequestSignedDPop","htm","htu","jti","v4","ath","access_token","credentialRes","DPoP","Authorization","token_type","JSON","stringify","safeParse","catch","handleObtainCredentialError","success","reason","error","data","credentials","at","e","handle","code","CredentialRequestFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["credential/issuance/06-obtain-credential.ts"],"mappings":"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"}
|