@pagopa/io-react-native-wallet 0.9.2 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. package/lib/commonjs/credential/issuance/06-obtain-credential.js +2 -34
  2. package/lib/commonjs/credential/issuance/06-obtain-credential.js.map +1 -1
  3. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js +169 -0
  4. package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -0
  5. package/lib/commonjs/credential/issuance/08-confirm-credential.js +6 -0
  6. package/lib/commonjs/credential/issuance/08-confirm-credential.js.map +1 -0
  7. package/lib/commonjs/credential/issuance/const.js +6 -1
  8. package/lib/commonjs/credential/issuance/const.js.map +1 -1
  9. package/lib/commonjs/credential/issuance/index.js +7 -0
  10. package/lib/commonjs/credential/issuance/index.js.map +1 -1
  11. package/lib/commonjs/index.js +3 -1
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/sd-jwt/__test__/index.test.js +33 -1
  14. package/lib/commonjs/sd-jwt/__test__/index.test.js.map +1 -1
  15. package/lib/commonjs/sd-jwt/index.js +15 -6
  16. package/lib/commonjs/sd-jwt/index.js.map +1 -1
  17. package/lib/commonjs/sd-jwt/types.js +1 -1
  18. package/lib/commonjs/trust/types.js +5 -0
  19. package/lib/commonjs/trust/types.js.map +1 -1
  20. package/lib/commonjs/utils/misc.js +2 -2
  21. package/lib/commonjs/utils/misc.js.map +1 -1
  22. package/lib/module/credential/issuance/06-obtain-credential.js +3 -34
  23. package/lib/module/credential/issuance/06-obtain-credential.js.map +1 -1
  24. package/lib/module/credential/issuance/07-verify-and-parse-credential.js +163 -0
  25. package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -0
  26. package/lib/module/credential/issuance/08-confirm-credential.js +2 -0
  27. package/lib/module/credential/issuance/08-confirm-credential.js.map +1 -0
  28. package/lib/module/credential/issuance/const.js +2 -0
  29. package/lib/module/credential/issuance/const.js.map +1 -1
  30. package/lib/module/credential/issuance/index.js +2 -1
  31. package/lib/module/credential/issuance/index.js.map +1 -1
  32. package/lib/module/index.js +2 -1
  33. package/lib/module/index.js.map +1 -1
  34. package/lib/module/sd-jwt/__test__/index.test.js +33 -1
  35. package/lib/module/sd-jwt/__test__/index.test.js.map +1 -1
  36. package/lib/module/sd-jwt/index.js +10 -6
  37. package/lib/module/sd-jwt/index.js.map +1 -1
  38. package/lib/module/sd-jwt/types.js +1 -1
  39. package/lib/module/trust/types.js +5 -0
  40. package/lib/module/trust/types.js.map +1 -1
  41. package/lib/module/utils/misc.js +2 -2
  42. package/lib/module/utils/misc.js.map +1 -1
  43. package/lib/typescript/credential/issuance/06-obtain-credential.d.ts +2 -1
  44. package/lib/typescript/credential/issuance/06-obtain-credential.d.ts.map +1 -1
  45. package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts +36 -0
  46. package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -0
  47. package/lib/typescript/credential/issuance/08-confirm-credential.d.ts +11 -0
  48. package/lib/typescript/credential/issuance/08-confirm-credential.d.ts.map +1 -0
  49. package/lib/typescript/credential/issuance/const.d.ts +3 -0
  50. package/lib/typescript/credential/issuance/const.d.ts.map +1 -1
  51. package/lib/typescript/credential/issuance/index.d.ts +4 -3
  52. package/lib/typescript/credential/issuance/index.d.ts.map +1 -1
  53. package/lib/typescript/index.d.ts +2 -1
  54. package/lib/typescript/index.d.ts.map +1 -1
  55. package/lib/typescript/sd-jwt/index.d.ts +222 -5
  56. package/lib/typescript/sd-jwt/index.d.ts.map +1 -1
  57. package/lib/typescript/sd-jwt/types.d.ts +1 -1
  58. package/lib/typescript/trust/index.d.ts +8 -0
  59. package/lib/typescript/trust/index.d.ts.map +1 -1
  60. package/lib/typescript/trust/types.d.ts +232 -0
  61. package/lib/typescript/trust/types.d.ts.map +1 -1
  62. package/lib/typescript/utils/misc.d.ts +1 -1
  63. package/lib/typescript/utils/misc.d.ts.map +1 -1
  64. package/package.json +1 -1
  65. package/src/credential/issuance/06-obtain-credential.ts +3 -51
  66. package/src/credential/issuance/07-verify-and-parse-credential.ts +229 -0
  67. package/src/credential/issuance/08-confirm-credential.ts +14 -0
  68. package/src/credential/issuance/const.ts +6 -0
  69. package/src/credential/issuance/index.ts +7 -1
  70. package/src/index.ts +2 -0
  71. package/src/sd-jwt/__test__/index.test.ts +32 -1
  72. package/src/sd-jwt/index.ts +14 -8
  73. package/src/sd-jwt/types.ts +1 -1
  74. package/src/trust/types.ts +4 -0
  75. package/src/utils/misc.ts +4 -2
