@pagopa/io-react-native-wallet 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +91 -0
- package/lib/commonjs/index.js +17 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/pid/index.js +11 -0
- package/lib/commonjs/pid/index.js.map +1 -0
- package/lib/commonjs/pid/sd-jwt/converters.js +29 -0
- package/lib/commonjs/pid/sd-jwt/converters.js.map +1 -0
- package/lib/commonjs/pid/sd-jwt/index.js +76 -0
- package/lib/commonjs/pid/sd-jwt/index.js.map +1 -0
- package/lib/commonjs/pid/sd-jwt/types.js +50 -0
- package/lib/commonjs/pid/sd-jwt/types.js.map +1 -0
- package/lib/commonjs/sd-jwt/__test__/converters.test.js +25 -0
- package/lib/commonjs/sd-jwt/__test__/converters.test.js.map +1 -0
- package/lib/commonjs/sd-jwt/__test__/types.test.js +70 -0
- package/lib/commonjs/sd-jwt/__test__/types.test.js.map +1 -0
- package/lib/commonjs/sd-jwt/converters.js +30 -0
- package/lib/commonjs/sd-jwt/converters.js.map +1 -0
- package/lib/commonjs/sd-jwt/index.js +77 -0
- package/lib/commonjs/sd-jwt/index.js.map +1 -0
- package/lib/commonjs/sd-jwt/types.js +53 -0
- package/lib/commonjs/sd-jwt/types.js.map +1 -0
- package/lib/commonjs/sd-jwt/verifier.js +18 -0
- package/lib/commonjs/sd-jwt/verifier.js.map +1 -0
- package/lib/commonjs/utils/errors.js +82 -0
- package/lib/commonjs/utils/errors.js.map +1 -0
- package/lib/commonjs/utils/jwk.js +45 -0
- package/lib/commonjs/utils/jwk.js.map +1 -0
- package/lib/commonjs/wallet-instance-attestation/index.js +63 -0
- package/lib/commonjs/wallet-instance-attestation/index.js.map +1 -0
- package/lib/commonjs/wallet-instance-attestation/issuing.js +96 -0
- package/lib/commonjs/wallet-instance-attestation/issuing.js.map +1 -0
- package/lib/commonjs/wallet-instance-attestation/types.js +65 -0
- package/lib/commonjs/wallet-instance-attestation/types.js.map +1 -0
- package/lib/module/index.js +7 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/pid/index.js +3 -0
- package/lib/module/pid/index.js.map +1 -0
- package/lib/module/pid/sd-jwt/converters.js +23 -0
- package/lib/module/pid/sd-jwt/converters.js.map +1 -0
- package/lib/module/pid/sd-jwt/index.js +66 -0
- package/lib/module/pid/sd-jwt/index.js.map +1 -0
- package/lib/module/pid/sd-jwt/types.js +43 -0
- package/lib/module/pid/sd-jwt/types.js.map +1 -0
- package/lib/module/sd-jwt/__test__/converters.test.js +23 -0
- package/lib/module/sd-jwt/__test__/converters.test.js.map +1 -0
- package/lib/module/sd-jwt/__test__/types.test.js +68 -0
- package/lib/module/sd-jwt/__test__/types.test.js.map +1 -0
- package/lib/module/sd-jwt/converters.js +24 -0
- package/lib/module/sd-jwt/converters.js.map +1 -0
- package/lib/module/sd-jwt/index.js +71 -0
- package/lib/module/sd-jwt/index.js.map +1 -0
- package/lib/module/sd-jwt/types.js +44 -0
- package/lib/module/sd-jwt/types.js.map +1 -0
- package/lib/module/sd-jwt/verifier.js +11 -0
- package/lib/module/sd-jwt/verifier.js.map +1 -0
- package/lib/module/utils/errors.js +73 -0
- package/lib/module/utils/errors.js.map +1 -0
- package/lib/module/utils/jwk.js +38 -0
- package/lib/module/utils/jwk.js.map +1 -0
- package/lib/module/wallet-instance-attestation/index.js +52 -0
- package/lib/module/wallet-instance-attestation/index.js.map +1 -0
- package/lib/module/wallet-instance-attestation/issuing.js +90 -0
- package/lib/module/wallet-instance-attestation/issuing.js.map +1 -0
- package/lib/module/wallet-instance-attestation/types.js +55 -0
- package/lib/module/wallet-instance-attestation/types.js.map +1 -0
- package/lib/typescript/index.d.ts +5 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/pid/index.d.ts +3 -0
- package/lib/typescript/pid/index.d.ts.map +1 -0
- package/lib/typescript/pid/sd-jwt/converters.d.ts +4 -0
- package/lib/typescript/pid/sd-jwt/converters.d.ts.map +1 -0
- package/lib/typescript/pid/sd-jwt/index.d.ts +50 -0
- package/lib/typescript/pid/sd-jwt/index.d.ts.map +1 -0
- package/lib/typescript/pid/sd-jwt/types.d.ts +196 -0
- package/lib/typescript/pid/sd-jwt/types.d.ts.map +1 -0
- package/lib/typescript/sd-jwt/__test__/converters.test.d.ts +2 -0
- package/lib/typescript/sd-jwt/__test__/converters.test.d.ts.map +1 -0
- package/lib/typescript/sd-jwt/__test__/types.test.d.ts +2 -0
- package/lib/typescript/sd-jwt/__test__/types.test.d.ts.map +1 -0
- package/lib/typescript/sd-jwt/converters.d.ts +3 -0
- package/lib/typescript/sd-jwt/converters.d.ts.map +1 -0
- package/lib/typescript/sd-jwt/index.d.ts +42 -0
- package/lib/typescript/sd-jwt/index.d.ts.map +1 -0
- package/lib/typescript/sd-jwt/types.d.ts +416 -0
- package/lib/typescript/sd-jwt/types.d.ts.map +1 -0
- package/lib/typescript/sd-jwt/verifier.d.ts +3 -0
- package/lib/typescript/sd-jwt/verifier.d.ts.map +1 -0
- package/lib/typescript/utils/errors.d.ts +45 -0
- package/lib/typescript/utils/errors.d.ts.map +1 -0
- package/lib/typescript/utils/jwk.d.ts +85 -0
- package/lib/typescript/utils/jwk.d.ts.map +1 -0
- package/lib/typescript/wallet-instance-attestation/index.d.ts +36 -0
- package/lib/typescript/wallet-instance-attestation/index.d.ts.map +1 -0
- package/lib/typescript/wallet-instance-attestation/issuing.d.ts +32 -0
- package/lib/typescript/wallet-instance-attestation/issuing.d.ts.map +1 -0
- package/lib/typescript/wallet-instance-attestation/types.d.ts +733 -0
- package/lib/typescript/wallet-instance-attestation/types.d.ts.map +1 -0
- package/package.json +108 -0
- package/src/index.ts +8 -0
- package/src/pid/index.ts +2 -0
- package/src/pid/sd-jwt/converters.ts +26 -0
- package/src/pid/sd-jwt/index.ts +71 -0
- package/src/pid/sd-jwt/types.ts +44 -0
- package/src/sd-jwt/__test__/converters.test.ts +27 -0
- package/src/sd-jwt/__test__/types.test.ts +85 -0
- package/src/sd-jwt/converters.ts +24 -0
- package/src/sd-jwt/index.ts +92 -0
- package/src/sd-jwt/types.ts +54 -0
- package/src/sd-jwt/verifier.ts +20 -0
- package/src/utils/errors.ts +74 -0
- package/src/utils/jwk.ts +39 -0
- package/src/wallet-instance-attestation/index.ts +56 -0
- package/src/wallet-instance-attestation/issuing.ts +107 -0
- package/src/wallet-instance-attestation/types.ts +77 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
import { PID } from "./types";
|
2
|
+
import { Disclosure, SdJwt4VC } from "../../sd-jwt/types";
|
3
|
+
/**
|
4
|
+
* Decode a given SD-JWT with Disclosures to get the parsed PID object they define.
|
5
|
+
* It ensures provided data is in a valid shape.
|
6
|
+
*
|
7
|
+
* It DOES NOT verify token signature nor check disclosures are correctly referenced by the SD-JWT.
|
8
|
+
* Use {@link verify} instead
|
9
|
+
*
|
10
|
+
* @function
|
11
|
+
* @param token The encoded token that represents a valid sd-jwt for verifiable credentials
|
12
|
+
*
|
13
|
+
* @returns The validated PID object along with the parsed SD-JWT token and the parsed disclosures
|
14
|
+
* @throws A decoding error if the token doesn't resolve in a valid SD-JWT
|
15
|
+
* @throws A validation error if the provided data doesn't result in a valid PID
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
export declare function decode(token: string): PidWithToken;
|
19
|
+
/**
|
20
|
+
* Verify a given SD-JWT with Disclosures to get the parsed PID object they define.
|
21
|
+
* Same as {@link decode} plus:
|
22
|
+
* - token signature verification
|
23
|
+
* - ensure disclosures are well-defined inside the SD-JWT
|
24
|
+
*
|
25
|
+
* @async @function
|
26
|
+
*
|
27
|
+
* @todo implement signature validation
|
28
|
+
* @todo check disclosures in sd-jwt
|
29
|
+
*
|
30
|
+
* @param token The encoded token that represents a valid sd-jwt for verifiable credentials
|
31
|
+
*
|
32
|
+
* @returns {VerifyResult} The validated PID object along with the parsed SD-JWT token and the parsed disclosures
|
33
|
+
* @throws A decoding error if the token doesn't resolve in a valid SD-JWT
|
34
|
+
* @throws A validation error if the provided data doesn't result in a valid PID
|
35
|
+
* @throws A validation error if the provided disclosures are not defined in the SD-JWT
|
36
|
+
* @throws Invalid signature error if the token signature is not valid
|
37
|
+
*
|
38
|
+
*/
|
39
|
+
export declare function verify(token: string): Promise<VerifyResult>;
|
40
|
+
type PidWithToken = {
|
41
|
+
pid: PID;
|
42
|
+
sdJwt: SdJwt4VC;
|
43
|
+
disclosures: Disclosure[];
|
44
|
+
};
|
45
|
+
/**
|
46
|
+
* Result object for {@link verify}
|
47
|
+
*/
|
48
|
+
export type VerifyResult = PidWithToken;
|
49
|
+
export { PID } from "./types";
|
50
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pid/sd-jwt/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAKlD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAMjE;AAED,KAAK,YAAY,GAAG;IAElB,GAAG,EAAE,GAAG,CAAC;IAET,KAAK,EAAE,QAAQ,CAAC;IAEhB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC;AAExC,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC"}
|
@@ -0,0 +1,196 @@
|
|
1
|
+
import { z } from "zod";
|
2
|
+
/**
|
3
|
+
* Data structure for the PID.
|
4
|
+
* It contains PID claims in plain text as well as verification data with the issuer's information
|
5
|
+
*
|
6
|
+
* @see https://italia.github.io/eidas-it-wallet-docs/en/pid-data-model.html
|
7
|
+
*/
|
8
|
+
export type PID = z.infer<typeof PID>;
|
9
|
+
export declare const PID: z.ZodObject<{
|
10
|
+
issuer: z.ZodString;
|
11
|
+
issuedAt: z.ZodDate;
|
12
|
+
expiration: z.ZodDate;
|
13
|
+
verification: z.ZodObject<{
|
14
|
+
trustFramework: z.ZodLiteral<"eidas">;
|
15
|
+
assuranceLevel: z.ZodString;
|
16
|
+
evidence: z.ZodArray<z.ZodObject<{
|
17
|
+
type: z.ZodString;
|
18
|
+
record: z.ZodObject<{
|
19
|
+
type: z.ZodString;
|
20
|
+
source: z.ZodObject<{
|
21
|
+
organization_name: z.ZodString;
|
22
|
+
organization_id: z.ZodString;
|
23
|
+
country_code: z.ZodString;
|
24
|
+
}, "strip", z.ZodTypeAny, {
|
25
|
+
organization_name: string;
|
26
|
+
organization_id: string;
|
27
|
+
country_code: string;
|
28
|
+
}, {
|
29
|
+
organization_name: string;
|
30
|
+
organization_id: string;
|
31
|
+
country_code: string;
|
32
|
+
}>;
|
33
|
+
}, "strip", z.ZodTypeAny, {
|
34
|
+
type: string;
|
35
|
+
source: {
|
36
|
+
organization_name: string;
|
37
|
+
organization_id: string;
|
38
|
+
country_code: string;
|
39
|
+
};
|
40
|
+
}, {
|
41
|
+
type: string;
|
42
|
+
source: {
|
43
|
+
organization_name: string;
|
44
|
+
organization_id: string;
|
45
|
+
country_code: string;
|
46
|
+
};
|
47
|
+
}>;
|
48
|
+
}, "strip", z.ZodTypeAny, {
|
49
|
+
type: string;
|
50
|
+
record: {
|
51
|
+
type: string;
|
52
|
+
source: {
|
53
|
+
organization_name: string;
|
54
|
+
organization_id: string;
|
55
|
+
country_code: string;
|
56
|
+
};
|
57
|
+
};
|
58
|
+
}, {
|
59
|
+
type: string;
|
60
|
+
record: {
|
61
|
+
type: string;
|
62
|
+
source: {
|
63
|
+
organization_name: string;
|
64
|
+
organization_id: string;
|
65
|
+
country_code: string;
|
66
|
+
};
|
67
|
+
};
|
68
|
+
}>, "many">;
|
69
|
+
}, "strip", z.ZodTypeAny, {
|
70
|
+
trustFramework: "eidas";
|
71
|
+
assuranceLevel: string;
|
72
|
+
evidence: {
|
73
|
+
type: string;
|
74
|
+
record: {
|
75
|
+
type: string;
|
76
|
+
source: {
|
77
|
+
organization_name: string;
|
78
|
+
organization_id: string;
|
79
|
+
country_code: string;
|
80
|
+
};
|
81
|
+
};
|
82
|
+
}[];
|
83
|
+
}, {
|
84
|
+
trustFramework: "eidas";
|
85
|
+
assuranceLevel: string;
|
86
|
+
evidence: {
|
87
|
+
type: string;
|
88
|
+
record: {
|
89
|
+
type: string;
|
90
|
+
source: {
|
91
|
+
organization_name: string;
|
92
|
+
organization_id: string;
|
93
|
+
country_code: string;
|
94
|
+
};
|
95
|
+
};
|
96
|
+
}[];
|
97
|
+
}>;
|
98
|
+
claims: z.ZodObject<{
|
99
|
+
uniqueId: z.ZodString;
|
100
|
+
givenName: z.ZodString;
|
101
|
+
familyName: z.ZodString;
|
102
|
+
birthdate: z.ZodString;
|
103
|
+
placeOfBirth: z.ZodObject<{
|
104
|
+
country: z.ZodString;
|
105
|
+
locality: z.ZodString;
|
106
|
+
}, "strip", z.ZodTypeAny, {
|
107
|
+
country: string;
|
108
|
+
locality: string;
|
109
|
+
}, {
|
110
|
+
country: string;
|
111
|
+
locality: string;
|
112
|
+
}>;
|
113
|
+
taxIdCode: z.ZodString;
|
114
|
+
}, "strip", z.ZodTypeAny, {
|
115
|
+
uniqueId: string;
|
116
|
+
givenName: string;
|
117
|
+
familyName: string;
|
118
|
+
birthdate: string;
|
119
|
+
placeOfBirth: {
|
120
|
+
country: string;
|
121
|
+
locality: string;
|
122
|
+
};
|
123
|
+
taxIdCode: string;
|
124
|
+
}, {
|
125
|
+
uniqueId: string;
|
126
|
+
givenName: string;
|
127
|
+
familyName: string;
|
128
|
+
birthdate: string;
|
129
|
+
placeOfBirth: {
|
130
|
+
country: string;
|
131
|
+
locality: string;
|
132
|
+
};
|
133
|
+
taxIdCode: string;
|
134
|
+
}>;
|
135
|
+
}, "strip", z.ZodTypeAny, {
|
136
|
+
verification: {
|
137
|
+
trustFramework: "eidas";
|
138
|
+
assuranceLevel: string;
|
139
|
+
evidence: {
|
140
|
+
type: string;
|
141
|
+
record: {
|
142
|
+
type: string;
|
143
|
+
source: {
|
144
|
+
organization_name: string;
|
145
|
+
organization_id: string;
|
146
|
+
country_code: string;
|
147
|
+
};
|
148
|
+
};
|
149
|
+
}[];
|
150
|
+
};
|
151
|
+
claims: {
|
152
|
+
uniqueId: string;
|
153
|
+
givenName: string;
|
154
|
+
familyName: string;
|
155
|
+
birthdate: string;
|
156
|
+
placeOfBirth: {
|
157
|
+
country: string;
|
158
|
+
locality: string;
|
159
|
+
};
|
160
|
+
taxIdCode: string;
|
161
|
+
};
|
162
|
+
issuer: string;
|
163
|
+
issuedAt: Date;
|
164
|
+
expiration: Date;
|
165
|
+
}, {
|
166
|
+
verification: {
|
167
|
+
trustFramework: "eidas";
|
168
|
+
assuranceLevel: string;
|
169
|
+
evidence: {
|
170
|
+
type: string;
|
171
|
+
record: {
|
172
|
+
type: string;
|
173
|
+
source: {
|
174
|
+
organization_name: string;
|
175
|
+
organization_id: string;
|
176
|
+
country_code: string;
|
177
|
+
};
|
178
|
+
};
|
179
|
+
}[];
|
180
|
+
};
|
181
|
+
claims: {
|
182
|
+
uniqueId: string;
|
183
|
+
givenName: string;
|
184
|
+
familyName: string;
|
185
|
+
birthdate: string;
|
186
|
+
placeOfBirth: {
|
187
|
+
country: string;
|
188
|
+
locality: string;
|
189
|
+
};
|
190
|
+
taxIdCode: string;
|
191
|
+
};
|
192
|
+
issuer: string;
|
193
|
+
issuedAt: Date;
|
194
|
+
expiration: Date;
|
195
|
+
}>;
|
196
|
+
//# sourceMappingURL=types.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/pid/sd-jwt/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB;;;;;GAKG;AACH,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;AACtC,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBd,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"converters.test.d.ts","sourceRoot":"","sources":["../../../../src/sd-jwt/__test__/converters.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../../../src/sd-jwt/__test__/types.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../../src/sd-jwt/converters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,UAAU,EAAE,EACzB,SAAS,EAAE,MAAM,OAmBlB"}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { z } from "zod";
|
2
|
+
import { Disclosure } from "./types";
|
3
|
+
import type { JWK } from "src/utils/jwk";
|
4
|
+
/**
|
5
|
+
* Decode a given SD-JWT with Disclosures to get the parsed SD-JWT object they define.
|
6
|
+
* It ensures provided data is in a valid shape.
|
7
|
+
*
|
8
|
+
* It DOES NOT verify token signature nor check disclosures are correctly referenced by the SD-JWT.
|
9
|
+
* Use {@link verify} instead
|
10
|
+
*
|
11
|
+
* @function
|
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
|
14
|
+
*
|
15
|
+
* @returns The parsed SD-JWT token and the parsed disclosures
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
export declare const decode: <S extends z.AnyZodObject>(token: string, schema: S) => {
|
19
|
+
sdJwt: z.TypeOf<S>;
|
20
|
+
disclosures: Disclosure[];
|
21
|
+
};
|
22
|
+
/**
|
23
|
+
* Verify a given SD-JWT with Disclosures
|
24
|
+
* Same as {@link decode} plus:
|
25
|
+
* - token signature verification
|
26
|
+
* - ensure disclosures are well-defined inside the SD-JWT
|
27
|
+
*
|
28
|
+
* @async @function
|
29
|
+
*
|
30
|
+
*
|
31
|
+
* @param token The encoded token that represents a valid sd-jwt for verifiable credentials
|
32
|
+
* @param publicKey The public key to validate the signature
|
33
|
+
* @param schema Schema to use to parse the SD-JWT
|
34
|
+
*
|
35
|
+
* @returns The parsed SD-JWT token and the parsed disclosures
|
36
|
+
*
|
37
|
+
*/
|
38
|
+
export declare const verify: <S extends z.AnyZodObject>(token: string, publicKey: JWK, schema: S) => Promise<{
|
39
|
+
sdJwt: z.TypeOf<S>;
|
40
|
+
disclosures: Disclosure[];
|
41
|
+
}>;
|
42
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +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;AAMxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,oCACV,MAAM;;iBAEsB,UAAU,EAAE;CAqBhD,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,MAAM,oCACV,MAAM,aACF,GAAG;;iBAE6B,UAAU,EAAE;EAqBxD,CAAC"}
|