@pagopa/io-react-native-wallet 0.7.4 → 0.9.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/README.md +49 -31
- package/lib/commonjs/credential/index.js +13 -0
- package/lib/commonjs/credential/index.js.map +1 -0
- package/lib/commonjs/credential/issuance/01-start-flow.js +2 -0
- package/lib/commonjs/credential/issuance/01-start-flow.js.map +1 -0
- package/lib/commonjs/credential/issuance/02-evaluate-issuer-trust.js +26 -0
- package/lib/commonjs/credential/issuance/02-evaluate-issuer-trust.js.map +1 -0
- package/lib/commonjs/credential/issuance/03-start-user-authorization.js +119 -0
- package/lib/commonjs/credential/issuance/03-start-user-authorization.js.map +1 -0
- package/lib/commonjs/credential/issuance/04-complete-user-authorization.js +6 -0
- package/lib/commonjs/credential/issuance/04-complete-user-authorization.js.map +1 -0
- package/lib/commonjs/credential/issuance/05-authorize-access.js +63 -0
- package/lib/commonjs/credential/issuance/05-authorize-access.js.map +1 -0
- package/lib/commonjs/credential/issuance/06-obtain-credential.js +128 -0
- package/lib/commonjs/credential/issuance/06-obtain-credential.js.map +1 -0
- package/lib/commonjs/credential/issuance/07-confirm-credential.js +6 -0
- package/lib/commonjs/credential/issuance/07-confirm-credential.js.map +1 -0
- package/lib/commonjs/credential/issuance/const.js +9 -0
- package/lib/commonjs/credential/issuance/const.js.map +1 -0
- package/lib/commonjs/credential/issuance/index.js +34 -0
- package/lib/commonjs/credential/issuance/index.js.map +1 -0
- package/lib/commonjs/credential/presentation/01-start-flow.js +55 -0
- package/lib/commonjs/credential/presentation/01-start-flow.js.map +1 -0
- package/lib/commonjs/credential/presentation/02-evaluate-rp-trust.js +32 -0
- package/lib/commonjs/credential/presentation/02-evaluate-rp-trust.js.map +1 -0
- package/lib/commonjs/credential/presentation/03-get-request-object.js +68 -0
- package/lib/commonjs/credential/presentation/03-get-request-object.js.map +1 -0
- package/lib/commonjs/credential/presentation/04-send-authorization-response.js +139 -0
- package/lib/commonjs/credential/presentation/04-send-authorization-response.js.map +1 -0
- package/lib/commonjs/credential/presentation/index.js +34 -0
- package/lib/commonjs/credential/presentation/index.js.map +1 -0
- package/lib/commonjs/{rp → credential/presentation}/types.js +17 -34
- package/lib/commonjs/credential/presentation/types.js.map +1 -0
- package/lib/commonjs/index.js +10 -61
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/pid/index.js +1 -3
- package/lib/commonjs/pid/index.js.map +1 -1
- package/lib/commonjs/sd-jwt/index.js +1 -1
- 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/trust/chain.js +32 -4
- package/lib/commonjs/trust/chain.js.map +1 -1
- package/lib/commonjs/trust/index.js +105 -20
- package/lib/commonjs/trust/index.js.map +1 -1
- package/lib/commonjs/trust/types.js +54 -35
- package/lib/commonjs/trust/types.js.map +1 -1
- package/lib/commonjs/utils/crypto.js +5 -18
- package/lib/commonjs/utils/crypto.js.map +1 -1
- package/lib/commonjs/utils/misc.js +23 -0
- package/lib/commonjs/utils/misc.js.map +1 -0
- package/lib/commonjs/utils/par.js +86 -0
- package/lib/commonjs/utils/par.js.map +1 -0
- package/lib/module/credential/index.js +4 -0
- package/lib/module/credential/index.js.map +1 -0
- package/lib/module/credential/issuance/01-start-flow.js +2 -0
- package/lib/module/credential/issuance/01-start-flow.js.map +1 -0
- package/lib/module/credential/issuance/02-evaluate-issuer-trust.js +19 -0
- package/lib/module/credential/issuance/02-evaluate-issuer-trust.js.map +1 -0
- package/lib/module/credential/issuance/03-start-user-authorization.js +109 -0
- package/lib/module/credential/issuance/03-start-user-authorization.js.map +1 -0
- package/lib/module/credential/issuance/04-complete-user-authorization.js +2 -0
- package/lib/module/credential/issuance/04-complete-user-authorization.js.map +1 -0
- package/lib/module/credential/issuance/05-authorize-access.js +55 -0
- package/lib/module/credential/issuance/05-authorize-access.js.map +1 -0
- package/lib/module/credential/issuance/06-obtain-credential.js +117 -0
- package/lib/module/credential/issuance/06-obtain-credential.js.map +1 -0
- package/lib/module/credential/issuance/07-confirm-credential.js +2 -0
- package/lib/module/credential/issuance/07-confirm-credential.js.map +1 -0
- package/lib/module/credential/issuance/const.js +2 -0
- package/lib/module/credential/issuance/const.js.map +1 -0
- package/lib/module/credential/issuance/index.js +6 -0
- package/lib/module/credential/issuance/index.js.map +1 -0
- package/lib/module/credential/presentation/01-start-flow.js +46 -0
- package/lib/module/credential/presentation/01-start-flow.js.map +1 -0
- package/lib/module/credential/presentation/02-evaluate-rp-trust.js +25 -0
- package/lib/module/credential/presentation/02-evaluate-rp-trust.js.map +1 -0
- package/lib/module/credential/presentation/03-get-request-object.js +60 -0
- package/lib/module/credential/presentation/03-get-request-object.js.map +1 -0
- package/lib/module/credential/presentation/04-send-authorization-response.js +128 -0
- package/lib/module/credential/presentation/04-send-authorization-response.js.map +1 -0
- package/lib/module/credential/presentation/index.js +6 -0
- package/lib/module/credential/presentation/index.js.map +1 -0
- package/lib/module/credential/presentation/types.js +21 -0
- package/lib/module/credential/presentation/types.js.map +1 -0
- package/lib/module/index.js +4 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/pid/index.js +1 -2
- package/lib/module/pid/index.js.map +1 -1
- package/lib/module/sd-jwt/index.js +1 -1
- 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/trust/chain.js +30 -3
- package/lib/module/trust/chain.js.map +1 -1
- package/lib/module/trust/index.js +99 -16
- package/lib/module/trust/index.js.map +1 -1
- package/lib/module/trust/types.js +50 -31
- package/lib/module/trust/types.js.map +1 -1
- package/lib/module/utils/crypto.js +2 -15
- package/lib/module/utils/crypto.js.map +1 -1
- package/lib/module/utils/misc.js +17 -0
- package/lib/module/utils/misc.js.map +1 -0
- package/lib/module/utils/par.js +74 -0
- package/lib/module/utils/par.js.map +1 -0
- package/lib/typescript/credential/index.d.ts +4 -0
- package/lib/typescript/credential/index.d.ts.map +1 -0
- package/lib/typescript/credential/issuance/01-start-flow.d.ts +11 -0
- package/lib/typescript/credential/issuance/01-start-flow.d.ts.map +1 -0
- package/lib/typescript/credential/issuance/02-evaluate-issuer-trust.d.ts +18 -0
- package/lib/typescript/credential/issuance/02-evaluate-issuer-trust.d.ts.map +1 -0
- package/lib/typescript/credential/issuance/03-start-user-authorization.d.ts +31 -0
- package/lib/typescript/credential/issuance/03-start-user-authorization.d.ts.map +1 -0
- package/lib/typescript/credential/issuance/04-complete-user-authorization.d.ts +16 -0
- package/lib/typescript/credential/issuance/04-complete-user-authorization.d.ts.map +1 -0
- package/lib/typescript/credential/issuance/05-authorize-access.d.ts +26 -0
- package/lib/typescript/credential/issuance/05-authorize-access.d.ts.map +1 -0
- package/lib/typescript/credential/issuance/06-obtain-credential.d.ts +32 -0
- package/lib/typescript/credential/issuance/06-obtain-credential.d.ts.map +1 -0
- package/lib/typescript/credential/issuance/07-confirm-credential.d.ts +11 -0
- package/lib/typescript/credential/issuance/07-confirm-credential.d.ts.map +1 -0
- package/lib/typescript/credential/issuance/const.d.ts +2 -0
- package/lib/typescript/credential/issuance/const.d.ts.map +1 -0
- package/lib/typescript/credential/issuance/index.d.ts +10 -0
- package/lib/typescript/credential/issuance/index.d.ts.map +1 -0
- package/lib/typescript/credential/presentation/01-start-flow.d.ts +20 -0
- package/lib/typescript/credential/presentation/01-start-flow.d.ts.map +1 -0
- package/lib/typescript/credential/presentation/02-evaluate-rp-trust.d.ts +18 -0
- package/lib/typescript/credential/presentation/02-evaluate-rp-trust.d.ts.map +1 -0
- package/lib/typescript/credential/presentation/03-get-request-object.d.ts +25 -0
- package/lib/typescript/credential/presentation/03-get-request-object.d.ts.map +1 -0
- package/lib/typescript/credential/presentation/04-send-authorization-response.d.ts +34 -0
- package/lib/typescript/credential/presentation/04-send-authorization-response.d.ts.map +1 -0
- package/lib/typescript/credential/presentation/index.d.ts +7 -0
- package/lib/typescript/credential/presentation/index.d.ts.map +1 -0
- package/lib/typescript/credential/presentation/types.d.ts +49 -0
- package/lib/typescript/credential/presentation/types.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +4 -5
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/pid/index.d.ts +1 -2
- package/lib/typescript/pid/index.d.ts.map +1 -1
- package/lib/typescript/sd-jwt/index.d.ts +2 -2
- package/lib/typescript/sd-jwt/index.d.ts.map +1 -1
- package/lib/typescript/sd-jwt/types.d.ts +5 -5
- package/lib/typescript/trust/chain.d.ts +12 -3
- package/lib/typescript/trust/chain.d.ts.map +1 -1
- package/lib/typescript/trust/index.d.ts +198 -24
- package/lib/typescript/trust/index.d.ts.map +1 -1
- package/lib/typescript/trust/types.d.ts +1299 -623
- package/lib/typescript/trust/types.d.ts.map +1 -1
- package/lib/typescript/utils/crypto.d.ts +1 -1
- package/lib/typescript/utils/crypto.d.ts.map +1 -1
- package/lib/typescript/utils/dpop.d.ts +2 -2
- package/lib/typescript/utils/misc.d.ts +8 -0
- package/lib/typescript/utils/misc.d.ts.map +1 -0
- package/lib/typescript/utils/par.d.ts +68 -0
- package/lib/typescript/utils/par.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/credential/index.ts +4 -0
- package/src/credential/issuance/01-start-flow.ts +10 -0
- package/src/credential/issuance/02-evaluate-issuer-trust.ts +31 -0
- package/src/credential/issuance/03-start-user-authorization.ts +138 -0
- package/src/credential/issuance/04-complete-user-authorization.ts +17 -0
- package/src/credential/issuance/05-authorize-access.ts +92 -0
- package/src/credential/issuance/06-obtain-credential.ts +179 -0
- package/src/credential/issuance/07-confirm-credential.ts +14 -0
- package/src/credential/issuance/const.ts +2 -0
- package/src/credential/issuance/index.ts +32 -0
- package/src/credential/presentation/01-start-flow.ts +51 -0
- package/src/credential/presentation/02-evaluate-rp-trust.ts +33 -0
- package/src/credential/presentation/03-get-request-object.ts +85 -0
- package/src/credential/presentation/04-send-authorization-response.ts +168 -0
- package/src/credential/presentation/index.ts +26 -0
- package/src/credential/presentation/types.ts +27 -0
- package/src/index.ts +7 -28
- package/src/pid/index.ts +1 -2
- package/src/sd-jwt/index.ts +2 -2
- package/src/sd-jwt/types.ts +1 -1
- package/src/trust/chain.ts +45 -3
- package/src/trust/index.ts +136 -19
- package/src/trust/types.ts +57 -35
- package/src/utils/crypto.ts +2 -20
- package/src/utils/misc.ts +23 -0
- package/src/utils/par.ts +103 -0
- package/lib/commonjs/pid/issuing.js +0 -276
- package/lib/commonjs/pid/issuing.js.map +0 -1
- package/lib/commonjs/rp/__test__/index.test.js +0 -172
- package/lib/commonjs/rp/__test__/index.test.js.map +0 -1
- package/lib/commonjs/rp/index.js +0 -239
- package/lib/commonjs/rp/index.js.map +0 -1
- package/lib/commonjs/rp/types.js.map +0 -1
- package/lib/module/pid/issuing.js +0 -266
- package/lib/module/pid/issuing.js.map +0 -1
- package/lib/module/rp/__test__/index.test.js +0 -168
- package/lib/module/rp/__test__/index.test.js.map +0 -1
- package/lib/module/rp/index.js +0 -228
- package/lib/module/rp/index.js.map +0 -1
- package/lib/module/rp/types.js +0 -36
- package/lib/module/rp/types.js.map +0 -1
- package/lib/typescript/pid/issuing.d.ts +0 -57
- package/lib/typescript/pid/issuing.d.ts.map +0 -1
- package/lib/typescript/rp/__test__/index.test.d.ts +0 -2
- package/lib/typescript/rp/__test__/index.test.d.ts.map +0 -1
- package/lib/typescript/rp/index.d.ts +0 -43
- package/lib/typescript/rp/index.d.ts.map +0 -1
- package/lib/typescript/rp/types.d.ts +0 -122
- package/lib/typescript/rp/types.d.ts.map +0 -1
- package/src/pid/issuing.ts +0 -405
- package/src/rp/__test__/index.test.ts +0 -250
- package/src/rp/index.ts +0 -287
- package/src/rp/types.ts +0 -42
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["UnixTime","JWK","z","TrustMark","object","id","string","trust_mark","CredentialDisplayMetadata","name","locale","logo","url","alt_text","background_color","text_color","SupportedCredentialMetadata","format","literal","cryptographic_binding_methods_supported","
|
|
1
|
+
{"version":3,"names":["UnixTime","JWK","z","TrustMark","object","id","string","trust_mark","RelyingPartyMetadata","application_type","optional","client_id","client_name","jwks","keys","array","contacts","CredentialDisplayMetadata","name","locale","logo","url","alt_text","background_color","text_color","CredentialDefinitionMetadata","type","credentialSubject","record","mandatory","boolean","display","SupportedCredentialMetadata","format","literal","cryptographic_binding_methods_supported","cryptographic_suites_supported","credential_definition","EntityStatement","header","typ","alg","kid","payload","iss","sub","trust_marks","iat","number","exp","EntityConfigurationHeader","FederationEntityMetadata","federation_fetch_endpoint","federation_list_endpoint","federation_resolve_endpoint","federation_trust_mark_status_endpoint","federation_trust_mark_list_endpoint","homepage_uri","policy_uri","logo_uri","passthrough","BaseEntityConfiguration","metadata","federation_entity","authority_hints","TrustAnchorEntityConfiguration","CredentialIssuerEntityConfiguration","and","openid_credential_issuer","credential_issuer","authorization_endpoint","token_endpoint","pushed_authorization_request_endpoint","dpop_signing_alg_values_supported","credential_endpoint","credentials_supported","wallet_relying_party","RelyingPartyEntityConfiguration","WalletProviderEntityConfiguration","wallet_provider","attested_security_context_values_supported","grant_types_supported","token_endpoint_auth_methods_supported","token_endpoint_auth_signing_alg_values_supported","EntityConfiguration","union","description"],"sourceRoot":"../../../src","sources":["trust/types.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,iBAAiB;AAC1C,SAASC,GAAG,QAAQ,cAAc;AAClC,OAAO,KAAKC,CAAC,MAAM,KAAK;AAExB,OAAO,MAAMC,SAAS,GAAGD,CAAC,CAACE,MAAM,CAAC;EAAEC,EAAE,EAAEH,CAAC,CAACI,MAAM,CAAC,CAAC;EAAEC,UAAU,EAAEL,CAAC,CAACI,MAAM,CAAC;AAAE,CAAC,CAAC;AAG7E,MAAME,oBAAoB,GAAGN,CAAC,CAACE,MAAM,CAAC;EACpCK,gBAAgB,EAAEP,CAAC,CAACI,MAAM,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;EACvCC,SAAS,EAAET,CAAC,CAACI,MAAM,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;EAChCE,WAAW,EAAEV,CAAC,CAACI,MAAM,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;EAClCG,IAAI,EAAEX,CAAC,CAACE,MAAM,CAAC;IAAEU,IAAI,EAAEZ,CAAC,CAACa,KAAK,CAACd,GAAG;EAAE,CAAC,CAAC;EACtCe,QAAQ,EAAEd,CAAC,CAACa,KAAK,CAACb,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC,CAACI,QAAQ,CAAC;AACzC,CAAC,CAAC;AACF;;AAEA;AACA;AAEA,MAAMO,yBAAyB,GAAGf,CAAC,CAACE,MAAM,CAAC;EACzCc,IAAI,EAAEhB,CAAC,CAACI,MAAM,CAAC,CAAC;EAChBa,MAAM,EAAEjB,CAAC,CAACI,MAAM,CAAC,CAAC;EAClBc,IAAI,EAAElB,CAAC,CAACE,MAAM,CAAC;IACbiB,GAAG,EAAEnB,CAAC,CAACI,MAAM,CAAC,CAAC;IACfgB,QAAQ,EAAEpB,CAAC,CAACI,MAAM,CAAC;EACrB,CAAC,CAAC;EACFiB,gBAAgB,EAAErB,CAAC,CAACI,MAAM,CAAC,CAAC;EAC5BkB,UAAU,EAAEtB,CAAC,CAACI,MAAM,CAAC;AACvB,CAAC,CAAC;AAKF,MAAMmB,4BAA4B,GAAGvB,CAAC,CAACE,MAAM,CAAC;EAC5CsB,IAAI,EAAExB,CAAC,CAACa,KAAK,CAACb,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC;EACzBqB,iBAAiB,EAAEzB,CAAC,CAAC0B,MAAM,CACzB1B,CAAC,CAACE,MAAM,CAAC;IACPyB,SAAS,EAAE3B,CAAC,CAAC4B,OAAO,CAAC,CAAC;IACtBC,OAAO,EAAE7B,CAAC,CAACa,KAAK,CAACb,CAAC,CAACE,MAAM,CAAC;MAAEc,IAAI,EAAEhB,CAAC,CAACI,MAAM,CAAC,CAAC;MAAEa,MAAM,EAAEjB,CAAC,CAACI,MAAM,CAAC;IAAE,CAAC,CAAC;EACrE,CAAC,CACH;AACF,CAAC,CAAC;;AAEF;;AAEA,MAAM0B,2BAA2B,GAAG9B,CAAC,CAACE,MAAM,CAAC;EAC3CC,EAAE,EAAEH,CAAC,CAACI,MAAM,CAAC,CAAC;EACd2B,MAAM,EAAE/B,CAAC,CAACgC,OAAO,CAAC,WAAW,CAAC;EAC9BC,uCAAuC,EAAEjC,CAAC,CAACa,KAAK,CAACb,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC;EAC5D8B,8BAA8B,EAAElC,CAAC,CAACa,KAAK,CAACb,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC;EACnDyB,OAAO,EAAE7B,CAAC,CAACa,KAAK,CAACE,yBAAyB,CAAC;EAC3CoB,qBAAqB,EAAEZ;AACzB,CAAC,CAAC;AAGF,OAAO,MAAMa,eAAe,GAAGpC,CAAC,CAACE,MAAM,CAAC;EACtCmC,MAAM,EAAErC,CAAC,CAACE,MAAM,CAAC;IACfoC,GAAG,EAAEtC,CAAC,CAACgC,OAAO,CAAC,sBAAsB,CAAC;IACtCO,GAAG,EAAEvC,CAAC,CAACI,MAAM,CAAC,CAAC;IACfoC,GAAG,EAAExC,CAAC,CAACI,MAAM,CAAC;EAChB,CAAC,CAAC;EACFqC,OAAO,EAAEzC,CAAC,CAACE,MAAM,CAAC;IAChBwC,GAAG,EAAE1C,CAAC,CAACI,MAAM,CAAC,CAAC;IACfuC,GAAG,EAAE3C,CAAC,CAACI,MAAM,CAAC,CAAC;IACfO,IAAI,EAAEX,CAAC,CAACE,MAAM,CAAC;MAAEU,IAAI,EAAEZ,CAAC,CAACa,KAAK,CAACd,GAAG;IAAE,CAAC,CAAC;IACtC6C,WAAW,EAAE5C,CAAC,CAACa,KAAK,CAACZ,SAAS,CAAC;IAC/B4C,GAAG,EAAE7C,CAAC,CAAC8C,MAAM,CAAC,CAAC;IACfC,GAAG,EAAE/C,CAAC,CAAC8C,MAAM,CAAC;EAChB,CAAC;AACH,CAAC,CAAC;AAKF,OAAO,MAAME,yBAAyB,GAAGhD,CAAC,CAACE,MAAM,CAAC;EAChDoC,GAAG,EAAEtC,CAAC,CAACgC,OAAO,CAAC,sBAAsB,CAAC;EACtCO,GAAG,EAAEvC,CAAC,CAACI,MAAM,CAAC,CAAC;EACfoC,GAAG,EAAExC,CAAC,CAACI,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM6C,wBAAwB,GAAGjD,CAAC,CAC/BE,MAAM,CAAC;EACNgD,yBAAyB,EAAElD,CAAC,CAACI,MAAM,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;EAChD2C,wBAAwB,EAAEnD,CAAC,CAACI,MAAM,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;EAC/C4C,2BAA2B,EAAEpD,CAAC,CAACI,MAAM,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;EAClD6C,qCAAqC,EAAErD,CAAC,CAACI,MAAM,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;EAC5D8C,mCAAmC,EAAEtD,CAAC,CAACI,MAAM,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;EAC1D+C,YAAY,EAAEvD,CAAC,CAACI,MAAM,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;EACnCgD,UAAU,EAAExD,CAAC,CAACI,MAAM,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;EACjCiD,QAAQ,EAAEzD,CAAC,CAACI,MAAM,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;EAC/BM,QAAQ,EAAEd,CAAC,CAACa,KAAK,CAACb,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC,CAACI,QAAQ,CAAC;AACzC,CAAC,CAAC,CACDkD,WAAW,CAAC,CAAC;;AAEhB;AACA,MAAMC,uBAAuB,GAAG3D,CAAC,CAACE,MAAM,CAAC;EACvCmC,MAAM,EAAEW,yBAAyB;EACjCP,OAAO,EAAEzC,CAAC,CACPE,MAAM,CAAC;IACN6C,GAAG,EAAEjD,QAAQ;IACb+C,GAAG,EAAE/C,QAAQ;IACb4C,GAAG,EAAE1C,CAAC,CAACI,MAAM,CAAC,CAAC;IACfuC,GAAG,EAAE3C,CAAC,CAACI,MAAM,CAAC,CAAC;IACfO,IAAI,EAAEX,CAAC,CAACE,MAAM,CAAC;MACbU,IAAI,EAAEZ,CAAC,CAACa,KAAK,CAACd,GAAG;IACnB,CAAC,CAAC;IACF6D,QAAQ,EAAE5D,CAAC,CACRE,MAAM,CAAC;MACN2D,iBAAiB,EAAEZ;IACrB,CAAC,CAAC,CACDS,WAAW,CAAC,CAAC;IAChBI,eAAe,EAAE9D,CAAC,CAACa,KAAK,CAACb,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC,CAACI,QAAQ,CAAC;EAChD,CAAC,CAAC,CACDkD,WAAW,CAAC;AACjB,CAAC,CAAC;;AAEF;;AAIA,OAAO,MAAMK,8BAA8B,GAAGJ,uBAAuB;;AAErE;;AAIA,OAAO,MAAMK,mCAAmC,GAAGL,uBAAuB,CAACM,GAAG,CAC5EjE,CAAC,CAACE,MAAM,CAAC;EACPuC,OAAO,EAAEzC,CAAC,CAACE,MAAM,CAAC;IAChBS,IAAI,EAAEX,CAAC,CAACE,MAAM,CAAC;MAAEU,IAAI,EAAEZ,CAAC,CAACa,KAAK,CAACd,GAAG;IAAE,CAAC,CAAC;IACtC6D,QAAQ,EAAE5D,CAAC,CAACE,MAAM,CAAC;MACjBgE,wBAAwB,EAAElE,CAAC,CAACE,MAAM,CAAC;QACjCiE,iBAAiB,EAAEnE,CAAC,CAACI,MAAM,CAAC,CAAC;QAC7BgE,sBAAsB,EAAEpE,CAAC,CAACI,MAAM,CAAC,CAAC;QAClCiE,cAAc,EAAErE,CAAC,CAACI,MAAM,CAAC,CAAC;QAC1BkE,qCAAqC,EAAEtE,CAAC,CAACI,MAAM,CAAC,CAAC;QACjDmE,iCAAiC,EAAEvE,CAAC,CAACa,KAAK,CAACb,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC;QACtDoE,mBAAmB,EAAExE,CAAC,CAACI,MAAM,CAAC,CAAC;QAC/BqE,qBAAqB,EAAEzE,CAAC,CAACa,KAAK,CAACiB,2BAA2B,CAAC;QAC3DnB,IAAI,EAAEX,CAAC,CAACE,MAAM,CAAC;UAAEU,IAAI,EAAEZ,CAAC,CAACa,KAAK,CAACd,GAAG;QAAE,CAAC;MACvC,CAAC,CAAC;MACF;AACR;AACA;MACQ2E,oBAAoB,EAAEpE,oBAAoB,CAACE,QAAQ,CAAC;IACtD,CAAC;EACH,CAAC;AACH,CAAC,CACH,CAAC;;AAED;;AAIA,OAAO,MAAMmE,+BAA+B,GAAGhB,uBAAuB,CAACM,GAAG,CACxEjE,CAAC,CAACE,MAAM,CAAC;EACPuC,OAAO,EAAEzC,CAAC,CAACE,MAAM,CAAC;IAChB0D,QAAQ,EAAE5D,CAAC,CAACE,MAAM,CAAC;MACjBwE,oBAAoB,EAAEpE;IACxB,CAAC;EACH,CAAC;AACH,CAAC,CACH,CAAC;;AAED;;AAIA,OAAO,MAAMsE,iCAAiC,GAAGjB,uBAAuB,CAACM,GAAG,CAC1EjE,CAAC,CAACE,MAAM,CAAC;EACPuC,OAAO,EAAEzC,CAAC,CAACE,MAAM,CAAC;IAChB0D,QAAQ,EAAE5D,CAAC,CAACE,MAAM,CAAC;MACjB2E,eAAe,EAAE7E,CAAC,CACfE,MAAM,CAAC;QACNmE,cAAc,EAAErE,CAAC,CAACI,MAAM,CAAC,CAAC;QAC1B0E,0CAA0C,EAAE9E,CAAC,CAC1Ca,KAAK,CAACb,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC,CACjBI,QAAQ,CAAC,CAAC;QACbuE,qBAAqB,EAAE/E,CAAC,CAACa,KAAK,CAACb,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC;QAC1C4E,qCAAqC,EAAEhF,CAAC,CAACa,KAAK,CAACb,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC;QAC1D6E,gDAAgD,EAAEjF,CAAC,CAACa,KAAK,CACvDb,CAAC,CAACI,MAAM,CAAC,CACX,CAAC;QACDO,IAAI,EAAEX,CAAC,CAACE,MAAM,CAAC;UAAEU,IAAI,EAAEZ,CAAC,CAACa,KAAK,CAACd,GAAG;QAAE,CAAC;MACvC,CAAC,CAAC,CACD2D,WAAW,CAAC;IACjB,CAAC;EACH,CAAC;AACH,CAAC,CACH,CAAC;;AAED;;AAEA,OAAO,MAAMwB,mBAAmB,GAAGlF,CAAC,CAACmF,KAAK,CACxC,CACEP,iCAAiC,EACjCZ,mCAAmC,EACnCD,8BAA8B,EAC9BY,+BAA+B,CAChC,EACD;EACES,WAAW,EAAE;AACf,CACF,CAAC"}
|
|
@@ -39,19 +39,6 @@ export const createCryptoContextFor = keytag => {
|
|
|
39
39
|
};
|
|
40
40
|
};
|
|
41
41
|
|
|
42
|
-
// Wraps finally for async expressions
|
|
43
|
-
const asyncFinally = (fn, onFinally) => async function () {
|
|
44
|
-
try {
|
|
45
|
-
return await fn(...arguments);
|
|
46
|
-
// ^^^^^ return await is usually to be avoided,
|
|
47
|
-
// in this case is needed for the finally{} statement to be executed correctly
|
|
48
|
-
} catch (error) {
|
|
49
|
-
throw error;
|
|
50
|
-
} finally {
|
|
51
|
-
await onFinally();
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
|
|
55
42
|
/**
|
|
56
43
|
* Executes the input function injecting an ephemeral crypto context.
|
|
57
44
|
* An ephemeral crypto context is a context which is bound to a key
|
|
@@ -60,11 +47,11 @@ const asyncFinally = (fn, onFinally) => async function () {
|
|
|
60
47
|
* @param fn The procedure to be executed
|
|
61
48
|
* @returns The returned value of the input procedure.
|
|
62
49
|
*/
|
|
63
|
-
export const
|
|
50
|
+
export const withEphemeralKey = async fn => {
|
|
64
51
|
// Use an ephemeral key to be destroyed after use
|
|
65
52
|
const keytag = `ephemeral-${uuid.v4()}`;
|
|
66
53
|
await generate(keytag);
|
|
67
54
|
const ephemeralContext = createCryptoContextFor(keytag);
|
|
68
|
-
return
|
|
55
|
+
return fn(ephemeralContext).finally(() => deleteKey(keytag));
|
|
69
56
|
};
|
|
70
57
|
//# sourceMappingURL=crypto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getPublicKey","sign","generate","deleteKey","uuid","thumbprint","fixBase64EncodingOnKey","createCryptoContextFor","keytag","then","jwk","kid","getSignature","value","
|
|
1
|
+
{"version":3,"names":["getPublicKey","sign","generate","deleteKey","uuid","thumbprint","fixBase64EncodingOnKey","createCryptoContextFor","keytag","then","jwk","kid","getSignature","value","withEphemeralKey","fn","v4","ephemeralContext","finally"],"sourceRoot":"../../../src","sources":["utils/crypto.ts"],"mappings":"AAAA,SACEA,YAAY,EACZC,IAAI,EACJC,QAAQ,EACRC,SAAS,QACJ,gCAAgC;AACvC,OAAOC,IAAI,MAAM,mBAAmB;AACpC,SAASC,UAAU,QAA4B,6BAA6B;AAC5E,SAASC,sBAAsB,QAAQ,OAAO;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAIC,MAAc,IAAoB;EACvE,OAAO;IACL;AACJ;AACA;AACA;AACA;IACI,MAAMR,YAAYA,CAAA,EAAG;MACnB,OAAOA,YAAY,CAACQ,MAAM,CAAC,CACxBC,IAAI,CAACH,sBAAsB,CAAC,CAC5BG,IAAI,CAAC,MAAOC,GAAG,KAAM;QACpB,GAAGA,GAAG;QACN;QACA;QACA;QACA;QACAC,GAAG,EAAE,MAAMN,UAAU,CAACK,GAAG;MAC3B,CAAC,CAAC,CAAC;IACP,CAAC;IACD;AACJ;AACA;AACA;AACA;AACA;IACI,MAAME,YAAYA,CAACC,KAAa,EAAE;MAChC,OAAOZ,IAAI,CAACY,KAAK,EAAEL,MAAM,CAAC;IAC5B;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMM,gBAAgB,GAAG,MAC9BC,EAAmD,IACpC;EACf;EACA,MAAMP,MAAM,GAAI,aAAYJ,IAAI,CAACY,EAAE,CAAC,CAAE,EAAC;EACvC,MAAMd,QAAQ,CAACM,MAAM,CAAC;EACtB,MAAMS,gBAAgB,GAAGV,sBAAsB,CAACC,MAAM,CAAC;EACvD,OAAOO,EAAE,CAACE,gBAAgB,CAAC,CAACC,OAAO,CAAC,MAAMf,SAAS,CAACK,MAAM,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IoWalletError } from "./errors";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Check if a response is in the expected status, other
|
|
5
|
+
* @param status The expected status
|
|
6
|
+
* @returns The given response object
|
|
7
|
+
*/
|
|
8
|
+
export const hasStatus = status => res => {
|
|
9
|
+
if (res.status !== status) {
|
|
10
|
+
throw new IoWalletError(`Http request failed. Expected ${status}, got ${res.status}, url: ${res.url}`);
|
|
11
|
+
}
|
|
12
|
+
return res;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
// extract a type from an async function output
|
|
16
|
+
// helpful to bind the input of a function to the output of another
|
|
17
|
+
//# sourceMappingURL=misc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["IoWalletError","hasStatus","status","res","url"],"sourceRoot":"../../../src","sources":["utils/misc.ts"],"mappings":"AAAA,SAASA,aAAa,QAAQ,UAAU;;AAExC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,SAAS,GACnBC,MAAc,IACdC,GAAa,IAAe;EAC3B,IAAIA,GAAG,CAACD,MAAM,KAAKA,MAAM,EAAE;IACzB,MAAM,IAAIF,aAAa,CACpB,iCAAgCE,MAAO,SAAQC,GAAG,CAACD,MAAO,UAASC,GAAG,CAACC,GAAI,EAC9E,CAAC;EACH;EACA,OAAOD,GAAG;AACZ,CAAC;;AAEH;AACA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { sha256ToBase64, SignJWT } from "@pagopa/io-react-native-jwt";
|
|
2
|
+
import uuid from "react-native-uuid";
|
|
3
|
+
import * as z from "zod";
|
|
4
|
+
import * as WalletInstanceAttestation from "../wallet-instance-attestation";
|
|
5
|
+
import { hasStatus } from "./misc";
|
|
6
|
+
export const AuthorizationDetail = z.object({
|
|
7
|
+
credential_definition: z.object({
|
|
8
|
+
type: z.string()
|
|
9
|
+
}),
|
|
10
|
+
format: z.literal("vc+sd-jwt"),
|
|
11
|
+
type: z.literal("openid_credential")
|
|
12
|
+
});
|
|
13
|
+
export const AuthorizationDetails = z.array(AuthorizationDetail);
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Make a PAR request to the issuer and return the response url
|
|
17
|
+
*/
|
|
18
|
+
export const makeParRequest = _ref => {
|
|
19
|
+
let {
|
|
20
|
+
wiaCryptoContext,
|
|
21
|
+
appFetch = fetch
|
|
22
|
+
} = _ref;
|
|
23
|
+
return async (clientId, codeVerifier, walletProviderBaseUrl, parEndpoint, walletInstanceAttestation, authorizationDetails, assertionType) => {
|
|
24
|
+
const wiaPublicKey = await wiaCryptoContext.getPublicKey();
|
|
25
|
+
const parUrl = new URL(parEndpoint);
|
|
26
|
+
const aud = `${parUrl.protocol}//${parUrl.hostname}`;
|
|
27
|
+
const iss = WalletInstanceAttestation.decode(walletInstanceAttestation).payload.cnf.jwk.kid;
|
|
28
|
+
|
|
29
|
+
/** A code challenge is provided so that the PAR is bound
|
|
30
|
+
to the subsequent authorization code request
|
|
31
|
+
@see https://datatracker.ietf.org/doc/html/rfc9126#name-request */
|
|
32
|
+
const codeChallengeMethod = "s256";
|
|
33
|
+
const codeChallenge = await sha256ToBase64(codeVerifier);
|
|
34
|
+
|
|
35
|
+
/** The PAR request token is signed used the Wallet Instance Attestation key.
|
|
36
|
+
The signature can be verified by reading the public key from the key set shippet
|
|
37
|
+
with the it will ship the Wallet Instance Attestation.
|
|
38
|
+
The key is matched by its kid */
|
|
39
|
+
const signedJwtForPar = await new SignJWT(wiaCryptoContext).setProtectedHeader({
|
|
40
|
+
kid: wiaPublicKey.kid
|
|
41
|
+
}).setPayload({
|
|
42
|
+
iss,
|
|
43
|
+
aud,
|
|
44
|
+
jti: `${uuid.v4()}`,
|
|
45
|
+
client_assertion_type: assertionType,
|
|
46
|
+
authorization_details: authorizationDetails,
|
|
47
|
+
response_type: "code",
|
|
48
|
+
redirect_uri: walletProviderBaseUrl,
|
|
49
|
+
state: `${uuid.v4()}`,
|
|
50
|
+
client_id: clientId,
|
|
51
|
+
code_challenge_method: codeChallengeMethod,
|
|
52
|
+
code_challenge: codeChallenge
|
|
53
|
+
}).setIssuedAt().setExpirationTime("1h").sign();
|
|
54
|
+
|
|
55
|
+
/** The request body for the Pushed Authorization Request */
|
|
56
|
+
var formBody = new URLSearchParams({
|
|
57
|
+
response_type: "code",
|
|
58
|
+
client_id: clientId,
|
|
59
|
+
code_challenge: codeChallenge,
|
|
60
|
+
code_challenge_method: "S256",
|
|
61
|
+
client_assertion_type: assertionType,
|
|
62
|
+
client_assertion: walletInstanceAttestation,
|
|
63
|
+
request: signedJwtForPar
|
|
64
|
+
});
|
|
65
|
+
return await appFetch(parEndpoint, {
|
|
66
|
+
method: "POST",
|
|
67
|
+
headers: {
|
|
68
|
+
"Content-Type": "application/x-www-form-urlencoded"
|
|
69
|
+
},
|
|
70
|
+
body: formBody.toString()
|
|
71
|
+
}).then(hasStatus(201)).then(res => res.json()).then(result => result.request_uri);
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=par.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["sha256ToBase64","SignJWT","uuid","z","WalletInstanceAttestation","hasStatus","AuthorizationDetail","object","credential_definition","type","string","format","literal","AuthorizationDetails","array","makeParRequest","_ref","wiaCryptoContext","appFetch","fetch","clientId","codeVerifier","walletProviderBaseUrl","parEndpoint","walletInstanceAttestation","authorizationDetails","assertionType","wiaPublicKey","getPublicKey","parUrl","URL","aud","protocol","hostname","iss","decode","payload","cnf","jwk","kid","codeChallengeMethod","codeChallenge","signedJwtForPar","setProtectedHeader","setPayload","jti","v4","client_assertion_type","authorization_details","response_type","redirect_uri","state","client_id","code_challenge_method","code_challenge","setIssuedAt","setExpirationTime","sign","formBody","URLSearchParams","client_assertion","request","method","headers","body","toString","then","res","json","result","request_uri"],"sourceRoot":"../../../src","sources":["utils/par.ts"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/credential/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The beginning of the issuing flow.
|
|
3
|
+
* To be implemented accordind to the user touchpoint
|
|
4
|
+
*
|
|
5
|
+
* @returns The type of the Credential to be issued and the url of the Issuer
|
|
6
|
+
*/
|
|
7
|
+
export type StartFlow = () => Promise<{
|
|
8
|
+
issuerUrl: string;
|
|
9
|
+
credentialType: string;
|
|
10
|
+
}>;
|
|
11
|
+
//# sourceMappingURL=01-start-flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"01-start-flow.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/01-start-flow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CredentialIssuerEntityConfiguration } from "../../trust/types";
|
|
2
|
+
import type { StartFlow } from "./01-start-flow";
|
|
3
|
+
import type { Out } from "../../utils/misc";
|
|
4
|
+
export type EvaluateIssuerTrust = (issuerUrl: Out<StartFlow>["issuerUrl"], context?: {
|
|
5
|
+
appFetch?: GlobalFetch["fetch"];
|
|
6
|
+
}) => Promise<{
|
|
7
|
+
issuerConf: CredentialIssuerEntityConfiguration["payload"]["metadata"];
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* The Issuer trust evaluation phase.
|
|
11
|
+
* Fetch the Issuer's configuration and verify trust.
|
|
12
|
+
*
|
|
13
|
+
* @param issuerUrl The base url of the Issuer
|
|
14
|
+
* @param context.appFetch (optional) fetch api implementation. Default: built-in fetch
|
|
15
|
+
* @returns The Issuer's configuration
|
|
16
|
+
*/
|
|
17
|
+
export declare const evaluateIssuerTrust: EvaluateIssuerTrust;
|
|
18
|
+
//# sourceMappingURL=02-evaluate-issuer-trust.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"02-evaluate-issuer-trust.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/02-evaluate-issuer-trust.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mCAAmC,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,MAAM,mBAAmB,GAAG,CAChC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,EACtC,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC,KACE,OAAO,CAAC;IACX,UAAU,EAAE,mCAAmC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;CACxE,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,mBAQjC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { CryptoContext } from "@pagopa/io-react-native-jwt";
|
|
2
|
+
import { type Out } from "../../utils/misc";
|
|
3
|
+
import type { StartFlow } from "./01-start-flow";
|
|
4
|
+
import type { EvaluateIssuerTrust } from "./02-evaluate-issuer-trust";
|
|
5
|
+
export type StartUserAuthorization = (issuerConf: Out<EvaluateIssuerTrust>["issuerConf"], credentialType: Out<StartFlow>["credentialType"], context: {
|
|
6
|
+
wiaCryptoContext: CryptoContext;
|
|
7
|
+
walletInstanceAttestation: string;
|
|
8
|
+
walletProviderBaseUrl: string;
|
|
9
|
+
additionalParams?: Record<string, string>;
|
|
10
|
+
appFetch?: GlobalFetch["fetch"];
|
|
11
|
+
}) => Promise<{
|
|
12
|
+
requestUri: string;
|
|
13
|
+
clientId: string;
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Start the User authorization phase.
|
|
17
|
+
* Perform the Pushed Authorization Request as defined in OAuth 2.0 protocol.
|
|
18
|
+
*
|
|
19
|
+
* @param issuerConf The Issuer configuration
|
|
20
|
+
* @param credentialType The type of the credential to be requested
|
|
21
|
+
* @param context.wiaCryptoContext The context to access the key associated with the Wallet Instance Attestation
|
|
22
|
+
* @param context.walletInstanceAttestation The Wallet Instance Attestation token
|
|
23
|
+
* @param context.walletProviderBaseUrl The base url of the Wallet Provider
|
|
24
|
+
* @param context.additionalParams Hash set of parameters to be passed to the authorization endpoint
|
|
25
|
+
* (used as a temporary fix until we have a proper User identity in the PID token provider)
|
|
26
|
+
* TODO: [SIW-630]
|
|
27
|
+
* @param context.appFetch (optional) fetch api implementation. Default: built-in fetch
|
|
28
|
+
* @returns The request uri to continue the authorization to
|
|
29
|
+
*/
|
|
30
|
+
export declare const startUserAuthorization: StartUserAuthorization;
|
|
31
|
+
//# sourceMappingURL=03-start-user-authorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"03-start-user-authorization.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/03-start-user-authorization.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EAAa,KAAK,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AA4DtE,MAAM,MAAM,sBAAsB,GAAG,CACnC,UAAU,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,EAClD,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,EAChD,OAAO,EAAE;IACP,gBAAgB,EAAE,aAAa,CAAC;IAChC,yBAAyB,EAAE,MAAM,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC,KACE,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,EAAE,sBA2CpC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Out } from "../../utils/misc";
|
|
2
|
+
import type { StartUserAuthorization } from "./03-start-user-authorization";
|
|
3
|
+
/**
|
|
4
|
+
* The interface of the phase to complete User authorization.
|
|
5
|
+
* It may be implemented as a Credential presentation
|
|
6
|
+
* or with a strong User identification
|
|
7
|
+
*
|
|
8
|
+
* @param requestUri The url to reach to complete the user authorization.
|
|
9
|
+
* @param cliendId Identifies the current client across all the requests of the issuing flow
|
|
10
|
+
*
|
|
11
|
+
* @returns the access code to use to request the credental
|
|
12
|
+
*/
|
|
13
|
+
export type CompleteUserAuthorization = (requestUri: Out<StartUserAuthorization>["requestUri"], clientId: Out<StartUserAuthorization>["clientId"]) => Promise<{
|
|
14
|
+
code: string;
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=04-complete-user-authorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"04-complete-user-authorization.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/04-complete-user-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;;;;;;;GASG;AACH,MAAM,MAAM,yBAAyB,GAAG,CACtC,UAAU,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAC,YAAY,CAAC,EACrD,QAAQ,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAC,UAAU,CAAC,KAC9C,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { StartUserAuthorization } from "./03-start-user-authorization";
|
|
2
|
+
import { type Out } from "../../utils/misc";
|
|
3
|
+
import type { EvaluateIssuerTrust } from "./02-evaluate-issuer-trust";
|
|
4
|
+
import type { CompleteUserAuthorization } from "./04-complete-user-authorization";
|
|
5
|
+
export type AuthorizeAccess = (issuerConf: Out<EvaluateIssuerTrust>["issuerConf"], code: Out<CompleteUserAuthorization>["code"], clientId: Out<StartUserAuthorization>["clientId"], context: {
|
|
6
|
+
walletInstanceAttestation: string;
|
|
7
|
+
walletProviderBaseUrl: string;
|
|
8
|
+
appFetch?: GlobalFetch["fetch"];
|
|
9
|
+
}) => Promise<{
|
|
10
|
+
accessToken: string;
|
|
11
|
+
nonce: string;
|
|
12
|
+
clientId: string;
|
|
13
|
+
}>;
|
|
14
|
+
/**
|
|
15
|
+
* Obtain the access token to finally request the credential
|
|
16
|
+
*
|
|
17
|
+
* @param issuerConf The Issuer configuration
|
|
18
|
+
* @param code The access code from the User authorization phase
|
|
19
|
+
* @param clientId Identifies the current client across all the requests of the issuing flow
|
|
20
|
+
* @param context.walletInstanceAttestation The Wallet Instance Attestation token
|
|
21
|
+
* @param context.walletProviderBaseUrl The base url of the Wallet Provider
|
|
22
|
+
* @param context.appFetch (optional) fetch api implementation. Default: built-in fetch
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
25
|
+
export declare const authorizeAccess: AuthorizeAccess;
|
|
26
|
+
//# sourceMappingURL=05-authorize-access.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"05-authorize-access.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/05-authorize-access.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAa,KAAK,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAElF,MAAM,MAAM,eAAe,GAAG,CAC5B,UAAU,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,EAClD,IAAI,EAAE,GAAG,CAAC,yBAAyB,CAAC,CAAC,MAAM,CAAC,EAC5C,QAAQ,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAC,UAAU,CAAC,EACjD,OAAO,EAAE;IACP,yBAAyB,EAAE,MAAM,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC,KACE,OAAO,CAAC;IAEX,WAAW,EAAE,MAAM,CAAC;IAEpB,KAAK,EAAE,MAAM,CAAC;IAEd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,EAAE,eAqD7B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type CryptoContext } from "@pagopa/io-react-native-jwt";
|
|
2
|
+
import type { StartFlow } from "./01-start-flow";
|
|
3
|
+
import { type Out } from "../../utils/misc";
|
|
4
|
+
import type { EvaluateIssuerTrust } from "./02-evaluate-issuer-trust";
|
|
5
|
+
import type { AuthorizeAccess } from "./05-authorize-access";
|
|
6
|
+
/**
|
|
7
|
+
* Return the signed jwt for nonce proof of possession
|
|
8
|
+
*/
|
|
9
|
+
export declare const createNonceProof: (nonce: string, issuer: string, audience: string, ctx: CryptoContext) => Promise<string>;
|
|
10
|
+
export type ObtainCredential = (issuerConf: Out<EvaluateIssuerTrust>["issuerConf"], accessToken: Out<AuthorizeAccess>["accessToken"], nonce: Out<AuthorizeAccess>["nonce"], clientId: Out<AuthorizeAccess>["clientId"], credentialType: Out<StartFlow>["credentialType"], context: {
|
|
11
|
+
credentialCryptoContext: CryptoContext;
|
|
12
|
+
walletProviderBaseUrl: string;
|
|
13
|
+
appFetch?: GlobalFetch["fetch"];
|
|
14
|
+
}) => Promise<{
|
|
15
|
+
credential: string;
|
|
16
|
+
format: string;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Fetch a credential from the issuer
|
|
20
|
+
*
|
|
21
|
+
* @param issuerConf The Issuer configuration
|
|
22
|
+
* @param accessToken The access token to grant access to the credential, obtained with the access authorization step
|
|
23
|
+
* @param nonce The nonce value to prevent reply attacks, obtained with the access authorization step
|
|
24
|
+
* @param clientId Identifies the current client across all the requests of the issuing flow
|
|
25
|
+
* @param credentialType The type of the credential to be requested
|
|
26
|
+
* @param context.credentialCryptoContext The context to access the key the Credential will be bound to
|
|
27
|
+
* @param context.walletProviderBaseUrl The base url of the Wallet Provider
|
|
28
|
+
* @param context.appFetch (optional) fetch api implementation. Default: built-in fetch
|
|
29
|
+
* @returns The signed credential token
|
|
30
|
+
*/
|
|
31
|
+
export declare const obtainCredential: ObtainCredential;
|
|
32
|
+
//# sourceMappingURL=06-obtain-credential.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"06-obtain-credential.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/06-obtain-credential.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAa,KAAK,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D;;GAEG;AACH,eAAO,MAAM,gBAAgB,UACpB,MAAM,UACL,MAAM,YACJ,MAAM,OACX,aAAa,KACjB,QAAQ,MAAM,CAchB,CAAC;AA4CF,MAAM,MAAM,gBAAgB,GAAG,CAC7B,UAAU,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,EAClD,WAAW,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,EAChD,KAAK,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EACpC,QAAQ,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,EAC1C,cAAc,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,EAChD,OAAO,EAAE;IACP,uBAAuB,EAAE,aAAa,CAAC;IACvC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC,KACE,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAwE9B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ObtainCredential } from "./06-obtain-credential";
|
|
2
|
+
import type { Out } from "../../utils/misc";
|
|
3
|
+
/**
|
|
4
|
+
* The end of the issuing flow.
|
|
5
|
+
* The User accepted the Credential and it can be stored in the device according to the app implementation preferences.
|
|
6
|
+
* To be implemented.
|
|
7
|
+
*
|
|
8
|
+
* @returns The type of the Credential to be issued and the url of the Issuer
|
|
9
|
+
*/
|
|
10
|
+
export type ConfirmCredential = (credential: Out<ObtainCredential>["credential"], format: Out<ObtainCredential>["format"]) => Promise<void>;
|
|
11
|
+
//# sourceMappingURL=07-confirm-credential.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"07-confirm-credential.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/07-confirm-credential.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,UAAU,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,EAC/C,MAAM,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,KACpC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,uEAC2C,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type StartFlow } from "./01-start-flow";
|
|
2
|
+
import { evaluateIssuerTrust, type EvaluateIssuerTrust } from "./02-evaluate-issuer-trust";
|
|
3
|
+
import { startUserAuthorization, type StartUserAuthorization } from "./03-start-user-authorization";
|
|
4
|
+
import { type CompleteUserAuthorization } from "./04-complete-user-authorization";
|
|
5
|
+
import { authorizeAccess, type AuthorizeAccess } from "./05-authorize-access";
|
|
6
|
+
import { obtainCredential, type ObtainCredential } from "./06-obtain-credential";
|
|
7
|
+
import type { ConfirmCredential } from "./07-confirm-credential";
|
|
8
|
+
export { evaluateIssuerTrust, startUserAuthorization, authorizeAccess, obtainCredential, };
|
|
9
|
+
export type { StartFlow, EvaluateIssuerTrust, StartUserAuthorization, CompleteUserAuthorization, AuthorizeAccess, ObtainCredential, ConfirmCredential, };
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,KAAK,mBAAmB,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,KAAK,sBAAsB,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,GACjB,CAAC;AACF,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The beginning of the presentation flow.
|
|
3
|
+
* To be implemented accordind to the user touchpoint
|
|
4
|
+
*
|
|
5
|
+
* @param Optional parameters, depending on the starting touchoint
|
|
6
|
+
* @returns The url for the Relying Party to connect with
|
|
7
|
+
*/
|
|
8
|
+
export type StartFlow<T extends Array<unknown> = []> = (...args: T) => Promise<{
|
|
9
|
+
requestURI: string;
|
|
10
|
+
clientId: string;
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* Start a presentation flow by decoding an incoming QR-code
|
|
14
|
+
*
|
|
15
|
+
* @param qrcode The encoded QR-code content
|
|
16
|
+
* @returns The url for the Relying Party to connect with
|
|
17
|
+
* @throws If the provided qr code fails to be decoded
|
|
18
|
+
*/
|
|
19
|
+
export declare const startFlowFromQR: StartFlow<[string]>;
|
|
20
|
+
//# sourceMappingURL=01-start-flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"01-start-flow.d.ts","sourceRoot":"","sources":["../../../../src/credential/presentation/01-start-flow.ts"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAoB/C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RelyingPartyEntityConfiguration } from "../../trust/types";
|
|
2
|
+
import type { StartFlow } from "../issuance/01-start-flow";
|
|
3
|
+
import type { Out } from "../../utils/misc";
|
|
4
|
+
export type EvaluateRelyingPartyTrust = (rpUrl: Out<StartFlow>["issuerUrl"], context?: {
|
|
5
|
+
appFetch?: GlobalFetch["fetch"];
|
|
6
|
+
}) => Promise<{
|
|
7
|
+
rpConf: RelyingPartyEntityConfiguration["payload"]["metadata"];
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* The Relying Party trust evaluation phase.
|
|
11
|
+
* Fetch the Relying Party's configuration and verify trust.
|
|
12
|
+
*
|
|
13
|
+
* @param rpUrl The base url of the Issuer
|
|
14
|
+
* @param context.appFetch (optional) fetch api implementation. Default: built-in fetch
|
|
15
|
+
* @returns The Relying Party's configuration
|
|
16
|
+
*/
|
|
17
|
+
export declare const evaluateRelyingPartyTrust: EvaluateRelyingPartyTrust;
|
|
18
|
+
//# sourceMappingURL=02-evaluate-rp-trust.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"02-evaluate-rp-trust.d.ts","sourceRoot":"","sources":["../../../../src/credential/presentation/02-evaluate-rp-trust.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+BAA+B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,MAAM,yBAAyB,GAAG,CACtC,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,EAClC,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC,KACE,OAAO,CAAC;IACX,MAAM,EAAE,+BAA+B,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC;CAChE,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,EAAE,yBAUvC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type CryptoContext } from "@pagopa/io-react-native-jwt";
|
|
2
|
+
import type { EvaluateRelyingPartyTrust } from "./02-evaluate-rp-trust";
|
|
3
|
+
import { type Out } from "../../utils/misc";
|
|
4
|
+
import type { StartFlow } from "./01-start-flow";
|
|
5
|
+
import { RequestObject } from "./types";
|
|
6
|
+
export type GetRequestObject = (requestUri: Out<StartFlow>["requestURI"], rpConf: Out<EvaluateRelyingPartyTrust>["rpConf"], context: {
|
|
7
|
+
wiaCryptoContext: CryptoContext;
|
|
8
|
+
appFetch?: GlobalFetch["fetch"];
|
|
9
|
+
walletInstanceAttestation: string;
|
|
10
|
+
}) => Promise<{
|
|
11
|
+
requestObject: RequestObject;
|
|
12
|
+
}>;
|
|
13
|
+
/**
|
|
14
|
+
* Obtain the Request Object for RP authentication
|
|
15
|
+
* @see https://italia.github.io/eudi-wallet-it-docs/versione-corrente/en/relying-party-solution.html
|
|
16
|
+
*
|
|
17
|
+
* @param requestUri The url for the Relying Party to connect with
|
|
18
|
+
* @param rpConf The Relying Party's configuration
|
|
19
|
+
* @param context.wiaCryptoContext The context to access the key associated with the Wallet Instance Attestation
|
|
20
|
+
* @param context.walletInstanceAttestation The Wallet Instance Attestation token
|
|
21
|
+
* @param context.appFetch (optional) fetch api implementation. Default: built-in fetch
|
|
22
|
+
* @returns The Request Object that describes the presentation
|
|
23
|
+
*/
|
|
24
|
+
export declare const getRequestObject: GetRequestObject;
|
|
25
|
+
//# sourceMappingURL=03-get-request-object.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"03-get-request-object.d.ts","sourceRoot":"","sources":["../../../../src/credential/presentation/03-get-request-object.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,6BAA6B,CAAC;AAIrC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAa,KAAK,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,MAAM,gBAAgB,GAAG,CAC7B,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EACxC,MAAM,EAAE,GAAG,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,EAChD,OAAO,EAAE;IACP,gBAAgB,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAChC,yBAAyB,EAAE,MAAM,CAAC;CACnC,KACE,OAAO,CAAC;IAAE,aAAa,EAAE,aAAa,CAAA;CAAE,CAAC,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAgD9B,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type Out } from "../../utils/misc";
|
|
2
|
+
import type { GetRequestObject } from "./03-get-request-object";
|
|
3
|
+
import type { EvaluateRelyingPartyTrust } from "./02-evaluate-rp-trust";
|
|
4
|
+
import { type Presentation } from "./types";
|
|
5
|
+
import * as z from "zod";
|
|
6
|
+
export type AuthorizationResponse = z.infer<typeof AuthorizationResponse>;
|
|
7
|
+
export declare const AuthorizationResponse: z.ZodObject<{
|
|
8
|
+
status: z.ZodString;
|
|
9
|
+
response_code: z.ZodOptional<z.ZodString>;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
status: string;
|
|
12
|
+
response_code?: string | undefined;
|
|
13
|
+
}, {
|
|
14
|
+
status: string;
|
|
15
|
+
response_code?: string | undefined;
|
|
16
|
+
}>;
|
|
17
|
+
export type SendAuthorizationResponse = (requestObject: Out<GetRequestObject>["requestObject"], rpConf: Out<EvaluateRelyingPartyTrust>["rpConf"], presentation: Presentation, // TODO: [SIW-353] support multiple presentations
|
|
18
|
+
context: {
|
|
19
|
+
walletInstanceAttestation: string;
|
|
20
|
+
appFetch?: GlobalFetch["fetch"];
|
|
21
|
+
}) => Promise<AuthorizationResponse>;
|
|
22
|
+
/**
|
|
23
|
+
* Complete the presentation flow by sending the authorization response to the Relying Party
|
|
24
|
+
*
|
|
25
|
+
* @param requestObject The Request Object that describes the presentation
|
|
26
|
+
* @param rpConf The Relying Party's configuration
|
|
27
|
+
* @param presentation The presentation tuple consisting in the signed credential,
|
|
28
|
+
* the list of claims to be disclosed, and the context to access the key that proves the holder binding
|
|
29
|
+
* @param context.walletInstanceAttestation The Wallet Instance Attestation token
|
|
30
|
+
* @param context.appFetch (optional) fetch api implementation. Default: built-in fetch
|
|
31
|
+
* @returns The result of the presentation flow
|
|
32
|
+
*/
|
|
33
|
+
export declare const sendAuthorizationResponse: SendAuthorizationResponse;
|
|
34
|
+
//# sourceMappingURL=04-send-authorization-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"04-send-authorization-response.d.ts","sourceRoot":"","sources":["../../../../src/credential/presentation/04-send-authorization-response.ts"],"names":[],"mappings":"AAKA,OAAO,EAAa,KAAK,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC1E,eAAO,MAAM,qBAAqB;;;;;;;;;EAShC,CAAC;AAkFH,MAAM,MAAM,yBAAyB,GAAG,CACtC,aAAa,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,eAAe,CAAC,EACrD,MAAM,EAAE,GAAG,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,EAChD,YAAY,EAAE,YAAY,EAAE,iDAAiD;AAC7E,OAAO,EAAE;IACP,yBAAyB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC,KACE,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,EAAE,yBA0CvC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { startFlowFromQR, type StartFlow } from "./01-start-flow";
|
|
2
|
+
import { evaluateRelyingPartyTrust, type EvaluateRelyingPartyTrust } from "./02-evaluate-rp-trust";
|
|
3
|
+
import { getRequestObject, type GetRequestObject } from "./03-get-request-object";
|
|
4
|
+
import { sendAuthorizationResponse, type SendAuthorizationResponse } from "./04-send-authorization-response";
|
|
5
|
+
export { startFlowFromQR, evaluateRelyingPartyTrust, getRequestObject, sendAuthorizationResponse, };
|
|
6
|
+
export type { StartFlow, EvaluateRelyingPartyTrust, GetRequestObject, SendAuthorizationResponse, };
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/credential/presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EACL,yBAAyB,EACzB,KAAK,yBAAyB,EAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yBAAyB,EACzB,KAAK,yBAAyB,EAC/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EAChB,yBAAyB,GAC1B,CAAC;AACF,YAAY,EACV,SAAS,EACT,yBAAyB,EACzB,gBAAgB,EAChB,yBAAyB,GAC1B,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { CryptoContext } from "@pagopa/io-react-native-jwt";
|
|
2
|
+
import * as z from "zod";
|
|
3
|
+
/**
|
|
4
|
+
* A pair that associate a tokenized Verified Credential with the claims presented or requested to present.
|
|
5
|
+
*/
|
|
6
|
+
export type Presentation = [
|
|
7
|
+
string,
|
|
8
|
+
string[],
|
|
9
|
+
CryptoContext
|
|
10
|
+
];
|
|
11
|
+
export type RequestObject = z.infer<typeof RequestObject>;
|
|
12
|
+
export declare const RequestObject: z.ZodObject<{
|
|
13
|
+
iss: z.ZodString;
|
|
14
|
+
iat: z.ZodNumber;
|
|
15
|
+
exp: z.ZodNumber;
|
|
16
|
+
state: z.ZodString;
|
|
17
|
+
nonce: z.ZodString;
|
|
18
|
+
response_uri: z.ZodString;
|
|
19
|
+
response_type: z.ZodLiteral<"vp_token">;
|
|
20
|
+
response_mode: z.ZodLiteral<"direct_post.jwt">;
|
|
21
|
+
client_id: z.ZodString;
|
|
22
|
+
client_id_scheme: z.ZodLiteral<"entity_id">;
|
|
23
|
+
scope: z.ZodString;
|
|
24
|
+
}, "strip", z.ZodTypeAny, {
|
|
25
|
+
iss: string;
|
|
26
|
+
iat: number;
|
|
27
|
+
exp: number;
|
|
28
|
+
client_id: string;
|
|
29
|
+
nonce: string;
|
|
30
|
+
response_type: "vp_token";
|
|
31
|
+
state: string;
|
|
32
|
+
response_uri: string;
|
|
33
|
+
response_mode: "direct_post.jwt";
|
|
34
|
+
client_id_scheme: "entity_id";
|
|
35
|
+
scope: string;
|
|
36
|
+
}, {
|
|
37
|
+
iss: string;
|
|
38
|
+
iat: number;
|
|
39
|
+
exp: number;
|
|
40
|
+
client_id: string;
|
|
41
|
+
nonce: string;
|
|
42
|
+
response_type: "vp_token";
|
|
43
|
+
state: string;
|
|
44
|
+
response_uri: string;
|
|
45
|
+
response_mode: "direct_post.jwt";
|
|
46
|
+
client_id_scheme: "entity_id";
|
|
47
|
+
scope: string;
|
|
48
|
+
}>;
|
|
49
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/credential/presentation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACO,MAAM;IACzB,MAAM,EAAE;IACsC,aAAa;CACzE,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAC1D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYxB,CAAC"}
|