@@ -0,0 +1,36 @@
1
+ import type { Out } from "../../utils/misc";
2
+ import type { EvaluateIssuerTrust } from "./02-evaluate-issuer-trust";
3
+ import type { ObtainCredential } from "./06-obtain-credential";
4
+ import type { CryptoContext } from "@pagopa/io-react-native-jwt";
5
+ export type VerifyAndParseCredential = (issuerConf: Out<EvaluateIssuerTrust>["issuerConf"], credential: Out<ObtainCredential>["credential"], format: Out<ObtainCredential>["format"], context: {
6
+ credentialCryptoContext: CryptoContext;
7
+ ignoreMissingAttributes?: boolean;
8
+ }) => Promise<{
9
+ parsedCredential: ParsedCredential;
10
+ }>;
11
+ type ParsedCredential = Record<
12
+ /** Attribute key */
13
+ string, {
14
+ /** Human-readable name of the attribute */
15
+ name: /* if i18n is provided */ Record<string, string> | /* if no i18n is provided */ string;
16
+ /** If in defined as mandatory by the Issuer */
17
+ mandatory: boolean;
18
+ /** The actual value of the attribute */
19
+ value: unknown;
20
+ }>;
21
+ /**
22
+ * Verify and parse an encoded credential
23
+ *
24
+ * @param issuerConf The Issuer configuration
25
+ * @param credential The encoded credential
26
+ * @param format The format of the credentual
27
+ * @param context.credentialCryptoContext The context to access the key the Credential will be bound to
28
+ * @param context.ignoreMissingAttributes (optional) Whether to fail if a defined attribute is note present in the credentual. Default: false
29
+ * @returns A parsed credential with attributes in plain value
30
+ * @throws If the credential signature is not verified with the Issuer key set
31
+ * @throws If the credential is not bound to the provided user key
32
+ * @throws If the credential data fail to parse
33
+ */
34
+ export declare const verifyAndParseCredential: VerifyAndParseCredential;
35
+ export {};
36
+ //# sourceMappingURL=07-verify-and-parse-credential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"07-verify-and-parse-credential.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/07-verify-and-parse-credential.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,MAAM,wBAAwB,GAAG,CACrC,UAAU,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,EAClD,UAAU,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,YAAY,CAAC,EAC/C,MAAM,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,EACvC,OAAO,EAAE;IACP,uBAAuB,EAAE,aAAa,CAAC;IACvC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,KACE,OAAO,CAAC;IAAE,gBAAgB,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAC;AAGrD,KAAK,gBAAgB,GAAG,MAAM;AAC5B,oBAAoB;AACpB,MAAM,EACN;IACE,2CAA2C;IAC3C,IAAI,EACA,yBAAyB,CAAC,MAAM,CAC9B,MAAM,EACN,MAAM,CACP,GACD,4BAA4B,CAAC,MAAM,CAAC;IACxC,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAC;CAChB,CACF,CAAC;AAkKF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,EAAE,wBAiBtC,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=08-confirm-credential.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"08-confirm-credential.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/08-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"}
@@ -1,2 +1,5 @@
1
+ import * as z from "zod";
1
2
  export declare const ASSERTION_TYPE = "urn:ietf:params:oauth:client-assertion-type:jwt-client-attestation";
