@pagopa/io-react-native-wallet 1.6.0 → 1.6.1
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/credential/issuance/06-obtain-credential.js +5 -1
- package/lib/commonjs/credential/issuance/06-obtain-credential.js.map +1 -1
- package/lib/commonjs/credential/presentation/08-send-authorization-response.js +13 -3
- package/lib/commonjs/credential/presentation/08-send-authorization-response.js.map +1 -1
- package/lib/module/credential/issuance/06-obtain-credential.js +5 -1
- package/lib/module/credential/issuance/06-obtain-credential.js.map +1 -1
- package/lib/module/credential/presentation/08-send-authorization-response.js +13 -3
- package/lib/module/credential/presentation/08-send-authorization-response.js.map +1 -1
- package/lib/typescript/credential/issuance/06-obtain-credential.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts +3 -0
- package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/credential/issuance/06-obtain-credential.ts +3 -1
- package/src/credential/presentation/08-send-authorization-response.ts +15 -2
@@ -73,7 +73,11 @@ const obtainCredential = async (issuerConf, accessToken, clientId, credentialDef
|
|
73
73
|
|
74
74
|
/** The credential request body */
|
75
75
|
const credentialRequestFormBody = {
|
76
|
-
|
76
|
+
...(format === "mso_mdoc" ? {
|
77
|
+
doctype: credentialDefinition.credential_configuration_id
|
78
|
+
} : {
|
79
|
+
vct: credentialDefinition.credential_configuration_id
|
80
|
+
}),
|
77
81
|
format,
|
78
82
|
proof: {
|
79
83
|
jwt: signedNonceProof,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_ioReactNativeJwt","require","_misc","_errors","_types","_dpop","_reactNativeUuid","_interopRequireDefault","obj","__esModule","default","createNonceProof","nonce","issuer","audience","ctx","jwk","getPublicKey","SignJWT","setPayload","setProtectedHeader","typ","setAudience","setIssuer","setIssuedAt","setExpirationTime","sign","exports","obtainCredential","issuerConf","accessToken","clientId","credentialDefinition","context","credentialCryptoContext","appFetch","fetch","dPopCryptoContext","credentialUrl","credential_endpoint","signedNonceProof","c_nonce","containsCredentialDefinition","authorization_details","some","detail","credential_configuration_id","type","ValidationFailed","message","credential","credential_configurations_supported","format","credentialRequestFormBody","vct","proof","jwt","proof_type","tokenRequestSignedDPop","createDPopToken","htm","htu","jti","uuid","v4","ath","sha256ToBase64","access_token","credentialRes","method","headers","DPoP","Authorization","token_type","body","JSON","stringify","then","hasStatusOrThrow","res","json","CredentialResponse","safeParse","catch","handleObtainCredentialError","success","reason","error","data","e","UnexpectedStatusCodeError","ResponseErrorBuilder","IssuerResponseError","handle","code","IssuerResponseErrorCodes","CredentialRequestFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["credential/issuance/06-obtain-credential.ts"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAOA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAOA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAC,sBAAA,CAAAN,OAAA;AAAqC,SAAAM,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAc9B,MAAMG,gBAAgB,GAAG,MAAAA,CAC9BC,KAAa,EACbC,MAAc,EACdC,QAAgB,EAChBC,GAAkB,KACE;EACpB,MAAMC,GAAG,GAAG,MAAMD,GAAG,CAACE,YAAY,CAAC,CAAC;EACpC,OAAO,IAAIC,yBAAO,CAACH,GAAG,CAAC,CACpBI,UAAU,CAAC;IACVP;EACF,CAAC,CAAC,CACDQ,kBAAkB,CAAC;IAClBC,GAAG,EAAE,sBAAsB;IAC3BL;EACF,CAAC,CAAC,CACDM,WAAW,CAACR,QAAQ,CAAC,CACrBS,SAAS,CAACV,MAAM,CAAC,CACjBW,WAAW,CAAC,CAAC,CACbC,iBAAiB,CAAC,MAAM,CAAC,CACzBC,IAAI,CAAC,CAAC;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfAC,OAAA,CAAAhB,gBAAA,GAAAA,gBAAA;AAgBO,MAAMiB,gBAAkC,GAAG,MAAAA,CAChDC,UAAU,EACVC,WAAW,EACXC,QAAQ,EACRC,oBAAoB,EACpBC,OAAO,KACJ;EACH,MAAM;IACJC,uBAAuB;IACvBC,QAAQ,GAAGC,KAAK;IAChBC;EACF,CAAC,GAAGJ,OAAO;EAEX,MAAMK,aAAa,GAAGT,UAAU,CAACU,mBAAmB;;EAEpD;AACF;AACA;AACA;AACA;EACE,MAAMC,gBAAgB,GAAG,MAAM7B,gBAAgB,CAC7CmB,WAAW,CAACW,OAAO,EACnBV,QAAQ,EACRO,aAAa,EACbJ,uBACF,CAAC;EAED,MAAMQ,4BAA4B,GAAGZ,WAAW,CAACa,qBAAqB,CAACC,IAAI,CACxEC,MAAM,IACLA,MAAM,CAACC,2BAA2B,KAChCd,oBAAoB,CAACc,2BAA2B,IAClDD,MAAM,CAACE,IAAI,KAAKf,oBAAoB,CAACe,IACzC,CAAC;EAED,IAAI,CAACL,4BAA4B,EAAE;IACjC,MAAM,IAAIM,wBAAgB,CAAC;MACzBC,OAAO,EACL;IACJ,CAAC,CAAC;EACJ;EAEA,MAAMC,UAAU,GACdrB,UAAU,CAACsB,mCAAmC,CAC5CnB,oBAAoB,CAACc,2BAA2B,CACjD;EAEH,IAAI,CAACI,UAAU,EAAE;IACf,MAAM,IAAIF,wBAAgB,CAAC;MACzBC,OAAO,EAAE;IACX,CAAC,CAAC;EACJ;EAEA,MAAMG,MAAM,GAAGF,UAAU,CAACE,MAAM;EAEhC,IAAI,CAACA,MAAM,EAAE;IACX,MAAM,IAAIJ,wBAAgB,CAAC;MACzBC,OAAO,EACL;IACJ,CAAC,CAAC;EACJ;;EAEA;EACA,MAAMI,yBAAyB,GAAG;
|
1
|
+
{"version":3,"names":["_ioReactNativeJwt","require","_misc","_errors","_types","_dpop","_reactNativeUuid","_interopRequireDefault","obj","__esModule","default","createNonceProof","nonce","issuer","audience","ctx","jwk","getPublicKey","SignJWT","setPayload","setProtectedHeader","typ","setAudience","setIssuer","setIssuedAt","setExpirationTime","sign","exports","obtainCredential","issuerConf","accessToken","clientId","credentialDefinition","context","credentialCryptoContext","appFetch","fetch","dPopCryptoContext","credentialUrl","credential_endpoint","signedNonceProof","c_nonce","containsCredentialDefinition","authorization_details","some","detail","credential_configuration_id","type","ValidationFailed","message","credential","credential_configurations_supported","format","credentialRequestFormBody","doctype","vct","proof","jwt","proof_type","tokenRequestSignedDPop","createDPopToken","htm","htu","jti","uuid","v4","ath","sha256ToBase64","access_token","credentialRes","method","headers","DPoP","Authorization","token_type","body","JSON","stringify","then","hasStatusOrThrow","res","json","CredentialResponse","safeParse","catch","handleObtainCredentialError","success","reason","error","data","e","UnexpectedStatusCodeError","ResponseErrorBuilder","IssuerResponseError","handle","code","IssuerResponseErrorCodes","CredentialRequestFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["credential/issuance/06-obtain-credential.ts"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAOA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAOA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAC,sBAAA,CAAAN,OAAA;AAAqC,SAAAM,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAc9B,MAAMG,gBAAgB,GAAG,MAAAA,CAC9BC,KAAa,EACbC,MAAc,EACdC,QAAgB,EAChBC,GAAkB,KACE;EACpB,MAAMC,GAAG,GAAG,MAAMD,GAAG,CAACE,YAAY,CAAC,CAAC;EACpC,OAAO,IAAIC,yBAAO,CAACH,GAAG,CAAC,CACpBI,UAAU,CAAC;IACVP;EACF,CAAC,CAAC,CACDQ,kBAAkB,CAAC;IAClBC,GAAG,EAAE,sBAAsB;IAC3BL;EACF,CAAC,CAAC,CACDM,WAAW,CAACR,QAAQ,CAAC,CACrBS,SAAS,CAACV,MAAM,CAAC,CACjBW,WAAW,CAAC,CAAC,CACbC,iBAAiB,CAAC,MAAM,CAAC,CACzBC,IAAI,CAAC,CAAC;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAfAC,OAAA,CAAAhB,gBAAA,GAAAA,gBAAA;AAgBO,MAAMiB,gBAAkC,GAAG,MAAAA,CAChDC,UAAU,EACVC,WAAW,EACXC,QAAQ,EACRC,oBAAoB,EACpBC,OAAO,KACJ;EACH,MAAM;IACJC,uBAAuB;IACvBC,QAAQ,GAAGC,KAAK;IAChBC;EACF,CAAC,GAAGJ,OAAO;EAEX,MAAMK,aAAa,GAAGT,UAAU,CAACU,mBAAmB;;EAEpD;AACF;AACA;AACA;AACA;EACE,MAAMC,gBAAgB,GAAG,MAAM7B,gBAAgB,CAC7CmB,WAAW,CAACW,OAAO,EACnBV,QAAQ,EACRO,aAAa,EACbJ,uBACF,CAAC;EAED,MAAMQ,4BAA4B,GAAGZ,WAAW,CAACa,qBAAqB,CAACC,IAAI,CACxEC,MAAM,IACLA,MAAM,CAACC,2BAA2B,KAChCd,oBAAoB,CAACc,2BAA2B,IAClDD,MAAM,CAACE,IAAI,KAAKf,oBAAoB,CAACe,IACzC,CAAC;EAED,IAAI,CAACL,4BAA4B,EAAE;IACjC,MAAM,IAAIM,wBAAgB,CAAC;MACzBC,OAAO,EACL;IACJ,CAAC,CAAC;EACJ;EAEA,MAAMC,UAAU,GACdrB,UAAU,CAACsB,mCAAmC,CAC5CnB,oBAAoB,CAACc,2BAA2B,CACjD;EAEH,IAAI,CAACI,UAAU,EAAE;IACf,MAAM,IAAIF,wBAAgB,CAAC;MACzBC,OAAO,EAAE;IACX,CAAC,CAAC;EACJ;EAEA,MAAMG,MAAM,GAAGF,UAAU,CAACE,MAAM;EAEhC,IAAI,CAACA,MAAM,EAAE;IACX,MAAM,IAAIJ,wBAAgB,CAAC;MACzBC,OAAO,EACL;IACJ,CAAC,CAAC;EACJ;;EAEA;EACA,MAAMI,yBAAyB,GAAG;IAChC,IAAID,MAAM,KAAK,UAAU,GACrB;MAAEE,OAAO,EAAEtB,oBAAoB,CAACc;IAA4B,CAAC,GAC7D;MAAES,GAAG,EAAEvB,oBAAoB,CAACc;IAA4B,CAAC,CAAC;IAC9DM,MAAM;IACNI,KAAK,EAAE;MACLC,GAAG,EAAEjB,gBAAgB;MACrBkB,UAAU,EAAE;IACd;EACF,CAAC;EAED,MAAMC,sBAAsB,GAAG,MAAM,IAAAC,qBAAe,EAClD;IACEC,GAAG,EAAE,MAAM;IACXC,GAAG,EAAExB,aAAa;IAClByB,GAAG,EAAG,GAAEC,wBAAI,CAACC,EAAE,CAAC,CAAE,EAAC;IACnBC,GAAG,EAAE,MAAM,IAAAC,gCAAc,EAACrC,WAAW,CAACsC,YAAY;EACpD,CAAC,EACD/B,iBACF,CAAC;EACD,MAAMgC,aAAa,GAAG,MAAMlC,QAAQ,CAACG,aAAa,EAAE;IAClDgC,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE;MACP,cAAc,EAAE,kBAAkB;MAClCC,IAAI,EAAEb,sBAAsB;MAC5Bc,aAAa,EAAG,GAAE3C,WAAW,CAAC4C,UAAW,IAAG5C,WAAW,CAACsC,YAAa;IACvE,CAAC;IACDO,IAAI,EAAEC,IAAI,CAACC,SAAS,CAACxB,yBAAyB;EAChD,CAAC,CAAC,CACCyB,IAAI,CAAC,IAAAC,sBAAgB,EAAC,GAAG,CAAC,CAAC,CAC3BD,IAAI,CAAEE,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC,CACzBH,IAAI,CAAEH,IAAI,IAAKO,yBAAkB,CAACC,SAAS,CAACR,IAAI,CAAC,CAAC,CAClDS,KAAK,CAACC,2BAA2B,CAAC;EAErC,IAAI,CAAChB,aAAa,CAACiB,OAAO,EAAE;IAC1B,MAAM,IAAItC,wBAAgB,CAAC;MACzBC,OAAO,EAAE,uCAAuC;MAChDsC,MAAM,EAAElB,aAAa,CAACmB,KAAK,CAACvC;IAC9B,CAAC,CAAC;EACJ;;EAEA;EACA,OAAOoB,aAAa,CAACoB,IAAI;AAC3B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALA9D,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAMA,MAAMyD,2BAA2B,GAAIK,CAAU,IAAK;EAClD,IAAI,EAAEA,CAAC,YAAYC,iCAAyB,CAAC,EAAE;IAC7C,MAAMD,CAAC;EACT;EAEA,MAAM,IAAIE,4BAAoB,CAACC,2BAAmB,CAAC,CAChDC,MAAM,CAAC,GAAG,EAAE;IACXC,IAAI,EAAEC,gCAAwB,CAACC,uBAAuB;IACtDhD,OAAO,EAAE;EACX,CAAC,CAAC,CACDiD,SAAS,CAACR,CAAC,CAAC;AACjB,CAAC"}
|
@@ -27,13 +27,25 @@ const AuthorizationResponse = z.object({
|
|
27
27
|
* Selects a public key (with `use = enc`) from the set of JWK keys
|
28
28
|
* offered by the Relying Party (RP) for encryption.
|
29
29
|
*
|
30
|
+
* Preference is given to EC keys (P-256 or P-384), followed by RSA keys,
|
31
|
+
* based on compatibility and common usage for encryption.
|
32
|
+
*
|
30
33
|
* @param rpJwkKeys - The array of JWKs retrieved from the RP entity configuration.
|
31
34
|
* @returns The first suitable public key found in the list.
|
32
35
|
* @throws {NoSuitableKeysFoundInEntityConfiguration} If no suitable encryption key is found.
|
33
36
|
*/
|
34
37
|
exports.AuthorizationResponse = AuthorizationResponse;
|
35
38
|
const choosePublicKeyToEncrypt = rpJwkKeys => {
|
36
|
-
|
39
|
+
// First try to find RSA keys which are more commonly used for encryption
|
40
|
+
const encKeys = rpJwkKeys.filter(jwk => jwk.use === "enc");
|
41
|
+
|
42
|
+
// Prioritize EC keys first, then fall back to RSA keys if needed
|
43
|
+
// io-react-native-jwt support only EC keys with P-256 or P-384 curves
|
44
|
+
const ecEncKeys = encKeys.filter(jwk => jwk.kty === "EC" && (jwk.crv === "P-256" || jwk.crv === "P-384"));
|
45
|
+
const rsaEncKeys = encKeys.filter(jwk => jwk.kty === "RSA");
|
46
|
+
|
47
|
+
// Select the first available key based on priority
|
48
|
+
const encKey = ecEncKeys[0] || rsaEncKeys[0] || encKeys[0];
|
37
49
|
if (encKey) {
|
38
50
|
return encKey;
|
39
51
|
}
|
@@ -80,8 +92,6 @@ const buildDirectPostJwtBody = async (jwkKeys, requestObject, payload, generated
|
|
80
92
|
state: requestObject.state,
|
81
93
|
...payload
|
82
94
|
});
|
83
|
-
|
84
|
-
// Choose a suitable RSA public key for encryption
|
85
95
|
const encPublicJwk = choosePublicKeyToEncrypt(jwkKeys);
|
86
96
|
// Encrypt the authorization payload
|
87
97
|
const {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_ioReactNativeJwt","require","_reactNativeUuid","_interopRequireDefault","_errors","_misc","z","_interopRequireWildcard","_jsBase","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","AuthorizationResponse","object","status","string","optional","response_code","redirect_uri","exports","choosePublicKeyToEncrypt","rpJwkKeys","
|
1
|
+
{"version":3,"names":["_ioReactNativeJwt","require","_reactNativeUuid","_interopRequireDefault","_errors","_misc","z","_interopRequireWildcard","_jsBase","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","AuthorizationResponse","object","status","string","optional","response_code","redirect_uri","exports","choosePublicKeyToEncrypt","rpJwkKeys","encKeys","filter","jwk","use","ecEncKeys","kty","crv","rsaEncKeys","encKey","NoSuitableKeysFoundInEntityConfiguration","buildDirectPostBody","requestObject","payload","formUrlEncodedBody","URLSearchParams","state","fromEntries","entries","map","_ref","value","Array","isArray","JSON","stringify","toString","buildDirectPostJwtBody","jwkKeys","generatedNonce","authzResponsePayload","encPublicJwk","client_metadata","encryptedResponse","EncryptJwe","alg","authorization_encrypted_response_alg","enc","authorization_encrypted_response_enc","kid","apv","Base64","encodeURI","nonce","apu","encrypt","formBody","response","sendAuthorizationResponse","presentationDefinitionId","remotePresentation","_presentations$","appFetch","fetch","arguments","length","undefined","presentations","vp_token","vpToken","presentation","descriptor_map","index","id","inputDescriptor","path","format","presentation_submission","uuid","v4","definition_id","requestBody","response_mode","authResponse","response_uri","method","headers","body","then","hasStatusOrThrow","res","json","safeParse","success","data","sendAuthorizationErrorResponse","error","parse"],"sourceRoot":"../../../../src","sources":["credential/presentation/08-send-authorization-response.ts"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAGA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAMA,IAAAK,CAAA,GAAAC,uBAAA,CAAAN,OAAA;AAEA,IAAAO,OAAA,GAAAP,OAAA;AAAmC,SAAAQ,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,SAAAH,wBAAAO,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;AAAA,SAAAjB,uBAAAW,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAG5B,MAAMiB,qBAAqB,GAAGzB,CAAC,CAAC0B,MAAM,CAAC;EAC5CC,MAAM,EAAE3B,CAAC,CAAC4B,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EAC7BC,aAAa,EAAE9B,CAAC,CACb4B,MAAM,CAAC,CAAC,CAAC;AACd;AACA;AACA;AACA,8BAJc,CAKTC,QAAQ,CAAC,CAAC;EACbE,YAAY,EAAE/B,CAAC,CAAC4B,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC;AACpC,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVAG,OAAA,CAAAP,qBAAA,GAAAA,qBAAA;AAWO,MAAMQ,wBAAwB,GACnCC,SAAiC,IACzB;EACR;EACA,MAAMC,OAAO,GAAGD,SAAS,CAACE,MAAM,CAAEC,GAAG,IAAKA,GAAG,CAACC,GAAG,KAAK,KAAK,CAAC;;EAE5D;EACA;EACA,MAAMC,SAAS,GAAGJ,OAAO,CAACC,MAAM,CAC7BC,GAAG,IAAKA,GAAG,CAACG,GAAG,KAAK,IAAI,KAAKH,GAAG,CAACI,GAAG,KAAK,OAAO,IAAIJ,GAAG,CAACI,GAAG,KAAK,OAAO,CAC1E,CAAC;EACD,MAAMC,UAAU,GAAGP,OAAO,CAACC,MAAM,CAAEC,GAAG,IAAKA,GAAG,CAACG,GAAG,KAAK,KAAK,CAAC;;EAE7D;EACA,MAAMG,MAAM,GAAGJ,SAAS,CAAC,CAAC,CAAC,IAAIG,UAAU,CAAC,CAAC,CAAC,IAAIP,OAAO,CAAC,CAAC,CAAC;EAE1D,IAAIQ,MAAM,EAAE;IACV,OAAOA,MAAM;EACf;;EAEA;EACA,MAAM,IAAIC,gDAAwC,CAChD,8CACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AANAZ,OAAA,CAAAC,wBAAA,GAAAA,wBAAA;AAOO,MAAMY,mBAAmB,GAAG,MAAAA,CACjCC,aAAiE,EACjEC,OAAuC,KACnB;EACpB,MAAMC,kBAAkB,GAAG,IAAIC,eAAe,CAAC;IAC7C,IAAIH,aAAa,CAACI,KAAK,GAAG;MAAEA,KAAK,EAAEJ,aAAa,CAACI;IAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,GAAGlC,MAAM,CAACmC,WAAW,CACnBnC,MAAM,CAACoC,OAAO,CAACL,OAAO,CAAC,CAACM,GAAG,CAACC,IAAA,IAAkB;MAAA,IAAjB,CAACnC,GAAG,EAAEoC,KAAK,CAAC,GAAAD,IAAA;MACvC,OAAO,CACLnC,GAAG,EACHqC,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,IAAI,OAAOA,KAAK,KAAK,QAAQ,GAC7CG,IAAI,CAACC,SAAS,CAACJ,KAAK,CAAC,GACrBA,KAAK,CACV;IACH,CAAC,CACH;EACF,CAAC,CAAC;EAEF,OAAOP,kBAAkB,CAACY,QAAQ,CAAC,CAAC;AACtC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA5B,OAAA,CAAAa,mBAAA,GAAAA,mBAAA;AAUO,MAAMgB,sBAAsB,GAAG,MAAAA,CACpCC,OAA+B,EAC/BhB,aAAiE,EACjEC,OAAuC,EACvCgB,cAAuB,KACH;EACpB;EACA,MAAMC,oBAAoB,GAAGN,IAAI,CAACC,SAAS,CAAC;IAC1CT,KAAK,EAAEJ,aAAa,CAACI,KAAK;IAC1B,GAAGH;EACL,CAAC,CAAC;EAEF,MAAMkB,YAAY,GAAGhC,wBAAwB,CAAC6B,OAAO,CAAC;EACtD;EACA,MAAM;IAAEI;EAAgB,CAAC,GAAGpB,aAAa;EACzC,MAAMqB,iBAAiB,GAAG,MAAM,IAAIC,4BAAU,CAACJ,oBAAoB,EAAE;IACnEK,GAAG,EACD,CAACH,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEI,oCAAoC,KAEnC,cAAc;IACnCC,GAAG,EACD,CAACL,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEM,oCAAoC,KAE9B,eAAe;IACzCC,GAAG,EAAER,YAAY,CAACQ,GAAG;IACrB;IACAC,GAAG,EAAEC,cAAM,CAACC,SAAS,CAAC9B,aAAa,CAAC+B,KAAK,CAAC;IAC1C,IAAId,cAAc,GAAG;MAAEe,GAAG,EAAEH,cAAM,CAACC,SAAS,CAACb,cAAc;IAAE,CAAC,GAAG,CAAC,CAAC;EACrE,CAAC,CAAC,CAACgB,OAAO,CAACd,YAAY,CAAC;;EAExB;EACA,MAAMe,QAAQ,GAAG,IAAI/B,eAAe,CAAC;IACnCgC,QAAQ,EAAEd,iBAAiB;IAC3B,IAAIrB,aAAa,CAACI,KAAK,GAAG;MAAEA,KAAK,EAAEJ,aAAa,CAACI;IAAM,CAAC,GAAG,CAAC,CAAC;EAC/D,CAAC,CAAC;EACF,OAAO8B,QAAQ,CAACpB,QAAQ,CAAC,CAAC;AAC5B,CAAC;;AAED;AACA;AACA;AACA;AAHA5B,OAAA,CAAA6B,sBAAA,GAAAA,sBAAA;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMqB,yBAAoD,GAAG,eAAAA,CAClEpC,aAAa,EACbqC,wBAAwB,EACxBrB,OAAO,EACPsB,kBAAkB,EAEiB;EAAA,IAAAC,eAAA;EAAA,IADnC;IAAEC,QAAQ,GAAGC;EAAM,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEzB,MAAM;IAAEzB,cAAc;IAAE4B;EAAc,CAAC,GAAGP,kBAAkB;EAC5D;AACF;AACA;AACA;AACA;EACE,MAAMQ,QAAQ,GACZ,CAAAD,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEF,MAAM,MAAK,CAAC,IAAAJ,eAAA,GACvBM,aAAa,CAAC,CAAC,CAAC,cAAAN,eAAA,uBAAhBA,eAAA,CAAkBQ,OAAO,GACzBF,aAAa,CAACtC,GAAG,CAAEyC,YAAY,IAAKA,YAAY,CAACD,OAAO,CAAC;EAE/D,MAAME,cAAc,GAAGJ,aAAa,CAACtC,GAAG,CAAC,CAACyC,YAAY,EAAEE,KAAK,MAAM;IACjEC,EAAE,EAAEH,YAAY,CAACI,eAAe,CAACD,EAAE;IACnCE,IAAI,EAAE,CAAAR,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEF,MAAM,MAAK,CAAC,GAAI,GAAE,GAAI,KAAIO,KAAM,GAAE;IACvDI,MAAM,EAAEN,YAAY,CAACM;EACvB,CAAC,CAAC,CAAC;EAEH,MAAMC,uBAAuB,GAAG;IAC9BJ,EAAE,EAAEK,wBAAI,CAACC,EAAE,CAAC,CAAC;IACbC,aAAa,EAAErB,wBAAwB;IACvCY;EACF,CAAC;;EAED;EACA,MAAMU,WAAW,GACf3D,aAAa,CAAC4D,aAAa,KAAK,iBAAiB,GAC7C,MAAM7C,sBAAsB,CAC1BC,OAAO,EACPhB,aAAa,EACb;IACE8C,QAAQ;IACRS;EACF,CAAC,EACDtC,cACF,CAAC,GACD,MAAMlB,mBAAmB,CAACC,aAAa,EAAE;IACvC8C,QAAQ;IACRS,uBAAuB,EAAEA;EAC3B,CAAC,CAAC;;EAER;EACA,MAAMM,YAAY,GAAG,MAAMrB,QAAQ,CAACxC,aAAa,CAAC8D,YAAY,EAAE;IAC9DC,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE;MACP,cAAc,EAAE;IAClB,CAAC;IACDC,IAAI,EAAEN;EACR,CAAC,CAAC,CACCO,IAAI,CAAC,IAAAC,sBAAgB,EAAC,GAAG,CAAC,CAAC,CAC3BD,IAAI,CAAEE,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC,CACzBH,IAAI,CAACvF,qBAAqB,CAAC2F,SAAS,CAAC;;EAExC;EACA,OAAOT,YAAY,CAACU,OAAO,GAAGV,YAAY,CAACW,IAAI,GAAG,CAAC,CAAC;AACtD,CAAC;;AAED;AACA;AACA;AACA;AAHAtF,OAAA,CAAAkD,yBAAA,GAAAA,yBAAA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMqC,8BAA8D,GACzE,eAAAA,CACEzE,aAAa,EACb0E,KAAK,EACL1D,OAAO,EAE4B;EAAA,IADnC;IAAEwB,QAAQ,GAAGC;EAAM,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEzB;EACA,MAAMiB,WAAW,GACf3D,aAAa,CAAC4D,aAAa,KAAK,iBAAiB,GAC7C,MAAM7C,sBAAsB,CAACC,OAAO,EAAEhB,aAAa,EAAE;IAAE0E;EAAM,CAAC,CAAC,GAC/D,MAAM3E,mBAAmB,CAACC,aAAa,EAAE;IAAE0E;EAAM,CAAC,CAAC;EACzD;EACA,OAAO,MAAMlC,QAAQ,CAACxC,aAAa,CAAC8D,YAAY,EAAE;IAChDC,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE;MACP,cAAc,EAAE;IAClB,CAAC;IACDC,IAAI,EAAEN;EACR,CAAC,CAAC,CACCO,IAAI,CAAC,IAAAC,sBAAgB,EAAC,GAAG,CAAC,CAAC,CAC3BD,IAAI,CAAEE,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC,CACzBH,IAAI,CAACvF,qBAAqB,CAACgG,KAAK,CAAC;AACtC,CAAC;AAACzF,OAAA,CAAAuF,8BAAA,GAAAA,8BAAA"}
|
@@ -65,7 +65,11 @@ export const obtainCredential = async (issuerConf, accessToken, clientId, creden
|
|
65
65
|
|
66
66
|
/** The credential request body */
|
67
67
|
const credentialRequestFormBody = {
|
68
|
-
|
68
|
+
...(format === "mso_mdoc" ? {
|
69
|
+
doctype: credentialDefinition.credential_configuration_id
|
70
|
+
} : {
|
71
|
+
vct: credentialDefinition.credential_configuration_id
|
72
|
+
}),
|
69
73
|
format,
|
70
74
|
proof: {
|
71
75
|
jwt: signedNonceProof,
|
@@ -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","signedNonceProof","c_nonce","containsCredentialDefinition","authorization_details","some","detail","credential_configuration_id","type","message","credential","credential_configurations_supported","format","credentialRequestFormBody","vct","proof","jwt","proof_type","tokenRequestSignedDPop","htm","htu","jti","v4","ath","access_token","credentialRes","method","headers","DPoP","Authorization","token_type","body","JSON","stringify","then","res","json","safeParse","catch","handleObtainCredentialError","success","reason","error","data","e","handle","code","CredentialRequestFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["credential/issuance/06-obtain-credential.ts"],"mappings":"AAAA,SAEEA,cAAc,EACdC,OAAO,QACF,6BAA6B;AAGpC,SAASC,gBAAgB,QAAkB,kBAAkB;AAE7D,SACEC,mBAAmB,EACnBC,wBAAwB,EACxBC,oBAAoB,EACpBC,yBAAyB,EACzBC,gBAAgB,QACX,oBAAoB;AAC3B,SAASC,kBAAkB,QAAQ,SAAS;AAC5C,SAASC,eAAe,QAAQ,kBAAkB;AAClD,OAAOC,IAAI,MAAM,mBAAmB;AAcpC,OAAO,MAAMC,gBAAgB,GAAG,MAAAA,CAC9BC,KAAa,EACbC,MAAc,EACdC,QAAgB,EAChBC,GAAkB,KACE;EACpB,MAAMC,GAAG,GAAG,MAAMD,GAAG,CAACE,YAAY,CAAC,CAAC;EACpC,OAAO,IAAIhB,OAAO,CAACc,GAAG,CAAC,CACpBG,UAAU,CAAC;IACVN;EACF,CAAC,CAAC,CACDO,kBAAkB,CAAC;IAClBC,GAAG,EAAE,sBAAsB;IAC3BJ;EACF,CAAC,CAAC,CACDK,WAAW,CAACP,QAAQ,CAAC,CACrBQ,SAAS,CAACT,MAAM,CAAC,CACjBU,WAAW,CAAC,CAAC,CACbC,iBAAiB,CAAC,MAAM,CAAC,CACzBC,IAAI,CAAC,CAAC;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAkC,GAAG,MAAAA,CAChDC,UAAU,EACVC,WAAW,EACXC,QAAQ,EACRC,oBAAoB,EACpBC,OAAO,KACJ;EACH,MAAM;IACJC,uBAAuB;IACvBC,QAAQ,GAAGC,KAAK;IAChBC;EACF,CAAC,GAAGJ,OAAO;EAEX,MAAMK,aAAa,GAAGT,UAAU,CAACU,mBAAmB;;EAEpD;AACF;AACA;AACA;AACA;EACE,MAAMC,gBAAgB,GAAG,MAAM3B,gBAAgB,CAC7CiB,WAAW,CAACW,OAAO,EACnBV,QAAQ,EACRO,aAAa,EACbJ,uBACF,CAAC;EAED,MAAMQ,4BAA4B,GAAGZ,WAAW,CAACa,qBAAqB,CAACC,IAAI,CACxEC,MAAM,IACLA,MAAM,CAACC,2BAA2B,KAChCd,oBAAoB,CAACc,2BAA2B,IAClDD,MAAM,CAACE,IAAI,KAAKf,oBAAoB,CAACe,IACzC,CAAC;EAED,IAAI,CAACL,4BAA4B,EAAE;IACjC,MAAM,IAAIjC,gBAAgB,CAAC;MACzBuC,OAAO,EACL;IACJ,CAAC,CAAC;EACJ;EAEA,MAAMC,UAAU,GACdpB,UAAU,CAACqB,mCAAmC,CAC5ClB,oBAAoB,CAACc,2BAA2B,CACjD;EAEH,IAAI,CAACG,UAAU,EAAE;IACf,MAAM,IAAIxC,gBAAgB,CAAC;MACzBuC,OAAO,EAAE;IACX,CAAC,CAAC;EACJ;EAEA,MAAMG,MAAM,GAAGF,UAAU,CAACE,MAAM;EAEhC,IAAI,CAACA,MAAM,EAAE;IACX,MAAM,IAAI1C,gBAAgB,CAAC;MACzBuC,OAAO,EACL;IACJ,CAAC,CAAC;EACJ;;EAEA;EACA,MAAMI,yBAAyB,GAAG;
|
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","signedNonceProof","c_nonce","containsCredentialDefinition","authorization_details","some","detail","credential_configuration_id","type","message","credential","credential_configurations_supported","format","credentialRequestFormBody","doctype","vct","proof","jwt","proof_type","tokenRequestSignedDPop","htm","htu","jti","v4","ath","access_token","credentialRes","method","headers","DPoP","Authorization","token_type","body","JSON","stringify","then","res","json","safeParse","catch","handleObtainCredentialError","success","reason","error","data","e","handle","code","CredentialRequestFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["credential/issuance/06-obtain-credential.ts"],"mappings":"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"}
|
@@ -18,12 +18,24 @@ export const AuthorizationResponse = z.object({
|
|
18
18
|
* Selects a public key (with `use = enc`) from the set of JWK keys
|
19
19
|
* offered by the Relying Party (RP) for encryption.
|
20
20
|
*
|
21
|
+
* Preference is given to EC keys (P-256 or P-384), followed by RSA keys,
|
22
|
+
* based on compatibility and common usage for encryption.
|
23
|
+
*
|
21
24
|
* @param rpJwkKeys - The array of JWKs retrieved from the RP entity configuration.
|
22
25
|
* @returns The first suitable public key found in the list.
|
23
26
|
* @throws {NoSuitableKeysFoundInEntityConfiguration} If no suitable encryption key is found.
|
24
27
|
*/
|
25
28
|
export const choosePublicKeyToEncrypt = rpJwkKeys => {
|
26
|
-
|
29
|
+
// First try to find RSA keys which are more commonly used for encryption
|
30
|
+
const encKeys = rpJwkKeys.filter(jwk => jwk.use === "enc");
|
31
|
+
|
32
|
+
// Prioritize EC keys first, then fall back to RSA keys if needed
|
33
|
+
// io-react-native-jwt support only EC keys with P-256 or P-384 curves
|
34
|
+
const ecEncKeys = encKeys.filter(jwk => jwk.kty === "EC" && (jwk.crv === "P-256" || jwk.crv === "P-384"));
|
35
|
+
const rsaEncKeys = encKeys.filter(jwk => jwk.kty === "RSA");
|
36
|
+
|
37
|
+
// Select the first available key based on priority
|
38
|
+
const encKey = ecEncKeys[0] || rsaEncKeys[0] || encKeys[0];
|
27
39
|
if (encKey) {
|
28
40
|
return encKey;
|
29
41
|
}
|
@@ -68,8 +80,6 @@ export const buildDirectPostJwtBody = async (jwkKeys, requestObject, payload, ge
|
|
68
80
|
state: requestObject.state,
|
69
81
|
...payload
|
70
82
|
});
|
71
|
-
|
72
|
-
// Choose a suitable RSA public key for encryption
|
73
83
|
const encPublicJwk = choosePublicKeyToEncrypt(jwkKeys);
|
74
84
|
// Encrypt the authorization payload
|
75
85
|
const {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["EncryptJwe","uuid","NoSuitableKeysFoundInEntityConfiguration","hasStatusOrThrow","z","Base64","AuthorizationResponse","object","status","string","optional","response_code","redirect_uri","choosePublicKeyToEncrypt","rpJwkKeys","
|
1
|
+
{"version":3,"names":["EncryptJwe","uuid","NoSuitableKeysFoundInEntityConfiguration","hasStatusOrThrow","z","Base64","AuthorizationResponse","object","status","string","optional","response_code","redirect_uri","choosePublicKeyToEncrypt","rpJwkKeys","encKeys","filter","jwk","use","ecEncKeys","kty","crv","rsaEncKeys","encKey","buildDirectPostBody","requestObject","payload","formUrlEncodedBody","URLSearchParams","state","Object","fromEntries","entries","map","_ref","key","value","Array","isArray","JSON","stringify","toString","buildDirectPostJwtBody","jwkKeys","generatedNonce","authzResponsePayload","encPublicJwk","client_metadata","encryptedResponse","alg","authorization_encrypted_response_alg","enc","authorization_encrypted_response_enc","kid","apv","encodeURI","nonce","apu","encrypt","formBody","response","sendAuthorizationResponse","presentationDefinitionId","remotePresentation","_presentations$","appFetch","fetch","arguments","length","undefined","presentations","vp_token","vpToken","presentation","descriptor_map","index","id","inputDescriptor","path","format","presentation_submission","v4","definition_id","requestBody","response_mode","authResponse","response_uri","method","headers","body","then","res","json","safeParse","success","data","sendAuthorizationErrorResponse","error","parse"],"sourceRoot":"../../../../src","sources":["credential/presentation/08-send-authorization-response.ts"],"mappings":"AAAA,SAASA,UAAU,QAAQ,6BAA6B;AACxD,OAAOC,IAAI,MAAM,mBAAmB;AAGpC,SAASC,wCAAwC,QAAQ,UAAU;AACnE,SAASC,gBAAgB,QAAkB,kBAAkB;AAM7D,OAAO,KAAKC,CAAC,MAAM,KAAK;AAExB,SAASC,MAAM,QAAQ,WAAW;AAGlC,OAAO,MAAMC,qBAAqB,GAAGF,CAAC,CAACG,MAAM,CAAC;EAC5CC,MAAM,EAAEJ,CAAC,CAACK,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EAC7BC,aAAa,EAAEP,CAAC,CACbK,MAAM,CAAC,CAAC,CAAC;AACd;AACA;AACA;AACA,8BAJc,CAKTC,QAAQ,CAAC,CAAC;EACbE,YAAY,EAAER,CAAC,CAACK,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC;AACpC,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,wBAAwB,GACnCC,SAAiC,IACzB;EACR;EACA,MAAMC,OAAO,GAAGD,SAAS,CAACE,MAAM,CAAEC,GAAG,IAAKA,GAAG,CAACC,GAAG,KAAK,KAAK,CAAC;;EAE5D;EACA;EACA,MAAMC,SAAS,GAAGJ,OAAO,CAACC,MAAM,CAC7BC,GAAG,IAAKA,GAAG,CAACG,GAAG,KAAK,IAAI,KAAKH,GAAG,CAACI,GAAG,KAAK,OAAO,IAAIJ,GAAG,CAACI,GAAG,KAAK,OAAO,CAC1E,CAAC;EACD,MAAMC,UAAU,GAAGP,OAAO,CAACC,MAAM,CAAEC,GAAG,IAAKA,GAAG,CAACG,GAAG,KAAK,KAAK,CAAC;;EAE7D;EACA,MAAMG,MAAM,GAAGJ,SAAS,CAAC,CAAC,CAAC,IAAIG,UAAU,CAAC,CAAC,CAAC,IAAIP,OAAO,CAAC,CAAC,CAAC;EAE1D,IAAIQ,MAAM,EAAE;IACV,OAAOA,MAAM;EACf;;EAEA;EACA,MAAM,IAAIrB,wCAAwC,CAChD,8CACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMsB,mBAAmB,GAAG,MAAAA,CACjCC,aAAiE,EACjEC,OAAuC,KACnB;EACpB,MAAMC,kBAAkB,GAAG,IAAIC,eAAe,CAAC;IAC7C,IAAIH,aAAa,CAACI,KAAK,GAAG;MAAEA,KAAK,EAAEJ,aAAa,CAACI;IAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,GAAGC,MAAM,CAACC,WAAW,CACnBD,MAAM,CAACE,OAAO,CAACN,OAAO,CAAC,CAACO,GAAG,CAACC,IAAA,IAAkB;MAAA,IAAjB,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAAF,IAAA;MACvC,OAAO,CACLC,GAAG,EACHE,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,IAAI,OAAOA,KAAK,KAAK,QAAQ,GAC7CG,IAAI,CAACC,SAAS,CAACJ,KAAK,CAAC,GACrBA,KAAK,CACV;IACH,CAAC,CACH;EACF,CAAC,CAAC;EAEF,OAAOT,kBAAkB,CAACc,QAAQ,CAAC,CAAC;AACtC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAG,MAAAA,CACpCC,OAA+B,EAC/BlB,aAAiE,EACjEC,OAAuC,EACvCkB,cAAuB,KACH;EACpB;EACA,MAAMC,oBAAoB,GAAGN,IAAI,CAACC,SAAS,CAAC;IAC1CX,KAAK,EAAEJ,aAAa,CAACI,KAAK;IAC1B,GAAGH;EACL,CAAC,CAAC;EAEF,MAAMoB,YAAY,GAAGjC,wBAAwB,CAAC8B,OAAO,CAAC;EACtD;EACA,MAAM;IAAEI;EAAgB,CAAC,GAAGtB,aAAa;EACzC,MAAMuB,iBAAiB,GAAG,MAAM,IAAIhD,UAAU,CAAC6C,oBAAoB,EAAE;IACnEI,GAAG,EACD,CAACF,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEG,oCAAoC,KAEnC,cAAc;IACnCC,GAAG,EACD,CAACJ,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEK,oCAAoC,KAE9B,eAAe;IACzCC,GAAG,EAAEP,YAAY,CAACO,GAAG;IACrB;IACAC,GAAG,EAAEjD,MAAM,CAACkD,SAAS,CAAC9B,aAAa,CAAC+B,KAAK,CAAC;IAC1C,IAAIZ,cAAc,GAAG;MAAEa,GAAG,EAAEpD,MAAM,CAACkD,SAAS,CAACX,cAAc;IAAE,CAAC,GAAG,CAAC,CAAC;EACrE,CAAC,CAAC,CAACc,OAAO,CAACZ,YAAY,CAAC;;EAExB;EACA,MAAMa,QAAQ,GAAG,IAAI/B,eAAe,CAAC;IACnCgC,QAAQ,EAAEZ,iBAAiB;IAC3B,IAAIvB,aAAa,CAACI,KAAK,GAAG;MAAEA,KAAK,EAAEJ,aAAa,CAACI;IAAM,CAAC,GAAG,CAAC,CAAC;EAC/D,CAAC,CAAC;EACF,OAAO8B,QAAQ,CAAClB,QAAQ,CAAC,CAAC;AAC5B,CAAC;;AAED;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMoB,yBAAoD,GAAG,eAAAA,CAClEpC,aAAa,EACbqC,wBAAwB,EACxBnB,OAAO,EACPoB,kBAAkB,EAEiB;EAAA,IAAAC,eAAA;EAAA,IADnC;IAAEC,QAAQ,GAAGC;EAAM,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEzB,MAAM;IAAEvB,cAAc;IAAE0B;EAAc,CAAC,GAAGP,kBAAkB;EAC5D;AACF;AACA;AACA;AACA;EACE,MAAMQ,QAAQ,GACZ,CAAAD,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEF,MAAM,MAAK,CAAC,IAAAJ,eAAA,GACvBM,aAAa,CAAC,CAAC,CAAC,cAAAN,eAAA,uBAAhBA,eAAA,CAAkBQ,OAAO,GACzBF,aAAa,CAACrC,GAAG,CAAEwC,YAAY,IAAKA,YAAY,CAACD,OAAO,CAAC;EAE/D,MAAME,cAAc,GAAGJ,aAAa,CAACrC,GAAG,CAAC,CAACwC,YAAY,EAAEE,KAAK,MAAM;IACjEC,EAAE,EAAEH,YAAY,CAACI,eAAe,CAACD,EAAE;IACnCE,IAAI,EAAE,CAAAR,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEF,MAAM,MAAK,CAAC,GAAI,GAAE,GAAI,KAAIO,KAAM,GAAE;IACvDI,MAAM,EAAEN,YAAY,CAACM;EACvB,CAAC,CAAC,CAAC;EAEH,MAAMC,uBAAuB,GAAG;IAC9BJ,EAAE,EAAE3E,IAAI,CAACgF,EAAE,CAAC,CAAC;IACbC,aAAa,EAAEpB,wBAAwB;IACvCY;EACF,CAAC;;EAED;EACA,MAAMS,WAAW,GACf1D,aAAa,CAAC2D,aAAa,KAAK,iBAAiB,GAC7C,MAAM1C,sBAAsB,CAC1BC,OAAO,EACPlB,aAAa,EACb;IACE8C,QAAQ;IACRS;EACF,CAAC,EACDpC,cACF,CAAC,GACD,MAAMpB,mBAAmB,CAACC,aAAa,EAAE;IACvC8C,QAAQ;IACRS,uBAAuB,EAAEA;EAC3B,CAAC,CAAC;;EAER;EACA,MAAMK,YAAY,GAAG,MAAMpB,QAAQ,CAACxC,aAAa,CAAC6D,YAAY,EAAE;IAC9DC,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE;MACP,cAAc,EAAE;IAClB,CAAC;IACDC,IAAI,EAAEN;EACR,CAAC,CAAC,CACCO,IAAI,CAACvF,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAC3BuF,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC,CACzBF,IAAI,CAACpF,qBAAqB,CAACuF,SAAS,CAAC;;EAExC;EACA,OAAOR,YAAY,CAACS,OAAO,GAAGT,YAAY,CAACU,IAAI,GAAG,CAAC,CAAC;AACtD,CAAC;;AAED;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,8BAA8D,GACzE,eAAAA,CACEvE,aAAa,EACbwE,KAAK,EACLtD,OAAO,EAE4B;EAAA,IADnC;IAAEsB,QAAQ,GAAGC;EAAM,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAEzB;EACA,MAAMgB,WAAW,GACf1D,aAAa,CAAC2D,aAAa,KAAK,iBAAiB,GAC7C,MAAM1C,sBAAsB,CAACC,OAAO,EAAElB,aAAa,EAAE;IAAEwE;EAAM,CAAC,CAAC,GAC/D,MAAMzE,mBAAmB,CAACC,aAAa,EAAE;IAAEwE;EAAM,CAAC,CAAC;EACzD;EACA,OAAO,MAAMhC,QAAQ,CAACxC,aAAa,CAAC6D,YAAY,EAAE;IAChDC,MAAM,EAAE,MAAM;IACdC,OAAO,EAAE;MACP,cAAc,EAAE;IAClB,CAAC;IACDC,IAAI,EAAEN;EACR,CAAC,CAAC,CACCO,IAAI,CAACvF,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAC3BuF,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC,CACzBF,IAAI,CAACpF,qBAAqB,CAAC4F,KAAK,CAAC;AACtC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"06-obtain-credential.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/06-obtain-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAoB,KAAK,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAQ5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAI7C,MAAM,MAAM,gBAAgB,GAAG,CAC7B,UAAU,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,EAC9C,WAAW,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,EAChD,QAAQ,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAC,UAAU,CAAC,EACjD,oBAAoB,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAC,sBAAsB,CAAC,EACzE,OAAO,EAAE;IACP,iBAAiB,EAAE,aAAa,CAAC;IACjC,uBAAuB,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC,KACE,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,eAAO,MAAM,gBAAgB,UACpB,MAAM,UACL,MAAM,YACJ,MAAM,OACX,aAAa,KACjB,QAAQ,MAAM,CAehB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,EAAE,
|
1
|
+
{"version":3,"file":"06-obtain-credential.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/06-obtain-credential.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAoB,KAAK,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAQ5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAI7C,MAAM,MAAM,gBAAgB,GAAG,CAC7B,UAAU,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,EAC9C,WAAW,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,EAChD,QAAQ,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAC,UAAU,CAAC,EACjD,oBAAoB,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAC,sBAAsB,CAAC,EACzE,OAAO,EAAE;IACP,iBAAiB,EAAE,aAAa,CAAC;IACjC,uBAAuB,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC,KACE,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,eAAO,MAAM,gBAAgB,UACpB,MAAM,UACL,MAAM,YACJ,MAAM,OACX,aAAa,KACjB,QAAQ,MAAM,CAehB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAyG9B,CAAC"}
|
@@ -22,6 +22,9 @@ export declare const AuthorizationResponse: z.ZodObject<{
|
|
22
22
|
* Selects a public key (with `use = enc`) from the set of JWK keys
|
23
23
|
* offered by the Relying Party (RP) for encryption.
|
24
24
|
*
|
25
|
+
* Preference is given to EC keys (P-256 or P-384), followed by RSA keys,
|
26
|
+
* based on compatibility and common usage for encryption.
|
27
|
+
*
|
25
28
|
* @param rpJwkKeys - The array of JWKs retrieved from the RP entity configuration.
|
26
29
|
* @returns The first suitable public key found in the list.
|
27
30
|
* @throws {NoSuitableKeysFoundInEntityConfiguration} If no suitable encryption key is found.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"08-send-authorization-response.d.ts","sourceRoot":"","sources":["../../../../src/credential/presentation/08-send-authorization-response.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE/E,OAAO,EAAoB,KAAK,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EACL,8BAA8B,EAC9B,aAAa,EACb,KAAK,kBAAkB,EACxB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAG3C,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC1E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAUhC,CAAC;AAEH
|
1
|
+
{"version":3,"file":"08-send-authorization-response.d.ts","sourceRoot":"","sources":["../../../../src/credential/presentation/08-send-authorization-response.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE/E,OAAO,EAAoB,KAAK,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EACL,8BAA8B,EAC9B,aAAa,EACb,KAAK,kBAAkB,EACxB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAG3C,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC1E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAUhC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,cACxB,IAAI,SAAS,CAAC,CAAC,MAAM,CAAC,KAChC,GAsBF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,kBACf,IAAI,4BAA4B,CAAC,CAAC,eAAe,CAAC,WACxD,8BAA8B,KACtC,QAAQ,MAAM,CAgBhB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,YACxB,IAAI,SAAS,CAAC,CAAC,MAAM,CAAC,iBAChB,IAAI,4BAA4B,CAAC,CAAC,eAAe,CAAC,WACxD,8BAA8B,mBACtB,MAAM,KACtB,QAAQ,MAAM,CA+BhB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,CACtC,aAAa,EAAE,GAAG,CAAC,4BAA4B,CAAC,CAAC,eAAe,CAAC,EACjE,wBAAwB,EAAE,MAAM,EAChC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAC/B,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC,KACE,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,EAAE,yBA6DvC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,8BAA8B,GAAG,CAC3C,aAAa,EAAE,GAAG,CAAC,4BAA4B,CAAC,CAAC,eAAe,CAAC,EACjE,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAC/B,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC,KACE,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC;;;;;;;;;GASG;AACH,eAAO,MAAM,8BAA8B,EAAE,8BAuB1C,CAAC"}
|
package/package.json
CHANGED
@@ -131,7 +131,9 @@ export const obtainCredential: ObtainCredential = async (
|
|
131
131
|
|
132
132
|
/** The credential request body */
|
133
133
|
const credentialRequestFormBody = {
|
134
|
-
|
134
|
+
...(format === "mso_mdoc"
|
135
|
+
? { doctype: credentialDefinition.credential_configuration_id }
|
136
|
+
: { vct: credentialDefinition.credential_configuration_id }),
|
135
137
|
format,
|
136
138
|
proof: {
|
137
139
|
jwt: signedNonceProof,
|
@@ -30,6 +30,9 @@ export const AuthorizationResponse = z.object({
|
|
30
30
|
* Selects a public key (with `use = enc`) from the set of JWK keys
|
31
31
|
* offered by the Relying Party (RP) for encryption.
|
32
32
|
*
|
33
|
+
* Preference is given to EC keys (P-256 or P-384), followed by RSA keys,
|
34
|
+
* based on compatibility and common usage for encryption.
|
35
|
+
*
|
33
36
|
* @param rpJwkKeys - The array of JWKs retrieved from the RP entity configuration.
|
34
37
|
* @returns The first suitable public key found in the list.
|
35
38
|
* @throws {NoSuitableKeysFoundInEntityConfiguration} If no suitable encryption key is found.
|
@@ -37,7 +40,18 @@ export const AuthorizationResponse = z.object({
|
|
37
40
|
export const choosePublicKeyToEncrypt = (
|
38
41
|
rpJwkKeys: Out<FetchJwks>["keys"]
|
39
42
|
): JWK => {
|
40
|
-
|
43
|
+
// First try to find RSA keys which are more commonly used for encryption
|
44
|
+
const encKeys = rpJwkKeys.filter((jwk) => jwk.use === "enc");
|
45
|
+
|
46
|
+
// Prioritize EC keys first, then fall back to RSA keys if needed
|
47
|
+
// io-react-native-jwt support only EC keys with P-256 or P-384 curves
|
48
|
+
const ecEncKeys = encKeys.filter(
|
49
|
+
(jwk) => jwk.kty === "EC" && (jwk.crv === "P-256" || jwk.crv === "P-384")
|
50
|
+
);
|
51
|
+
const rsaEncKeys = encKeys.filter((jwk) => jwk.kty === "RSA");
|
52
|
+
|
53
|
+
// Select the first available key based on priority
|
54
|
+
const encKey = ecEncKeys[0] || rsaEncKeys[0] || encKeys[0];
|
41
55
|
|
42
56
|
if (encKey) {
|
43
57
|
return encKey;
|
@@ -99,7 +113,6 @@ export const buildDirectPostJwtBody = async (
|
|
99
113
|
...payload,
|
100
114
|
});
|
101
115
|
|
102
|
-
// Choose a suitable RSA public key for encryption
|
103
116
|
const encPublicJwk = choosePublicKeyToEncrypt(jwkKeys);
|
104
117
|
// Encrypt the authorization payload
|
105
118
|
const { client_metadata } = requestObject;
|