@pagopa/io-react-native-wallet 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/credential/issuance/06-obtain-credential.js +1 -5
- package/lib/commonjs/credential/issuance/06-obtain-credential.js.map +1 -1
- package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js +33 -21
- package/lib/commonjs/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js +318 -24
- package/lib/commonjs/credential/presentation/07-evaluate-input-descriptor.js.map +1 -1
- package/lib/commonjs/credential/presentation/08-send-authorization-response.js +47 -83
- package/lib/commonjs/credential/presentation/08-send-authorization-response.js.map +1 -1
- package/lib/commonjs/credential/presentation/errors.js +18 -1
- package/lib/commonjs/credential/presentation/errors.js.map +1 -1
- package/lib/commonjs/credential/presentation/index.js +8 -2
- package/lib/commonjs/credential/presentation/index.js.map +1 -1
- package/lib/commonjs/credential/presentation/types.js +6 -2
- package/lib/commonjs/credential/presentation/types.js.map +1 -1
- package/lib/commonjs/entity/trust/chain.js.map +1 -1
- package/lib/commonjs/mdoc/index.js +45 -13
- package/lib/commonjs/mdoc/index.js.map +1 -1
- package/lib/commonjs/sd-jwt/index.js +41 -1
- package/lib/commonjs/sd-jwt/index.js.map +1 -1
- package/lib/commonjs/utils/crypto.js +70 -4
- package/lib/commonjs/utils/crypto.js.map +1 -1
- package/lib/commonjs/utils/string.js +6 -7
- package/lib/commonjs/utils/string.js.map +1 -1
- package/lib/module/credential/issuance/06-obtain-credential.js +1 -5
- package/lib/module/credential/issuance/06-obtain-credential.js.map +1 -1
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js +33 -21
- package/lib/module/credential/issuance/07-verify-and-parse-credential.js.map +1 -1
- package/lib/module/credential/presentation/07-evaluate-input-descriptor.js +311 -23
- package/lib/module/credential/presentation/07-evaluate-input-descriptor.js.map +1 -1
- package/lib/module/credential/presentation/08-send-authorization-response.js +46 -81
- package/lib/module/credential/presentation/08-send-authorization-response.js.map +1 -1
- package/lib/module/credential/presentation/errors.js +16 -0
- package/lib/module/credential/presentation/errors.js.map +1 -1
- package/lib/module/credential/presentation/index.js +2 -2
- package/lib/module/credential/presentation/index.js.map +1 -1
- package/lib/module/credential/presentation/types.js +6 -2
- package/lib/module/credential/presentation/types.js.map +1 -1
- package/lib/module/entity/trust/chain.js.map +1 -1
- package/lib/module/mdoc/index.js +43 -12
- package/lib/module/mdoc/index.js.map +1 -1
- package/lib/module/sd-jwt/index.js +40 -1
- package/lib/module/sd-jwt/index.js.map +1 -1
- package/lib/module/utils/crypto.js +67 -2
- package/lib/module/utils/crypto.js.map +1 -1
- package/lib/module/utils/string.js +4 -6
- package/lib/module/utils/string.js.map +1 -1
- package/lib/typescript/credential/issuance/06-obtain-credential.d.ts.map +1 -1
- package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts +1 -1
- package/lib/typescript/credential/issuance/07-verify-and-parse-credential.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/07-evaluate-input-descriptor.d.ts +106 -9
- package/lib/typescript/credential/presentation/07-evaluate-input-descriptor.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts +4 -33
- package/lib/typescript/credential/presentation/08-send-authorization-response.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/errors.d.ts +11 -0
- package/lib/typescript/credential/presentation/errors.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/index.d.ts +3 -3
- package/lib/typescript/credential/presentation/index.d.ts.map +1 -1
- package/lib/typescript/credential/presentation/types.d.ts +18 -6
- package/lib/typescript/credential/presentation/types.d.ts.map +1 -1
- package/lib/typescript/entity/trust/chain.d.ts.map +1 -1
- package/lib/typescript/mdoc/index.d.ts +6 -2
- package/lib/typescript/mdoc/index.d.ts.map +1 -1
- package/lib/typescript/sd-jwt/index.d.ts +19 -0
- package/lib/typescript/sd-jwt/index.d.ts.map +1 -1
- package/lib/typescript/utils/crypto.d.ts +8 -0
- package/lib/typescript/utils/crypto.d.ts.map +1 -1
- package/lib/typescript/utils/errors.d.ts.map +1 -1
- package/lib/typescript/utils/misc.d.ts.map +1 -1
- package/lib/typescript/utils/string.d.ts +3 -3
- package/lib/typescript/utils/string.d.ts.map +1 -1
- package/package.json +16 -14
- package/src/credential/issuance/06-obtain-credential.ts +1 -7
- package/src/credential/issuance/07-verify-and-parse-credential.ts +37 -16
- package/src/credential/presentation/07-evaluate-input-descriptor.ts +459 -49
- package/src/credential/presentation/08-send-authorization-response.ts +57 -101
- package/src/credential/presentation/errors.ts +16 -0
- package/src/credential/presentation/index.ts +8 -4
- package/src/credential/presentation/types.ts +16 -3
- package/src/entity/trust/chain.ts +14 -10
- package/src/mdoc/index.ts +72 -15
- package/src/sd-jwt/index.ts +49 -1
- package/src/utils/crypto.ts +61 -2
- package/src/utils/errors.ts +2 -2
- package/src/utils/misc.ts +2 -2
- package/src/utils/string.ts +4 -6
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "SdJwt4VC", {
|
|
10
10
|
return _types.SdJwt4VC;
|
11
11
|
}
|
12
12
|
});
|
13
|
-
exports.verify = exports.disclose = exports.decode = void 0;
|
13
|
+
exports.verify = exports.prepareVpToken = exports.disclose = exports.decode = void 0;
|
14
14
|
var _ioReactNativeJwt = require("@pagopa/io-react-native-jwt");
|
15
15
|
var _types = require("./types");
|
16
16
|
var _verifier = require("./verifier");
|
@@ -165,5 +165,45 @@ const verify = async (token, publicKey, customSchema) => {
|
|
165
165
|
disclosures: decoded.disclosures.map(d => d.decoded)
|
166
166
|
};
|
167
167
|
};
|
168
|
+
|
169
|
+
/**
|
170
|
+
* Prepares a Verified Presentation (VP) token to be sent as part of an
|
171
|
+
* authorization response in an OpenID 4 Verifiable Presentations flow.
|
172
|
+
*
|
173
|
+
* @param nonce - The nonce provided by the relying party.
|
174
|
+
* @param client_id - The client identifier of the relying party.
|
175
|
+
* @param presentation - An object containing the verifiable credential, the claims to disclose,
|
176
|
+
* and the cryptographic context for signing.
|
177
|
+
* @returns An object containing the signed VP token (`vp_token`).
|
178
|
+
*
|
179
|
+
* @remarks
|
180
|
+
* 1. The `disclose()` function is used to produce a token with only the requested claims.
|
181
|
+
* 2. A KB-JWT is then signed, including sd_hash and `nonce`.
|
182
|
+
* 3. The `vp_token` is composed of the disclosed VP and the KB-JWT.
|
183
|
+
*/
|
168
184
|
exports.verify = verify;
|
185
|
+
const prepareVpToken = async (nonce, client_id, _ref2) => {
|
186
|
+
let [verifiableCredential, requestedClaims, cryptoContext] = _ref2;
|
187
|
+
// Produce a VP token with only requested claims from the verifiable credential
|
188
|
+
const {
|
189
|
+
token: vp
|
190
|
+
} = await disclose(verifiableCredential, requestedClaims);
|
191
|
+
|
192
|
+
// <Issuer-signed JWT>~<Disclosure 1>~<Disclosure N>~
|
193
|
+
const sd_hash = await (0, _ioReactNativeJwt.sha256ToBase64)(`${vp}~`);
|
194
|
+
const kbJwt = await new _ioReactNativeJwt.SignJWT(cryptoContext).setProtectedHeader({
|
195
|
+
typ: "kb+jwt",
|
196
|
+
alg: "ES256"
|
197
|
+
}).setPayload({
|
198
|
+
sd_hash,
|
199
|
+
nonce: nonce
|
200
|
+
}).setAudience(client_id).setIssuedAt().sign();
|
201
|
+
|
202
|
+
// <Issuer-signed JWT>~<Disclosure 1>~...~<Disclosure N>~<KB-JWT>
|
203
|
+
const vp_token = [vp, kbJwt].join("~");
|
204
|
+
return {
|
205
|
+
vp_token
|
206
|
+
};
|
207
|
+
};
|
208
|
+
exports.prepareVpToken = prepareVpToken;
|
169
209
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_ioReactNativeJwt","require","_types","_verifier","Errors","_interopRequireWildcard","exports","_jsBase","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","decodeDisclosure","encoded","utf8String","Base64","decode","decoded","Disclosure","parse","JSON","token","customSchema","slice","rawSdJwt","rawDisclosures","split","decodedJwt","decodeJwt","parser","SdJwt4VC","sdJwt","header","protectedHeader","payload","disclosures","map","disclose","claims","paths","Promise","all","claim","disclosure","find","_ref","name","ClaimsNotFoundBetweenDisclosures","hash","sha256ToBase64","_sd","includes","index","indexOf","path","ClaimsNotFoundInToken","filteredDisclosures","filter","d","disclosedToken","join","verify","publicKey","verifyJwt","verifyDisclosure"],"sourceRoot":"../../../src","sources":["sd-jwt/index.ts"],"mappings":";;;;;;;;;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAC,uBAAA,CAAAJ,OAAA;AAAmCK,OAAA,CAAAF,MAAA,GAAAA,MAAA;AACnC,IAAAG,OAAA,GAAAN,OAAA;AAAmC,SAAAO,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;
|
1
|
+
{"version":3,"names":["_ioReactNativeJwt","require","_types","_verifier","Errors","_interopRequireWildcard","exports","_jsBase","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","decodeDisclosure","encoded","utf8String","Base64","decode","decoded","Disclosure","parse","JSON","token","customSchema","slice","rawSdJwt","rawDisclosures","split","decodedJwt","decodeJwt","parser","SdJwt4VC","sdJwt","header","protectedHeader","payload","disclosures","map","disclose","claims","paths","Promise","all","claim","disclosure","find","_ref","name","ClaimsNotFoundBetweenDisclosures","hash","sha256ToBase64","_sd","includes","index","indexOf","path","ClaimsNotFoundInToken","filteredDisclosures","filter","d","disclosedToken","join","verify","publicKey","verifyJwt","verifyDisclosure","prepareVpToken","nonce","client_id","_ref2","verifiableCredential","requestedClaims","cryptoContext","vp","sd_hash","kbJwt","SignJWT","setProtectedHeader","typ","alg","setPayload","setAudience","setIssuedAt","sign","vp_token"],"sourceRoot":"../../../src","sources":["sd-jwt/index.ts"],"mappings":"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"}
|
@@ -3,12 +3,13 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.withEphemeralKey = exports.parsePublicKey = exports.getSigningJwk = exports.createCryptoContextFor = exports.convertCertToPem = void 0;
|
6
|
+
exports.withEphemeralKey = exports.parsePublicKey = exports.getSigningJwk = exports.createCryptoContextFor = exports.convertCertToPem = exports.compareKeysByThumbprint = void 0;
|
7
7
|
var _ioReactNativeCrypto = require("@pagopa/io-react-native-crypto");
|
8
8
|
var _reactNativeUuid = _interopRequireDefault(require("react-native-uuid"));
|
9
9
|
var _ioReactNativeJwt = require("@pagopa/io-react-native-jwt");
|
10
|
-
var _jwk = require("./jwk");
|
11
10
|
var _jsrsasign = require("jsrsasign");
|
11
|
+
var _jwk = require("./jwk");
|
12
|
+
var _buffer = require("buffer");
|
12
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
14
|
/**
|
14
15
|
* Create a CryptoContext bound to a key pair.
|
@@ -25,7 +26,7 @@ const createCryptoContextFor = keytag => {
|
|
25
26
|
* @returns The public key.
|
26
27
|
*/
|
27
28
|
async getPublicKey() {
|
28
|
-
return (0, _ioReactNativeCrypto.getPublicKey)(keytag).then(
|
29
|
+
return (0, _ioReactNativeCrypto.getPublicKey)(keytag).then(fixBase64WithLeadingZero).then(async jwk => ({
|
29
30
|
...jwk,
|
30
31
|
// Keys in the TEE are not stored with their KID, which is supposed to be assigned when they are included in JWK sets.
|
31
32
|
// (that is, KID is not a propoerty of the key itself, but it's property used to identify a key in a set).
|
@@ -46,6 +47,59 @@ const createCryptoContextFor = keytag => {
|
|
46
47
|
};
|
47
48
|
};
|
48
49
|
|
50
|
+
/**
|
51
|
+
* This function takes a JSON Web Key (JWK) and returns a new JWK with its base64-url properties (x, y, e, n) processed.
|
52
|
+
* Each property is passed through the `removeLeadingZeroAndParseb64u` function if it exists, which fixes any unwanted leading zeros.
|
53
|
+
*
|
54
|
+
* @param key - The input JSON Web Key that may contain properties with potential leading zero issues.
|
55
|
+
* @returns A new JSON Web Key with the processed properties.
|
56
|
+
*/
|
57
|
+
exports.createCryptoContextFor = createCryptoContextFor;
|
58
|
+
const fixBase64WithLeadingZero = key => {
|
59
|
+
const {
|
60
|
+
x,
|
61
|
+
y,
|
62
|
+
e,
|
63
|
+
n,
|
64
|
+
...pk
|
65
|
+
} = key;
|
66
|
+
return {
|
67
|
+
...pk,
|
68
|
+
...(x ? {
|
69
|
+
x: removeLeadingZeroAndParseb64u(x)
|
70
|
+
} : {}),
|
71
|
+
...(y ? {
|
72
|
+
y: removeLeadingZeroAndParseb64u(y)
|
73
|
+
} : {}),
|
74
|
+
...(e ? {
|
75
|
+
e: removeLeadingZeroAndParseb64u(e)
|
76
|
+
} : {}),
|
77
|
+
...(n ? {
|
78
|
+
n: removeLeadingZeroAndParseb64u(n)
|
79
|
+
} : {})
|
80
|
+
};
|
81
|
+
};
|
82
|
+
|
83
|
+
/**
|
84
|
+
* This function processes a base64-encoded string to remove any unwanted leading zeros.
|
85
|
+
* It converts the input base64 string into a buffer, then to a hex string, checks for a leading "00",
|
86
|
+
* and removes it if present. The result is then converted back to a base64-url.
|
87
|
+
*
|
88
|
+
* @param input - The base64 encoded string to process.
|
89
|
+
* @returns A new base64-url encoded string with any leading zero removed.
|
90
|
+
*/
|
91
|
+
const removeLeadingZeroAndParseb64u = input => {
|
92
|
+
// Decode base64 input into a Buffer
|
93
|
+
const buffer = _buffer.Buffer.from(input, "base64");
|
94
|
+
const hex = buffer.toString("hex");
|
95
|
+
// If the hex string starts with "00", remove the first two characters
|
96
|
+
const fixedHex = hex.startsWith("00") ? hex.slice(2) : hex;
|
97
|
+
const newBuffer = _buffer.Buffer.from(fixedHex, "hex");
|
98
|
+
|
99
|
+
// removePadding convert base64 string to base64-url
|
100
|
+
return (0, _ioReactNativeJwt.removePadding)(newBuffer.toString("base64"));
|
101
|
+
};
|
102
|
+
|
49
103
|
/**
|
50
104
|
* Executes the input function injecting an ephemeral crypto context.
|
51
105
|
* An ephemeral crypto context is a context which is bound to a key
|
@@ -54,7 +108,6 @@ const createCryptoContextFor = keytag => {
|
|
54
108
|
* @param fn The procedure to be executed
|
55
109
|
* @returns The returned value of the input procedure.
|
56
110
|
*/
|
57
|
-
exports.createCryptoContextFor = createCryptoContextFor;
|
58
111
|
const withEphemeralKey = async fn => {
|
59
112
|
// Use an ephemeral key to be destroyed after use
|
60
113
|
const keytag = `ephemeral-${_reactNativeUuid.default.v4()}`;
|
@@ -101,5 +154,18 @@ const getSigningJwk = publicKey => ({
|
|
101
154
|
..._jwk.JWK.parse(_jsrsasign.KEYUTIL.getJWKFromKey(publicKey)),
|
102
155
|
use: "sig"
|
103
156
|
});
|
157
|
+
|
158
|
+
/**
|
159
|
+
* This function takes two {@link PublicKey} and evaluates and compares their thumbprints
|
160
|
+
* @param key1 The first key
|
161
|
+
* @param key2 The second key
|
162
|
+
* @returns true if the keys' thumbprints are equal, false otherwise
|
163
|
+
*/
|
104
164
|
exports.getSigningJwk = getSigningJwk;
|
165
|
+
const compareKeysByThumbprint = async (key1, key2) => {
|
166
|
+
//Parallel for optimization
|
167
|
+
const [thumbprint1, thumbprint2] = await Promise.all([(0, _ioReactNativeJwt.thumbprint)(key1), (0, _ioReactNativeJwt.thumbprint)(key2)]);
|
168
|
+
return thumbprint1 === thumbprint2;
|
169
|
+
};
|
170
|
+
exports.compareKeysByThumbprint = compareKeysByThumbprint;
|
105
171
|
//# sourceMappingURL=crypto.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_ioReactNativeCrypto","require","_reactNativeUuid","_interopRequireDefault","_ioReactNativeJwt","_jwk","
|
1
|
+
{"version":3,"names":["_ioReactNativeCrypto","require","_reactNativeUuid","_interopRequireDefault","_ioReactNativeJwt","_jsrsasign","_jwk","_buffer","obj","__esModule","default","createCryptoContextFor","keytag","getPublicKey","then","fixBase64WithLeadingZero","jwk","kid","thumbprint","getSignature","value","sign","exports","key","x","y","e","n","pk","removeLeadingZeroAndParseb64u","input","buffer","Buffer","from","hex","toString","fixedHex","startsWith","slice","newBuffer","removePadding","withEphemeralKey","fn","uuid","v4","generate","ephemeralContext","finally","deleteKey","convertCertToPem","certificate","parsePublicKey","pemCert","x509","X509","readCertPEM","publicKey","RSAKey","KJUR","crypto","ECDSA","undefined","getSigningJwk","JWK","parse","KEYUTIL","getJWKFromKey","use","compareKeysByThumbprint","key1","key2","thumbprint1","thumbprint2","Promise","all"],"sourceRoot":"../../../src","sources":["utils/crypto.ts"],"mappings":"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"}
|
@@ -3,8 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.obfuscateString = exports.
|
7
|
-
var _buffer = require("buffer");
|
6
|
+
exports.obfuscateString = exports.base64ToBase64Url = void 0;
|
8
7
|
/**
|
9
8
|
* Randomly obfuscates characters in a string by replacing them with a specified character.
|
10
9
|
*
|
@@ -49,14 +48,14 @@ const obfuscateString = function (value) {
|
|
49
48
|
};
|
50
49
|
|
51
50
|
/**
|
52
|
-
* Converts a
|
51
|
+
* Converts a base64 string to a Base64 URL-encoded string.
|
53
52
|
*
|
54
|
-
* @param byteString - The input string in
|
53
|
+
* @param byteString - The input string in base64 format.
|
55
54
|
* @returns The Base64 URL-encoded string.
|
56
55
|
*/
|
57
56
|
exports.obfuscateString = obfuscateString;
|
58
|
-
const
|
59
|
-
return
|
57
|
+
const base64ToBase64Url = base64 => {
|
58
|
+
return base64.replace(/\+/g, "-").replace(/\//g, "_").replace(/[=]+$/, "");
|
60
59
|
};
|
61
|
-
exports.
|
60
|
+
exports.base64ToBase64Url = base64ToBase64Url;
|
62
61
|
//# sourceMappingURL=string.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["
|
1
|
+
{"version":3,"names":["obfuscateString","value","percentage","arguments","length","undefined","obfuscatedChar","safePercentage","Math","max","min","charsToObfuscate","floor","chars","split","positions","Array","from","_","i","sort","random","slice","forEach","pos","join","exports","base64ToBase64Url","base64","replace"],"sourceRoot":"../../../src","sources":["utils/string.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,eAAe,GAAG,SAAAA,CAC7BC,KAAa,EAGF;EAAA,IAFXC,UAAkB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,IACvBG,cAAsB,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAE5B,IAAI,CAACF,KAAK,EAAE;IACV,OAAO,EAAE;EACX;;EAEA;EACA,MAAMM,cAAc,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,GAAG,EAAER,UAAU,CAAC,CAAC;;EAE7D;EACA,MAAMS,gBAAgB,GAAGH,IAAI,CAACI,KAAK,CAAEX,KAAK,CAACG,MAAM,GAAGG,cAAc,GAAI,GAAG,CAAC;;EAE1E;EACA,MAAMM,KAAK,GAAGZ,KAAK,CAACa,KAAK,CAAC,EAAE,CAAC;;EAE7B;EACA,MAAMC,SAAS,GAAGC,KAAK,CAACC,IAAI,CAAC;IAAEb,MAAM,EAAEH,KAAK,CAACG;EAAO,CAAC,EAAE,CAACc,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAAC,CAChEC,IAAI,CAAC,MAAMZ,IAAI,CAACa,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAC/BC,KAAK,CAAC,CAAC,EAAEX,gBAAgB,CAAC;;EAE7B;EACAI,SAAS,CAACQ,OAAO,CAAEC,GAAG,IAAK;IACzBX,KAAK,CAACW,GAAG,CAAC,GAAGlB,cAAc;EAC7B,CAAC,CAAC;EAEF,OAAOO,KAAK,CAACY,IAAI,CAAC,EAAE,CAAC;AACvB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AALAC,OAAA,CAAA1B,eAAA,GAAAA,eAAA;AAMO,MAAM2B,iBAAiB,GAAIC,MAAc,IAAa;EAC3D,OAAOA,MAAM,CAACC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AAC5E,CAAC;AAACH,OAAA,CAAAC,iBAAA,GAAAA,iBAAA"}
|
@@ -4,7 +4,6 @@ import { IssuerResponseError, IssuerResponseErrorCodes, ResponseErrorBuilder, Un
|
|
4
4
|
import { CredentialResponse } from "./types";
|
5
5
|
import { createDPopToken } from "../../utils/dpop";
|
6
6
|
import uuid from "react-native-uuid";
|
7
|
-
import { byteStringToBase64Url } from "../../utils/string";
|
8
7
|
export const createNonceProof = async (nonce, issuer, audience, ctx) => {
|
9
8
|
const jwk = await ctx.getPublicKey();
|
10
9
|
return new SignJWT(ctx).setPayload({
|
@@ -96,10 +95,7 @@ export const obtainCredential = async (issuerConf, accessToken, clientId, creden
|
|
96
95
|
}
|
97
96
|
|
98
97
|
/* temporary base64 parsing for the "mso_mdoc" format until the credential submission with this format is fixed. */
|
99
|
-
return
|
100
|
-
...credentialRes.data,
|
101
|
-
credential: byteStringToBase64Url(credentialRes.data.credential)
|
102
|
-
} : credentialRes.data;
|
98
|
+
return credentialRes.data;
|
103
99
|
};
|
104
100
|
|
105
101
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["sha256ToBase64","SignJWT","hasStatusOrThrow","IssuerResponseError","IssuerResponseErrorCodes","ResponseErrorBuilder","UnexpectedStatusCodeError","ValidationFailed","CredentialResponse","createDPopToken","uuid","
|
1
|
+
{"version":3,"names":["sha256ToBase64","SignJWT","hasStatusOrThrow","IssuerResponseError","IssuerResponseErrorCodes","ResponseErrorBuilder","UnexpectedStatusCodeError","ValidationFailed","CredentialResponse","createDPopToken","uuid","createNonceProof","nonce","issuer","audience","ctx","jwk","getPublicKey","setPayload","setProtectedHeader","typ","setAudience","setIssuer","setIssuedAt","setExpirationTime","sign","obtainCredential","issuerConf","accessToken","clientId","credentialDefinition","context","credentialCryptoContext","appFetch","fetch","dPopCryptoContext","credentialUrl","credential_endpoint","signedNonceProof","c_nonce","containsCredentialDefinition","authorization_details","some","detail","credential_configuration_id","type","message","credential","credential_configurations_supported","format","credentialRequestFormBody","vct","proof","jwt","proof_type","tokenRequestSignedDPop","htm","htu","jti","v4","ath","access_token","credentialRes","method","headers","DPoP","Authorization","token_type","body","JSON","stringify","then","res","json","safeParse","catch","handleObtainCredentialError","success","reason","error","data","e","handle","code","CredentialRequestFailed","buildFrom"],"sourceRoot":"../../../../src","sources":["credential/issuance/06-obtain-credential.ts"],"mappings":"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"}
|
@@ -98,12 +98,12 @@ const parseCredentialSdJwt = function (credentials_supported, _ref) {
|
|
98
98
|
}
|
99
99
|
return definedValues;
|
100
100
|
};
|
101
|
-
const parseCredentialMDoc = function (credentials_supported, _ref8) {
|
101
|
+
const parseCredentialMDoc = function (credentials_supported, credential_type, _ref8) {
|
102
102
|
let {
|
103
|
-
|
103
|
+
issuerSigned
|
104
104
|
} = _ref8;
|
105
|
-
let includeUndefinedAttributes = arguments.length >
|
106
|
-
const credentialSubject = credentials_supported[
|
105
|
+
let includeUndefinedAttributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
106
|
+
const credentialSubject = credentials_supported[credential_type];
|
107
107
|
if (!credentialSubject) {
|
108
108
|
throw new IoWalletError("Credential type not supported by the issuer");
|
109
109
|
}
|
@@ -121,10 +121,10 @@ const parseCredentialMDoc = function (credentials_supported, _ref8) {
|
|
121
121
|
return [namespace, claimNameKey, definition];
|
122
122
|
});
|
123
123
|
});
|
124
|
-
if (!
|
124
|
+
if (!issuerSigned.nameSpaces) {
|
125
125
|
throw new IoWalletError("Missing claims in the credential");
|
126
126
|
}
|
127
|
-
const flatNamespaces = Object.entries(
|
127
|
+
const flatNamespaces = Object.entries(issuerSigned.nameSpaces).flatMap(_ref11 => {
|
128
128
|
let [namespace, values] = _ref11;
|
129
129
|
return values.map(v => [namespace, v.elementIdentifier, v.elementValue]);
|
130
130
|
});
|
@@ -228,25 +228,37 @@ async function verifyCredentialSdJwt(rawCredential, issuerKeys, holderBindingCon
|
|
228
228
|
*
|
229
229
|
*/
|
230
230
|
async function verifyCredentialMDoc(rawCredential, issuerKeys, holderBindingContext) {
|
231
|
-
|
231
|
+
/**
|
232
|
+
* For the moment, being that issues in the crypto key generation
|
233
|
+
* have been found on Android, the check for the deviceKey inside
|
234
|
+
* of the mDoc is skipped, so we are not interested in the holderBindingKey
|
235
|
+
*/
|
236
|
+
const [decodedCredential, _] =
|
232
237
|
// parallel for optimization
|
233
238
|
await Promise.all([verifyMdoc(rawCredential, issuerKeys), holderBindingContext.getPublicKey()]);
|
234
|
-
|
235
|
-
// TODO Implement the holder binding verification for MDOC
|
236
|
-
|
237
|
-
// Get only the first decoded credential
|
238
|
-
|
239
239
|
if (!decodedCredential) {
|
240
240
|
throw new IoWalletError("No MDOC credentials found!");
|
241
241
|
}
|
242
|
-
|
243
|
-
|
244
|
-
|
242
|
+
|
243
|
+
/**
|
244
|
+
* For the moment, being that issues in the crypto key generation
|
245
|
+
* have been found on Android, the check for the deviceKey inside
|
246
|
+
* of the mDoc is skipped.
|
247
|
+
*/
|
248
|
+
//const key = decodedCredential.mDoc.issuerSigned.issuerAuth.payload.deviceKeyInfo.deviceKey;
|
249
|
+
//
|
250
|
+
//if (!compareKeysByThumbprint(key, holderBindingKey as PublicKey)) {
|
251
|
+
// throw new IoWalletError(
|
252
|
+
// `Failed to verify holder binding, holder binding key and mDoc deviceKey don't match`
|
253
|
+
// );
|
254
|
+
//}
|
255
|
+
|
256
|
+
return decodedCredential;
|
245
257
|
}
|
246
258
|
|
247
259
|
// utility type that specialize VerifyAndParseCredential for given format
|
248
260
|
|
249
|
-
const verifyAndParseCredentialSdJwt = async (issuerConf, credential, _, _ref18) => {
|
261
|
+
const verifyAndParseCredentialSdJwt = async (issuerConf, credential, _, __, _ref18) => {
|
250
262
|
let {
|
251
263
|
credentialCryptoContext,
|
252
264
|
ignoreMissingAttributes,
|
@@ -261,14 +273,14 @@ const verifyAndParseCredentialSdJwt = async (issuerConf, credential, _, _ref18)
|
|
261
273
|
issuedAt: typeof maybeIssuedAt === "number" ? new Date(maybeIssuedAt * 1000) : undefined
|
262
274
|
};
|
263
275
|
};
|
264
|
-
const verifyAndParseCredentialMDoc = async (issuerConf, credential, _, _ref19) => {
|
276
|
+
const verifyAndParseCredentialMDoc = async (issuerConf, credential, _, credentialType, _ref19) => {
|
265
277
|
var _parsedCredential$exp, _parsedCredential$iss;
|
266
278
|
let {
|
267
279
|
credentialCryptoContext,
|
268
280
|
ignoreMissingAttributes
|
269
281
|
} = _ref19;
|
270
282
|
const decoded = await verifyCredentialMDoc(credential, issuerConf.keys, credentialCryptoContext);
|
271
|
-
const parsedCredential = parseCredentialMDoc(issuerConf.credential_configurations_supported, decoded, ignoreMissingAttributes);
|
283
|
+
const parsedCredential = parseCredentialMDoc(issuerConf.credential_configurations_supported, credentialType, decoded, ignoreMissingAttributes);
|
272
284
|
const expirationDate = extractElementValueAsDate(parsedCredential === null || parsedCredential === void 0 || (_parsedCredential$exp = parsedCredential.expiry_date) === null || _parsedCredential$exp === void 0 ? void 0 : _parsedCredential$exp.value);
|
273
285
|
if (!expirationDate) {
|
274
286
|
throw new IoWalletError(`expirationDate must be present!!`);
|
@@ -296,12 +308,12 @@ const verifyAndParseCredentialMDoc = async (issuerConf, credential, _, _ref19) =
|
|
296
308
|
* @throws {IoWalletError} If the credential is not bound to the provided user key
|
297
309
|
* @throws {IoWalletError} If the credential data fail to parse
|
298
310
|
*/
|
299
|
-
export const verifyAndParseCredential = async (issuerConf, credential, format, context) => {
|
311
|
+
export const verifyAndParseCredential = async (issuerConf, credential, format, credentialType, context) => {
|
300
312
|
if (format === "vc+sd-jwt") {
|
301
|
-
return verifyAndParseCredentialSdJwt(issuerConf, credential, format, context);
|
313
|
+
return verifyAndParseCredentialSdJwt(issuerConf, credential, format, credentialType, context);
|
302
314
|
}
|
303
315
|
if (format === "mso_mdoc") {
|
304
|
-
return verifyAndParseCredentialMDoc(issuerConf, credential, format, context);
|
316
|
+
return verifyAndParseCredentialMDoc(issuerConf, credential, format, credentialType, context);
|
305
317
|
}
|
306
318
|
throw new IoWalletError(`Unsupported credential format: ${format}`);
|
307
319
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["IoWalletError","SdJwt4VC","verify","verifySdJwt","verifyMdoc","getValueFromDisclosures","extractElementValueAsDate","parseCredentialSdJwt","credentials_supported","_ref","sdJwt","disclosures","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","credentialSubject","payload","vct","format","header","typ","claims","attrDefinitions","Object","entries","attrsNotInDisclosures","filter","_ref2","attrKey","some","_ref3","name","missing","map","_","join","received","definedValues","fromEntries","_ref4","_disclosures$find","definition","value","find","_ref5","display","reduce","names","_ref6","locale","undefinedValues","keys","includes","_ref7","key","parseCredentialMDoc","_ref8","mDoc","docType","flatMap","_ref9","namespace","claimName","_ref10","claimNameKey","issuerSigned","nameSpaces","flatNamespaces","_ref11","values","v","elementIdentifier","elementValue","_ref12","_flatNamespaces$find","attrDefNamespace","_ref13","_ref14","_ref15","_ref16","_ref17","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","getPublicKey","cnf","jwk","kid","verifyCredentialMDoc","verifyAndParseCredentialSdJwt","issuerConf","credential","_ref18","credentialCryptoContext","decoded","parsedCredential","credential_configurations_supported","maybeIssuedAt","expiration","Date","exp","issuedAt","verifyAndParseCredentialMDoc","_ref19","_parsedCredential$exp","_parsedCredential$iss","expirationDate","expiry_date","setDate","getDate","issue_date","verifyAndParseCredential","context"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["IoWalletError","SdJwt4VC","verify","verifySdJwt","verifyMdoc","getValueFromDisclosures","extractElementValueAsDate","parseCredentialSdJwt","credentials_supported","_ref","sdJwt","disclosures","ignoreMissingAttributes","arguments","length","undefined","includeUndefinedAttributes","credentialSubject","payload","vct","format","header","typ","claims","attrDefinitions","Object","entries","attrsNotInDisclosures","filter","_ref2","attrKey","some","_ref3","name","missing","map","_","join","received","definedValues","fromEntries","_ref4","_disclosures$find","definition","value","find","_ref5","display","reduce","names","_ref6","locale","undefinedValues","keys","includes","_ref7","key","parseCredentialMDoc","credential_type","_ref8","issuerSigned","flatMap","_ref9","namespace","claimName","_ref10","claimNameKey","nameSpaces","flatNamespaces","_ref11","values","v","elementIdentifier","elementValue","_ref12","_flatNamespaces$find","attrDefNamespace","_ref13","_ref14","_ref15","_ref16","_ref17","verifyCredentialSdJwt","rawCredential","issuerKeys","holderBindingContext","decodedCredential","holderBindingKey","Promise","all","getPublicKey","cnf","jwk","kid","verifyCredentialMDoc","verifyAndParseCredentialSdJwt","issuerConf","credential","__","_ref18","credentialCryptoContext","decoded","parsedCredential","credential_configurations_supported","maybeIssuedAt","expiration","Date","exp","issuedAt","verifyAndParseCredentialMDoc","credentialType","_ref19","_parsedCredential$exp","_parsedCredential$iss","expirationDate","expiry_date","setDate","getDate","issue_date","verifyAndParseCredential","context"],"sourceRoot":"../../../../src","sources":["credential/issuance/07-verify-and-parse-credential.ts"],"mappings":"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"}
|