3
+ export type SupportedCredentialFormat = z.infer<typeof SupportedCredentialFormat>;
4
+ export declare const SupportedCredentialFormat: z.ZodLiteral<"vc+sd-jwt">;
2
5
  //# sourceMappingURL=const.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/const.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,uEAC2C,CAAC"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../../src/credential/issuance/const.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,eAAO,MAAM,cAAc,uEAC2C,CAAC;AAEvE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC7C,OAAO,yBAAyB,CACjC,CAAC;AACF,eAAO,MAAM,yBAAyB,2BAAyB,CAAC"}
@@ -4,7 +4,8 @@ import { startUserAuthorization, type StartUserAuthorization } from "./03-start-
4
4
  import { type CompleteUserAuthorization } from "./04-complete-user-authorization";
5
5
  import { authorizeAccess, type AuthorizeAccess } from "./05-authorize-access";
6
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, };
7
+ import { verifyAndParseCredential, type VerifyAndParseCredential } from "./07-verify-and-parse-credential";
8
+ import type { ConfirmCredential } from "./08-confirm-credential";
9
+ export { evaluateIssuerTrust, startUserAuthorization, authorizeAccess, obtainCredential, verifyAndParseCredential, };
10
+ export type { StartFlow, EvaluateIssuerTrust, StartUserAuthorization, CompleteUserAuthorization, AuthorizeAccess, ObtainCredential, VerifyAndParseCredential, ConfirmCredential, };
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
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,EACL,wBAAwB,EACxB,KAAK,wBAAwB,EAC9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,wBAAwB,GACzB,CAAC;AACF,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,GAClB,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import "react-native-url-polyfill/auto";
2
2
  import * as Credential from "./credential";
3
3
  import * as PID from "./pid";
4
+ import * as SdJwt from "./sd-jwt";
4
5
  import * as Errors from "./utils/errors";
5
6
  import * as WalletInstanceAttestation from "./wallet-instance-attestation";
6
7
  import * as Trust from "./trust";
7
8
  import { AuthorizationDetail, AuthorizationDetails } from "./utils/par";
8
9
  import { createCryptoContextFor } from "./utils/crypto";
9
- export { PID, Credential, WalletInstanceAttestation, Errors, Trust, createCryptoContextFor, AuthorizationDetail, AuthorizationDetails, };
10
+ export { SdJwt, PID, Credential, WalletInstanceAttestation, Errors, Trust, createCryptoContextFor, AuthorizationDetail, AuthorizationDetails, };
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,gCAAgC,CAAC;AAExC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,yBAAyB,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EACL,GAAG,EACH,UAAU,EACV,yBAAyB,EACzB,MAAM,EACN,KAAK,EACL,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,GACrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,gCAAgC,CAAC;AAExC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,yBAAyB,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EACL,KAAK,EACL,GAAG,EACH,UAAU,EACV,yBAAyB,EACzB,MAAM,EACN,KAAK,EACL,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,GACrB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { Disclosure, type DisclosureWithEncoded } from "./types";
2
+ import { Disclosure, SdJwt4VC, type DisclosureWithEncoded } from "./types";
3
3
  import type { JWK } from "../utils/jwk";
4
4
  /**
5
5
  * Decode a given SD-JWT with Disclosures to get the parsed SD-JWT object they define.
@@ -10,12 +10,120 @@ import type { JWK } from "../utils/jwk";
10
10
  *
11
11
  * @function
12
12
  * @param token The encoded token that represents a valid sd-jwt for verifiable credentials
13
- * @param schema Schema to use to parse the SD-JWT
13
+ * @param customSchema (optional) Schema to use to parse the SD-JWT. Default: SdJwt4VC
14
14
  *
15
15
  * @returns The parsed SD-JWT token and the parsed disclosures
16
16
  *
17
17
  */
18
- export declare const decode: <S extends z.AnyZodObject>(token: string, schema: S) => {
18
+ export declare const decode: <S extends z.ZodType<{
19
+ header: {
20
+ alg: string;
21
+ typ: "vc+sd-jwt";
22
+ trust_chain: string[];
23
+ kid?: string | undefined;
24
+ };
25
+ payload: {
26
+ type: string;
27
+ status: string;
28
+ iss: string;
29
+ sub: string;
30
+ jti: string;
31
+ iat: number;
32
+ exp: number;
33
+ cnf: {
34
+ jwk: {
35
+ kty: "RSA" | "EC";
36
+ alg?: string | undefined;
37
+ crv?: string | undefined;
38
+ d?: string | undefined;
39
+ dp?: string | undefined;
40
+ dq?: string | undefined;
41
+ e?: string | undefined;
42
+ ext?: boolean | undefined;
43
+ k?: string | undefined;
44
+ key_ops?: string[] | undefined;
45
+ kid?: string | undefined;
46
+ n?: string | undefined;
47
+ p?: string | undefined;
48
+ q?: string | undefined;
49
+ qi?: string | undefined;
50
+ use?: string | undefined;
51
+ x?: string | undefined;
52
+ y?: string | undefined;
53
+ x5c?: string[] | undefined;
54
+ x5t?: string | undefined;
55
+ "x5t#S256"?: string | undefined;
56
+ x5u?: string | undefined;
57
+ };
58
+ };
59
+ verified_claims: {
60
+ verification: {
61
+ trust_framework: "eidas";
62
+ assurance_level: string;
63
+ } & {
64
+ _sd: string[];
65
+ };
66
+ claims: {
67
+ _sd: string[];
68
+ };
69
+ };
70
+ _sd_alg: "sha-256";
71
+ };
72
+ }, z.ZodTypeDef, {
73
+ header: {
74
+ alg: string;
75
+ typ: "vc+sd-jwt";
76
+ trust_chain: string[];
77
+ kid?: string | undefined;
78
+ };
79
+ payload: {
80
+ type: string;
81
+ status: string;
82
+ iss: string;
83
+ sub: string;
84
+ jti: string;
85
+ iat: number;
86
+ exp: number;
87
+ cnf: {
88
+ jwk: {
89
+ kty: "RSA" | "EC";
90
+ alg?: string | undefined;
91
+ crv?: string | undefined;
92
+ d?: string | undefined;
93
+ dp?: string | undefined;
94
+ dq?: string | undefined;
95
+ e?: string | undefined;
96
+ ext?: boolean | undefined;
97
+ k?: string | undefined;
98
+ key_ops?: string[] | undefined;
99
+ kid?: string | undefined;
100
+ n?: string | undefined;
101
+ p?: string | undefined;
102
+ q?: string | undefined;
103
+ qi?: string | undefined;
104
+ use?: string | undefined;
105
+ x?: string | undefined;
106
+ y?: string | undefined;
107
+ x5c?: string[] | undefined;
108
+ x5t?: string | undefined;
109
+ "x5t#S256"?: string | undefined;
110
+ x5u?: string | undefined;
111
+ };
112
+ };
113
+ verified_claims: {
114
+ verification: {
115
+ trust_framework: "eidas";
116
+ assurance_level: string;
117
+ } & {
118
+ _sd: string[];
119
+ };
120
+ claims: {
121
+ _sd: string[];
122
+ };
123
+ };
124
+ _sd_alg: "sha-256";
125
+ };
126
+ }>>(token: string, customSchema?: S | undefined) => {
19
127
  sdJwt: z.TypeOf<S>;
20
128
  disclosures: DisclosureWithEncoded[];
21
129
  };
@@ -50,13 +158,122 @@ export declare const disclose: (token: string, claims: string[]) => Promise<{
50
158
  *
51
159
  * @param token The encoded token that represents a valid sd-jwt for verifiable credentials
52
160
  * @param publicKey The single public key or an array of public keys to validate the signature.
53
- * @param schema Schema to use to parse the SD-JWT
161
+ * @param customSchema Schema to use to parse the SD-JWT
54
162
  *
55
163
  * @returns The parsed SD-JWT token and the parsed disclosures
56
164
  *
57
165
  */
58
- export declare const verify: <S extends z.AnyZodObject>(token: string, publicKey: JWK | JWK[], schema: S) => Promise<{
166
+ export declare const verify: <S extends z.ZodType<{
167
+ header: {
168
+ alg: string;
169
+ typ: "vc+sd-jwt";
170
+ trust_chain: string[];
171
+ kid?: string | undefined;
172
+ };
173
+ payload: {
174
+ type: string;
175
+ status: string;
176
+ iss: string;
177
+ sub: string;
178
+ jti: string;
179
+ iat: number;
180
+ exp: number;
181
+ cnf: {
182
+ jwk: {
183
+ kty: "RSA" | "EC";
184
+ alg?: string | undefined;
185
+ crv?: string | undefined;
186
+ d?: string | undefined;
187
+ dp?: string | undefined;
188
+ dq?: string | undefined;
189
+ e?: string | undefined;
190
+ ext?: boolean | undefined;
191
+ k?: string | undefined;
192
+ key_ops?: string[] | undefined;
193
+ kid?: string | undefined;
194
+ n?: string | undefined;
195
+ p?: string | undefined;
196
+ q?: string | undefined;
197
+ qi?: string | undefined;
198
+ use?: string | undefined;
199
+ x?: string | undefined;
200
+ y?: string | undefined;
201
+ x5c?: string[] | undefined;
202
+ x5t?: string | undefined;
203
+ "x5t#S256"?: string | undefined;
204
+ x5u?: string | undefined;
205
+ };
206
+ };
207
+ verified_claims: {
208
+ verification: {
209
+ trust_framework: "eidas";
210
+ assurance_level: string;
211
+ } & {
212
+ _sd: string[];
213
+ };
214
+ claims: {
215
+ _sd: string[];
216
+ };
217
+ };
218
+ _sd_alg: "sha-256";
219
+ };
220
+ }, z.ZodTypeDef, {
221
+ header: {
222
+ alg: string;
223
+ typ: "vc+sd-jwt";
224
+ trust_chain: string[];
225
+ kid?: string | undefined;
226
+ };
227
+ payload: {
228
+ type: string;
229
+ status: string;
230
+ iss: string;
231
+ sub: string;
232
+ jti: string;
233
+ iat: number;
234
+ exp: number;
235
+ cnf: {
236
+ jwk: {
237
+ kty: "RSA" | "EC";
238
+ alg?: string | undefined;
239
+ crv?: string | undefined;
240
+ d?: string | undefined;
241
+ dp?: string | undefined;
242
+ dq?: string | undefined;
243
+ e?: string | undefined;
244
+ ext?: boolean | undefined;
245
+ k?: string | undefined;
246
+ key_ops?: string[] | undefined;
247
+ kid?: string | undefined;
248
+ n?: string | undefined;
249
+ p?: string | undefined;
250
+ q?: string | undefined;
251
+ qi?: string | undefined;
252
+ use?: string | undefined;
253
+ x?: string | undefined;
254
+ y?: string | undefined;
255
+ x5c?: string[] | undefined;
256
+ x5t?: string | undefined;
257
+ "x5t#S256"?: string | undefined;
258
+ x5u?: string | undefined;
259
+ };
260
+ };
261
+ verified_claims: {
262
+ verification: {
263
+ trust_framework: "eidas";
264
+ assurance_level: string;
265
+ } & {
266
+ _sd: string[];
267
+ };
268
+ claims: {
269
+ _sd: string[];
270
+ };
271
+ };
272
+ _sd_alg: "sha-256";
273
+ };
274
+ }>>(token: string, publicKey: JWK | JWK[], customSchema?: S | undefined) => Promise<{
59
275
  sdJwt: z.TypeOf<S>;
60
276
  disclosures: Disclosure[];
61
277
  }>;
278
+ export { SdJwt4VC };
62
279
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sd-jwt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EAAE,UAAU,EAAY,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAE3E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAWxC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,oCACV,MAAM;;iBAIA,qBAAqB,EAAE;CAsBrC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,UACZ,MAAM,UACL,MAAM,EAAE;WACE,MAAM;WAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE;EA8CnE,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,MAAM,oCACV,MAAM,aACF,GAAG,GAAG,GAAG,EAAE;;iBAEqB,UAAU,EAAE;EAwBxD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sd-jwt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAE3E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAWxC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WACV,MAAM;;iBAIA,qBAAqB,EAAE;CA0BrC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,UACZ,MAAM,UACL,MAAM,EAAE;WACE,MAAM;WAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE;EA8CnE,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WACV,MAAM,aACF,GAAG,GAAG,GAAG,EAAE;;iBAEqB,UAAU,EAAE;EAwBxD,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -23,7 +23,7 @@ export declare const Disclosure: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodUnkn
23
23
  * For such reason, we may find conveninent to have encoded and decode values stored explicitly in the same structure.
24
24
  * Please note that `encoded` can always decode into `decode`, but `decode` may or may not be encoded with the same value of `encoded`
25
25
  *
26
- * @see https://www.ietf.org/id/draft-ietf-oauth-selective-disclosure-jwt-05.html#name-disclosures-for-object-prop
26
+ * @see https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-05.html#name-disclosures-for-object-prop
27
27
  */
28
28
  export type DisclosureWithEncoded = {
29
29
  decoded: Disclosure;
@@ -102,6 +102,7 @@ export declare const getWalletProviderEntityConfiguration: (entityBaseUrl: Param
102
102
  federation_resolve_endpoint?: string | undefined;
103
103
  federation_trust_mark_status_endpoint?: string | undefined;
104
104
  federation_trust_mark_list_endpoint?: string | undefined;
105
+ organization_name?: string | undefined;
105
106
  homepage_uri?: string | undefined;
106
107
  policy_uri?: string | undefined;
107
108
  logo_uri?: string | undefined;
@@ -201,6 +202,7 @@ export declare const getCredentialIssuerEntityConfiguration: (entityBaseUrl: Par
201
202
  federation_resolve_endpoint?: string | undefined;
202
203
  federation_trust_mark_status_endpoint?: string | undefined;
203
204
  federation_trust_mark_list_endpoint?: string | undefined;
205
+ organization_name?: string | undefined;
204
206
  homepage_uri?: string | undefined;
205
207
  policy_uri?: string | undefined;
206
208
  logo_uri?: string | undefined;
@@ -383,6 +385,7 @@ export declare const getTrustAnchorEntityConfiguration: (entityBaseUrl: Paramete
383
385
  federation_resolve_endpoint?: string | undefined;
384
386
  federation_trust_mark_status_endpoint?: string | undefined;
385
387
  federation_trust_mark_list_endpoint?: string | undefined;
388
+ organization_name?: string | undefined;
386
389
  homepage_uri?: string | undefined;
387
390
  policy_uri?: string | undefined;
388
391
  logo_uri?: string | undefined;
@@ -442,6 +445,7 @@ export declare const getRelyingPartyEntityConfiguration: (entityBaseUrl: Paramet
442
445
  federation_resolve_endpoint?: string | undefined;
443
446
  federation_trust_mark_status_endpoint?: string | undefined;
444
447
  federation_trust_mark_list_endpoint?: string | undefined;
448
+ organization_name?: string | undefined;
445
449
  homepage_uri?: string | undefined;
446
450
  policy_uri?: string | undefined;
447
451
  logo_uri?: string | undefined;
@@ -538,6 +542,7 @@ export declare const getEntityConfiguration: (entityBaseUrl: Parameters<typeof f
538
542
  federation_resolve_endpoint?: string | undefined;
539
543
  federation_trust_mark_status_endpoint?: string | undefined;
540
544
  federation_trust_mark_list_endpoint?: string | undefined;
545
+ organization_name?: string | undefined;
541
546
  homepage_uri?: string | undefined;
542
547
  policy_uri?: string | undefined;
543
548
  logo_uri?: string | undefined;
@@ -596,6 +601,7 @@ export declare const getEntityConfiguration: (entityBaseUrl: Parameters<typeof f
596
601
  federation_resolve_endpoint?: string | undefined;
597
602
  federation_trust_mark_status_endpoint?: string | undefined;
598
603
  federation_trust_mark_list_endpoint?: string | undefined;
604
+ organization_name?: string | undefined;
599
605
  homepage_uri?: string | undefined;
600
606
  policy_uri?: string | undefined;
601
607
  logo_uri?: string | undefined;
@@ -777,6 +783,7 @@ export declare const getEntityConfiguration: (entityBaseUrl: Parameters<typeof f
777
783
  federation_resolve_endpoint?: string | undefined;
778
784
  federation_trust_mark_status_endpoint?: string | undefined;
779
785
  federation_trust_mark_list_endpoint?: string | undefined;
786
+ organization_name?: string | undefined;
780
787
  homepage_uri?: string | undefined;
781
788
  policy_uri?: string | undefined;
782
789
  logo_uri?: string | undefined;
@@ -872,6 +879,7 @@ export declare const getEntityConfiguration: (entityBaseUrl: Parameters<typeof f
872
879
  federation_resolve_endpoint?: string | undefined;
873
880
  federation_trust_mark_status_endpoint?: string | undefined;
874
881
  federation_trust_mark_list_endpoint?: string | undefined;
882
+ organization_name?: string | undefined;
875
883
  homepage_uri?: string | undefined;
876
884
  policy_uri?: string | undefined;
877
885
  logo_uri?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/trust/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/trust/index.ts"],"names":[],"mappings":"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"}