@sphereon/ssi-sdk-ext.key-utils 0.26.1-next.11 → 0.26.1-next.17
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/dist/conversion.d.ts.map +1 -1
- package/dist/conversion.js +3 -2
- package/dist/conversion.js.map +1 -1
- package/dist/functions.d.ts +17 -5
- package/dist/functions.d.ts.map +1 -1
- package/dist/functions.js +215 -27
- package/dist/functions.js.map +1 -1
- package/dist/jwk-jcs.d.ts +9 -0
- package/dist/jwk-jcs.d.ts.map +1 -1
- package/dist/jwk-jcs.js +5 -8
- package/dist/jwk-jcs.js.map +1 -1
- package/dist/types/key-util-types.d.ts +5 -3
- package/dist/types/key-util-types.d.ts.map +1 -1
- package/package.json +6 -3
- package/src/conversion.ts +5 -4
- package/src/functions.ts +248 -42
- package/src/jwk-jcs.ts +6 -7
- package/src/types/key-util-types.ts +5 -3
package/dist/conversion.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,GAAG,EACH,UAAU,EACV,gBAAgB,EACjB,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"conversion.d.ts","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,GAAG,EACH,UAAU,EACV,gBAAgB,EACjB,MAAM,qBAAqB,CAAA;AAG5B,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,GAAG,CAWvD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY,CAWnD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,UAAU,CAa3D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,gBAAgB,GAAG,YAAY,CAa9E;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CA2B/F;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,4BAA4B,GAAG,uBAAuB,CA2B9H;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,iBAAiB,CAqB1G;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,GAAG,gBAAgB,CAqBjF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,eAAe,GAAG,UAAU,CAqB9E;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAqB5D"}
|
package/dist/conversion.js
CHANGED
|
@@ -22,13 +22,14 @@ exports.coseToJoseKeyOperation = coseToJoseKeyOperation;
|
|
|
22
22
|
exports.joseToCoseCurve = joseToCoseCurve;
|
|
23
23
|
exports.coseToJoseCurve = coseToJoseCurve;
|
|
24
24
|
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
25
|
+
const functions_1 = require("./functions");
|
|
25
26
|
function coseKeyToJwk(coseKey) {
|
|
26
27
|
const { x5chain, key_ops, crv, alg, baseIV, kty } = coseKey, rest = __rest(coseKey, ["x5chain", "key_ops", "crv", "alg", "baseIV", "kty"]);
|
|
27
|
-
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, rest), { kty: coseToJoseKty(kty) }), (crv && { crv: coseToJoseCurve(crv) })), (key_ops && { key_ops: key_ops.map(coseToJoseKeyOperation) })), (alg && { alg: coseToJoseSignatureAlg(alg) })), (baseIV && { iv: baseIV })), (x5chain && { x5c: x5chain }));
|
|
28
|
+
return (0, functions_1.removeNulls)(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, rest), { kty: coseToJoseKty(kty) }), (crv && { crv: coseToJoseCurve(crv) })), (key_ops && { key_ops: key_ops.map(coseToJoseKeyOperation) })), (alg && { alg: coseToJoseSignatureAlg(alg) })), (baseIV && { iv: baseIV })), (x5chain && { x5c: x5chain })));
|
|
28
29
|
}
|
|
29
30
|
function jwkToCoseKey(jwk) {
|
|
30
31
|
const { x5c, key_ops, crv, alg, iv, kty } = jwk, rest = __rest(jwk, ["x5c", "key_ops", "crv", "alg", "iv", "kty"]);
|
|
31
|
-
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, rest), { kty: joseToCoseKty(kty) }), (crv && { crv: joseToCoseCurve(crv) })), (key_ops && { key_ops: key_ops.map(joseToCoseKeyOperation) })), (alg && { alg: joseToCoseSignatureAlg(alg) })), (iv && { baseIV: iv })), (x5c && { x5chain: x5c }));
|
|
32
|
+
return (0, functions_1.removeNulls)(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, rest), { kty: joseToCoseKty(kty) }), (crv && { crv: joseToCoseCurve(crv) })), (key_ops && { key_ops: key_ops.map(joseToCoseKeyOperation) })), (alg && { alg: joseToCoseSignatureAlg(alg) })), (iv && { baseIV: iv })), (x5c && { x5chain: x5c })));
|
|
32
33
|
}
|
|
33
34
|
function coseToJoseKty(kty) {
|
|
34
35
|
switch (kty) {
|
package/dist/conversion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversion.js","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"conversion.js","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":"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"}
|
package/dist/functions.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { JoseSignatureAlgorithm, JWK } from '@sphereon/ssi-types';
|
|
2
2
|
import { IAgentContext, IKey, IKeyManager, ManagedKeyInfo, MinimalImportableKey } from '@veramo/core';
|
|
3
|
-
import { JsonWebKey } from 'did-resolver';
|
|
4
3
|
import { IImportProvidedOrGeneratedKeyArgs, JwkKeyUse, KeyTypeFromCryptographicSuiteArgs, SignatureAlgorithmFromKeyArgs, SignatureAlgorithmFromKeyTypeArgs, TKeyType } from './types';
|
|
5
4
|
export declare const logger: import("@sphereon/ssi-types").ISimpleLogger<unknown>;
|
|
6
5
|
/**
|
|
@@ -56,6 +55,13 @@ export declare const toJwk: (publicKeyHex: string, type: TKeyType, opts?: {
|
|
|
56
55
|
isPrivateKey?: boolean;
|
|
57
56
|
noKidThumbprint?: boolean;
|
|
58
57
|
}) => JWK;
|
|
58
|
+
/**
|
|
59
|
+
* Convert a JWK to a raw hex key.
|
|
60
|
+
* Currently supports `RSA` and `EC` keys. Extendable for other key types.
|
|
61
|
+
* @param jwk - The JSON Web Key object.
|
|
62
|
+
* @returns A string representing the key in raw hexadecimal format.
|
|
63
|
+
*/
|
|
64
|
+
export declare const jwkToRawHexKey: (jwk: JWK) => Promise<string>;
|
|
59
65
|
/**
|
|
60
66
|
* Determines the use param based upon the key/signature type or supplied use value.
|
|
61
67
|
*
|
|
@@ -76,10 +82,16 @@ export declare const hexStringFromUint8Array: (value: Uint8Array) => string;
|
|
|
76
82
|
export declare const signatureAlgorithmFromKey: (args: SignatureAlgorithmFromKeyArgs) => Promise<JoseSignatureAlgorithm>;
|
|
77
83
|
export declare const signatureAlgorithmFromKeyType: (args: SignatureAlgorithmFromKeyTypeArgs) => JoseSignatureAlgorithm;
|
|
78
84
|
export declare const keyTypeFromCryptographicSuite: (args: KeyTypeFromCryptographicSuiteArgs) => TKeyType;
|
|
79
|
-
export declare function
|
|
85
|
+
export declare function removeNulls<T>(obj: T | any): any;
|
|
86
|
+
/**
|
|
87
|
+
*
|
|
88
|
+
*/
|
|
89
|
+
export declare function verifyRawSignature({ data, signature, key: inputKey, opts, }: {
|
|
80
90
|
data: Uint8Array;
|
|
81
91
|
signature: Uint8Array;
|
|
82
|
-
key:
|
|
83
|
-
|
|
84
|
-
|
|
92
|
+
key: JWK;
|
|
93
|
+
opts?: {
|
|
94
|
+
signatureAlg?: JoseSignatureAlgorithm;
|
|
95
|
+
};
|
|
96
|
+
}): Promise<any>;
|
|
85
97
|
//# sourceMappingURL=functions.d.ts.map
|
package/dist/functions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
|
package/dist/functions.js
CHANGED
|
@@ -35,16 +35,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.keyTypeFromCryptographicSuite = exports.signatureAlgorithmFromKeyType = exports.signatureAlgorithmFromKey = exports.hexStringFromUint8Array = exports.toRawCompressedHexPublicKey = exports.isRawCompressedPublicKey = exports.asn1DerToRawPublicKey = exports.isAsn1Der = exports.padLeft = exports.jwkDetermineUse = exports.toJwk = exports.toJwkFromKey = exports.calculateJwkThumbprint = exports.toBase64url = exports.calculateJwkThumbprintForKey = exports.generatePrivateKeyHex = exports.getKms = exports.logger = void 0;
|
|
38
|
+
exports.keyTypeFromCryptographicSuite = exports.signatureAlgorithmFromKeyType = exports.signatureAlgorithmFromKey = exports.hexStringFromUint8Array = exports.toRawCompressedHexPublicKey = exports.isRawCompressedPublicKey = exports.asn1DerToRawPublicKey = exports.isAsn1Der = exports.padLeft = exports.jwkDetermineUse = exports.jwkToRawHexKey = exports.toJwk = exports.toJwkFromKey = exports.calculateJwkThumbprint = exports.toBase64url = exports.calculateJwkThumbprintForKey = exports.generatePrivateKeyHex = exports.getKms = exports.logger = void 0;
|
|
39
39
|
exports.importProvidedOrGeneratedKey = importProvidedOrGeneratedKey;
|
|
40
|
-
exports.
|
|
40
|
+
exports.removeNulls = removeNulls;
|
|
41
|
+
exports.verifyRawSignature = verifyRawSignature;
|
|
41
42
|
const random_1 = require("@ethersproject/random");
|
|
43
|
+
// Do not change these require statements to imports before we change to ESM. Breaks external CJS packages depending on this module
|
|
44
|
+
const { bls12_381 } = require('@noble/curves/bls12-381');
|
|
45
|
+
const { ed25519 } = require('@noble/curves/ed25519');
|
|
46
|
+
const { p256 } = require('@noble/curves/p256');
|
|
47
|
+
const { p384 } = require('@noble/curves/p384');
|
|
48
|
+
const { p521 } = require('@noble/curves/p521');
|
|
49
|
+
const { secp256k1 } = require('@noble/curves/secp256k1');
|
|
50
|
+
const { sha256, sha384, sha512 } = require('@noble/hashes/sha2');
|
|
42
51
|
const ssi_sdk_ext_x509_utils_1 = require("@sphereon/ssi-sdk-ext.x509-utils");
|
|
43
52
|
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
44
53
|
const ed25519_1 = require("@stablelib/ed25519");
|
|
45
54
|
const elliptic_1 = __importDefault(require("elliptic"));
|
|
55
|
+
const rsa = __importStar(require("micro-rsa-dsa-dh/rsa.js"));
|
|
46
56
|
const u8a = __importStar(require("uint8arrays"));
|
|
47
57
|
const digest_methods_1 = require("./digest-methods");
|
|
58
|
+
const jwk_jcs_1 = require("./jwk-jcs");
|
|
48
59
|
const types_1 = require("./types");
|
|
49
60
|
exports.logger = ssi_types_1.Loggers.DEFAULT.get('sphereon:key-utils');
|
|
50
61
|
/**
|
|
@@ -243,6 +254,81 @@ const toJwk = (publicKeyHex, type, opts) => {
|
|
|
243
254
|
return jwk;
|
|
244
255
|
};
|
|
245
256
|
exports.toJwk = toJwk;
|
|
257
|
+
/**
|
|
258
|
+
* Convert a JWK to a raw hex key.
|
|
259
|
+
* Currently supports `RSA` and `EC` keys. Extendable for other key types.
|
|
260
|
+
* @param jwk - The JSON Web Key object.
|
|
261
|
+
* @returns A string representing the key in raw hexadecimal format.
|
|
262
|
+
*/
|
|
263
|
+
const jwkToRawHexKey = (jwk) => __awaiter(void 0, void 0, void 0, function* () {
|
|
264
|
+
// TODO: Probably makes sense to have an option to do the same for private keys
|
|
265
|
+
if (jwk.kty === 'RSA') {
|
|
266
|
+
return rsaJwkToRawHexKey(jwk);
|
|
267
|
+
}
|
|
268
|
+
else if (jwk.kty === 'EC') {
|
|
269
|
+
return '04' + ecJwkToRawHexKey(jwk);
|
|
270
|
+
}
|
|
271
|
+
else if (jwk.kty === 'OKP') {
|
|
272
|
+
return okpJwkToRawHexKey(jwk);
|
|
273
|
+
}
|
|
274
|
+
else if (jwk.kty === 'oct') {
|
|
275
|
+
return octJwkToRawHexKey(jwk);
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
throw new Error(`Unsupported key type: ${jwk.kty}`);
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
exports.jwkToRawHexKey = jwkToRawHexKey;
|
|
282
|
+
/**
|
|
283
|
+
* Convert an RSA JWK to a raw hex key.
|
|
284
|
+
* @param jwk - The RSA JWK object.
|
|
285
|
+
* @returns A string representing the RSA key in raw hexadecimal format.
|
|
286
|
+
*/
|
|
287
|
+
function rsaJwkToRawHexKey(jwk) {
|
|
288
|
+
if (!jwk.n || !jwk.e) {
|
|
289
|
+
throw new Error("RSA JWK must contain 'n' and 'e' properties.");
|
|
290
|
+
}
|
|
291
|
+
const modulus = u8a.fromString(jwk.n, 'base64url'); // 'n' is the modulus
|
|
292
|
+
const exponent = u8a.fromString(jwk.e, 'base64url'); // 'e' is the exponent
|
|
293
|
+
return u8a.toString(modulus, 'hex') + u8a.toString(exponent, 'hex');
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Convert an EC JWK to a raw hex key.
|
|
297
|
+
* @param jwk - The EC JWK object.
|
|
298
|
+
* @returns A string representing the EC key in raw hexadecimal format.
|
|
299
|
+
*/
|
|
300
|
+
function ecJwkToRawHexKey(jwk) {
|
|
301
|
+
if (!jwk.x || !jwk.y) {
|
|
302
|
+
throw new Error("EC JWK must contain 'x' and 'y' properties.");
|
|
303
|
+
}
|
|
304
|
+
const x = u8a.fromString(jwk.x, 'base64url');
|
|
305
|
+
const y = u8a.fromString(jwk.y, 'base64url');
|
|
306
|
+
return u8a.toString(x, 'hex') + u8a.toString(y, 'hex');
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Convert an EC JWK to a raw hex key.
|
|
310
|
+
* @param jwk - The EC JWK object.
|
|
311
|
+
* @returns A string representing the EC key in raw hexadecimal format.
|
|
312
|
+
*/
|
|
313
|
+
function okpJwkToRawHexKey(jwk) {
|
|
314
|
+
if (!jwk.x) {
|
|
315
|
+
throw new Error("OKP JWK must contain 'x' property.");
|
|
316
|
+
}
|
|
317
|
+
const x = u8a.fromString(jwk.x, 'base64url');
|
|
318
|
+
return u8a.toString(x, 'hex');
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Convert an octet JWK to a raw hex key.
|
|
322
|
+
* @param jwk - The octet JWK object.
|
|
323
|
+
* @returns A string representing the octet key in raw hexadecimal format.
|
|
324
|
+
*/
|
|
325
|
+
function octJwkToRawHexKey(jwk) {
|
|
326
|
+
if (!jwk.k) {
|
|
327
|
+
throw new Error("Octet JWK must contain 'k' property.");
|
|
328
|
+
}
|
|
329
|
+
const key = u8a.fromString(jwk.k, 'base64url');
|
|
330
|
+
return u8a.toString(key, 'hex');
|
|
331
|
+
}
|
|
246
332
|
/**
|
|
247
333
|
* Determines the use param based upon the key/signature type or supplied use value.
|
|
248
334
|
*
|
|
@@ -331,15 +417,28 @@ const toEd25519OrX25519Jwk = (publicKeyHex, opts) => {
|
|
|
331
417
|
return Object.assign(Object.assign({ alg: ssi_types_1.JoseSignatureAlgorithm.EdDSA }, (use !== undefined && { use })), { kty: ssi_types_1.JwkKeyType.OKP, crv: (_a = opts === null || opts === void 0 ? void 0 : opts.crv) !== null && _a !== void 0 ? _a : ssi_types_1.JoseCurve.Ed25519, x: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(publicKeyHex, 'base64url') });
|
|
332
418
|
};
|
|
333
419
|
const toRSAJwk = (publicKeyHex, opts) => {
|
|
334
|
-
var _a, _b
|
|
335
|
-
const
|
|
420
|
+
var _a, _b;
|
|
421
|
+
const meta = (_a = opts === null || opts === void 0 ? void 0 : opts.key) === null || _a === void 0 ? void 0 : _a.meta;
|
|
422
|
+
if ((meta === null || meta === void 0 ? void 0 : meta.publicKeyJwk) || (meta === null || meta === void 0 ? void 0 : meta.publicKeyPEM)) {
|
|
423
|
+
if (meta === null || meta === void 0 ? void 0 : meta.publicKeyJwk) {
|
|
424
|
+
return meta.publicKeyJwk;
|
|
425
|
+
}
|
|
426
|
+
const publicKeyPEM = (_b = meta === null || meta === void 0 ? void 0 : meta.publicKeyPEM) !== null && _b !== void 0 ? _b : (0, ssi_sdk_ext_x509_utils_1.hexToPEM)(publicKeyHex, 'public');
|
|
427
|
+
return (0, ssi_sdk_ext_x509_utils_1.PEMToJwk)(publicKeyPEM, 'public');
|
|
428
|
+
}
|
|
429
|
+
// exponent (e) is 5 chars long, rest is modulus (n)
|
|
336
430
|
// const publicKey = publicKeyHex
|
|
337
431
|
// assertProperKeyLength(publicKey, [2048, 3072, 4096])
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
const
|
|
342
|
-
return
|
|
432
|
+
const exponent = publicKeyHex.slice(-5);
|
|
433
|
+
const modulus = publicKeyHex.slice(0, -5);
|
|
434
|
+
// const modulusBitLength = (modulus.length / 2) * 8
|
|
435
|
+
// const alg = modulusBitLength === 2048 ? JoseSignatureAlgorithm.RS256 : modulusBitLength === 3072 ? JoseSignatureAlgorithm.RS384 : modulusBitLength === 4096 ? JoseSignatureAlgorithm.RS512 : undefined
|
|
436
|
+
return {
|
|
437
|
+
kty: 'RSA',
|
|
438
|
+
n: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(modulus, 'base64url'),
|
|
439
|
+
e: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(exponent, 'base64url'),
|
|
440
|
+
// ...(alg && { alg }),
|
|
441
|
+
};
|
|
343
442
|
};
|
|
344
443
|
const padLeft = (args) => {
|
|
345
444
|
var _a, _b;
|
|
@@ -467,6 +566,10 @@ const signatureAlgorithmFromKeyType = (args) => {
|
|
|
467
566
|
return ssi_types_1.JoseSignatureAlgorithm.EdDSA;
|
|
468
567
|
case 'Secp256r1':
|
|
469
568
|
return ssi_types_1.JoseSignatureAlgorithm.ES256;
|
|
569
|
+
case 'Secp384r1':
|
|
570
|
+
return ssi_types_1.JoseSignatureAlgorithm.ES384;
|
|
571
|
+
case 'Secp521r1':
|
|
572
|
+
return ssi_types_1.JoseSignatureAlgorithm.ES512;
|
|
470
573
|
case 'Secp256k1':
|
|
471
574
|
return ssi_types_1.JoseSignatureAlgorithm.ES256K;
|
|
472
575
|
default:
|
|
@@ -476,9 +579,20 @@ const signatureAlgorithmFromKeyType = (args) => {
|
|
|
476
579
|
exports.signatureAlgorithmFromKeyType = signatureAlgorithmFromKeyType;
|
|
477
580
|
// TODO improve this conversion for jwt and jsonld, not a fan of current structure
|
|
478
581
|
const keyTypeFromCryptographicSuite = (args) => {
|
|
479
|
-
const {
|
|
480
|
-
switch (
|
|
582
|
+
const { crv, kty, alg } = args;
|
|
583
|
+
switch (alg) {
|
|
584
|
+
case 'RSASSA-PSS':
|
|
585
|
+
case 'RS256':
|
|
586
|
+
case 'RS384':
|
|
587
|
+
case 'RS512':
|
|
588
|
+
case 'PS256':
|
|
589
|
+
case 'PS384':
|
|
590
|
+
case 'PS512':
|
|
591
|
+
return 'RSA';
|
|
592
|
+
}
|
|
593
|
+
switch (crv) {
|
|
481
594
|
case 'EdDSA':
|
|
595
|
+
case 'Ed25519':
|
|
482
596
|
case 'Ed25519Signature2018':
|
|
483
597
|
case 'Ed25519Signature2020':
|
|
484
598
|
case 'JcsEd25519Signature2020':
|
|
@@ -486,31 +600,105 @@ const keyTypeFromCryptographicSuite = (args) => {
|
|
|
486
600
|
case 'JsonWebSignature2020':
|
|
487
601
|
case 'ES256':
|
|
488
602
|
case 'ECDSA':
|
|
603
|
+
case 'P-256':
|
|
489
604
|
return 'Secp256r1';
|
|
605
|
+
case 'ES384':
|
|
606
|
+
case 'P-384':
|
|
607
|
+
return 'Secp384r1';
|
|
608
|
+
case 'ES512':
|
|
609
|
+
case 'P-521':
|
|
610
|
+
return 'Secp521r1';
|
|
490
611
|
case 'EcdsaSecp256k1Signature2019':
|
|
612
|
+
case 'secp256k1':
|
|
491
613
|
case 'ES256K':
|
|
492
614
|
return 'Secp256k1';
|
|
493
|
-
default:
|
|
494
|
-
throw new Error(`Cryptographic suite '${suite}' not supported`);
|
|
495
615
|
}
|
|
616
|
+
if (kty) {
|
|
617
|
+
return kty;
|
|
618
|
+
}
|
|
619
|
+
throw new Error(`Cryptographic suite '${crv}' not supported`);
|
|
496
620
|
};
|
|
497
621
|
exports.keyTypeFromCryptographicSuite = keyTypeFromCryptographicSuite;
|
|
498
|
-
function
|
|
499
|
-
|
|
622
|
+
function removeNulls(obj) {
|
|
623
|
+
Object.keys(obj).forEach((key) => {
|
|
624
|
+
if (obj[key] && typeof obj[key] === 'object')
|
|
625
|
+
removeNulls(obj[key]);
|
|
626
|
+
else if (obj[key] == null)
|
|
627
|
+
delete obj[key];
|
|
628
|
+
});
|
|
629
|
+
return obj;
|
|
630
|
+
}
|
|
631
|
+
/**
|
|
632
|
+
*
|
|
633
|
+
*/
|
|
634
|
+
function verifyRawSignature(_a) {
|
|
635
|
+
return __awaiter(this, arguments, void 0, function* ({ data, signature, key: inputKey, opts, }) {
|
|
500
636
|
var _b;
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
637
|
+
/**
|
|
638
|
+
* Converts a Base64URL-encoded JWK property to a BigInt.
|
|
639
|
+
* @param jwkProp - The Base64URL-encoded string.
|
|
640
|
+
* @returns The BigInt representation of the decoded value.
|
|
641
|
+
*/
|
|
642
|
+
function jwkPropertyToBigInt(jwkProp) {
|
|
643
|
+
// Decode Base64URL to Uint8Array
|
|
644
|
+
const byteArray = u8a.fromString(jwkProp, 'base64url');
|
|
645
|
+
// Convert Uint8Array to hexadecimal string and then to BigInt
|
|
646
|
+
const hex = u8a.toString(byteArray, 'hex');
|
|
647
|
+
return BigInt(`0x${hex}`);
|
|
648
|
+
}
|
|
649
|
+
const key = removeNulls(inputKey);
|
|
650
|
+
(0, jwk_jcs_1.validateJwk)(key);
|
|
651
|
+
const keyType = (0, exports.keyTypeFromCryptographicSuite)({ crv: key.crv, kty: key.kty, alg: key.alg });
|
|
652
|
+
const publicKeyHex = yield (0, exports.jwkToRawHexKey)(key);
|
|
653
|
+
// TODO: We really should look at the signature alg first if provided! From key type should be the last resort
|
|
654
|
+
switch (keyType) {
|
|
655
|
+
case 'Secp256k1':
|
|
656
|
+
return secp256k1.verify(signature, data, publicKeyHex, { format: 'compact', prehash: true });
|
|
657
|
+
case 'Secp256r1':
|
|
658
|
+
return p256.verify(signature, data, publicKeyHex, { format: 'compact', prehash: true });
|
|
659
|
+
case 'Secp384r1':
|
|
660
|
+
return p384.verify(signature, data, publicKeyHex, { format: 'compact', prehash: true });
|
|
661
|
+
case 'Secp521r1':
|
|
662
|
+
return p521.verify(signature, data, publicKeyHex, { format: 'compact', prehash: true });
|
|
663
|
+
case 'Ed25519':
|
|
664
|
+
return ed25519.verify(signature, data, u8a.fromString(publicKeyHex, 'hex'));
|
|
665
|
+
case 'Bls12381G1':
|
|
666
|
+
case 'Bls12381G2':
|
|
667
|
+
return bls12_381.verify(signature, data, u8a.fromString(publicKeyHex, 'hex'));
|
|
668
|
+
case 'RSA': {
|
|
669
|
+
const signatureAlgorithm = (_b = opts === null || opts === void 0 ? void 0 : opts.signatureAlg) !== null && _b !== void 0 ? _b : ssi_types_1.JoseSignatureAlgorithm.PS256;
|
|
670
|
+
const hashAlg = signatureAlgorithm === (ssi_types_1.JoseSignatureAlgorithm.RS512 || ssi_types_1.JoseSignatureAlgorithm.PS512)
|
|
671
|
+
? sha512
|
|
672
|
+
: signatureAlgorithm === (ssi_types_1.JoseSignatureAlgorithm.RS384 || ssi_types_1.JoseSignatureAlgorithm.PS384)
|
|
673
|
+
? sha384
|
|
674
|
+
: sha256;
|
|
675
|
+
switch (signatureAlgorithm) {
|
|
676
|
+
case ssi_types_1.JoseSignatureAlgorithm.RS256:
|
|
677
|
+
return rsa.PKCS1_SHA256.verify({
|
|
678
|
+
n: jwkPropertyToBigInt(key.n),
|
|
679
|
+
e: jwkPropertyToBigInt(key.e),
|
|
680
|
+
}, data, signature);
|
|
681
|
+
case ssi_types_1.JoseSignatureAlgorithm.RS384:
|
|
682
|
+
return rsa.PKCS1_SHA384.verify({
|
|
683
|
+
n: jwkPropertyToBigInt(key.n),
|
|
684
|
+
e: jwkPropertyToBigInt(key.e),
|
|
685
|
+
}, data, signature);
|
|
686
|
+
case ssi_types_1.JoseSignatureAlgorithm.RS512:
|
|
687
|
+
return rsa.PKCS1_SHA512.verify({
|
|
688
|
+
n: jwkPropertyToBigInt(key.n),
|
|
689
|
+
e: jwkPropertyToBigInt(key.e),
|
|
690
|
+
}, data, signature);
|
|
691
|
+
case ssi_types_1.JoseSignatureAlgorithm.PS256:
|
|
692
|
+
case ssi_types_1.JoseSignatureAlgorithm.PS384:
|
|
693
|
+
case ssi_types_1.JoseSignatureAlgorithm.PS512:
|
|
694
|
+
return rsa.PSS(hashAlg, rsa.mgf1(hashAlg)).verify({
|
|
695
|
+
n: jwkPropertyToBigInt(key.n),
|
|
696
|
+
e: jwkPropertyToBigInt(key.e),
|
|
697
|
+
}, data, signature);
|
|
698
|
+
}
|
|
699
|
+
}
|
|
504
700
|
}
|
|
505
|
-
|
|
506
|
-
const publicKey = yield subtle.importKey('jwk', key, {
|
|
507
|
-
name: alg,
|
|
508
|
-
namedCurve: crv,
|
|
509
|
-
}, true, ['verify']);
|
|
510
|
-
return subtle.verify({
|
|
511
|
-
name: alg,
|
|
512
|
-
hash: 'SHA-256', // fixme; make arg
|
|
513
|
-
}, publicKey, signature, data);
|
|
701
|
+
throw Error(`Unsupported key type for signature validation: ${keyType}`);
|
|
514
702
|
});
|
|
515
703
|
}
|
|
516
704
|
//# sourceMappingURL=functions.js.map
|
package/dist/functions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmGA,oEAkDC;AA8hBD,kCAMC;AAKD,gDAkGC;AAhyBD,kDAAmD;AACnD,mIAAmI;AACnI,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;AACxD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;AACpD,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAC9C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAC9C,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;AACxD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAChE,6EAA6H;AAC7H,mDAAiG;AACjG,gDAA8E;AAI9E,wDAA+B;AAC/B,6DAA8C;AAC9C,iDAAkC;AAClC,qDAAqD;AACrD,uCAAuC;AACvC,mCASgB;AAEH,QAAA,MAAM,GAAG,mBAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAE/D;;;;;GAKG;AACI,MAAM,MAAM,GAAG,CAAO,OAA2B,EAAE,GAAY,EAAmB,EAAE;IACzF,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC,EAAE,CAAC;QAC1F,MAAM,KAAK,CAAC,2FAA2F,CAAC,CAAA;IAC1G,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAA;AAChE,CAAC,CAAA,CAAA;AARY,QAAA,MAAM,UAQlB;AAED;;;;GAIG;AACI,MAAM,qBAAqB,GAAG,CAAO,IAAc,EAAmB,EAAE;IAC7E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,cAAc,GAAG,IAAA,yBAAsB,GAAE,CAAA;YAC/C,OAAO,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACzD,CAAC;QACD,4DAA4D;QAC5D,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,YAAY,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;YACpC,OAAO,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC7C,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,GAAG,GAAG,MAAM,IAAA,4CAAmB,EAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;YACjE,OAAO,IAAA,6CAAoB,EAAC,GAAG,CAAC,CAAA;QAClC,CAAC;QACD;YACE,MAAM,KAAK,CAAC,2BAA2B,IAAI,oDAAoD,CAAC,CAAA;IACpG,CAAC;AACH,CAAC,CAAA,CAAA;AAnBY,QAAA,qBAAqB,yBAmBjC;AAED,MAAM,4BAA4B,GAAG,CAAC,IAAuB,EAAE,EAAE;IAC/D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC7B,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW;YACd,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAA;QAC7G,KAAK,WAAW;YACd,OAAO,CAAC,OAAO,CAAC,CAAA;QAClB,KAAK,QAAQ;YACX,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;QACxC,KAAK,KAAK;YACR,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAA;AACf,CAAC,CAAA;AAED;;;;;;GAMG;AACH,SAAsB,4BAA4B,CAChD,IAEC,EACD,OAAmC;;;QAEnC,aAAa;QACb,MAAM,IAAI,GAAG,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,mCAAI,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,GAAG,0CAAE,IAAI,mCAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,OAAO,mCAAI,WAAW,CAAA;QAClG,MAAM,GAAG,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,0CAAE,GAAG,CAAA;QAC9B,4FAA4F;QAC5F,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,KAAI,GAAG,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,mCACH,GAAG,CAAC,IAAI,KACX,IAAI,kCACC,IAAI,CAAC,OAAO,CAAC,IAAI,GACjB,MAAA,GAAG,CAAC,IAAI,0CAAE,IAAI,IAEpB,CAAA;QACH,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,GAAG,MAAK,iBAAS,CAAC,UAAU,IAAI,CAAC,oBAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/F,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oCAAoC,CAAC,CAAA;QAC9D,CAAC;QAED,IAAI,aAAa,GAAuB,SAAS,CAAA;QACjD,IAAI,GAAG,EAAE,CAAC;YACR,aAAa,GAAG,MAAA,GAAG,CAAC,aAAa,mCAAI,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,IAAI,0CAAE,aAAa,CAAA;YAClE,IAAI,CAAC,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,KAAI,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,IAAI,0CAAE,aAAa,CAAA,EAAE,CAAC;gBACtF,sDAAsD;gBACtD,aAAa,GAAG,IAAA,6CAAoB,EAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACnE,CAAC;QACH,CAAC;QACD,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,KAAK,CAAC,gBAAgB,iCAChC,GAAG,KACN,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,IAAI,EACJ,aAAa,EAAE,aAAc,IAC7B,CAAA;QACJ,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;YACpC,IAAI;YACJ,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,kCACC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,KACZ,UAAU,EAAE,4BAA4B,CAAC,IAAI,CAAC,EAC9C,QAAQ,EAAE,IAAI,CAAC,KAAK,GACrB;SACF,CAAC,CAAA;IACJ,CAAC;CAAA;AAEM,MAAM,4BAA4B,GAAG,CAAC,IAG5C,EAAU,EAAE;IACX,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAEpB,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY;QAC1B,CAAC,CAAC,IAAA,aAAK,EAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QACtE,CAAC,CAAC,eAAe,IAAI,GAAG,IAAI,GAAG,CAAC,aAAa;YAC7C,CAAC,CAAC,IAAA,aAAK,EAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YAC5D,CAAC,CAAC,SAAS,CAAA;IACb,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,KAAK,CAAC,oCAAoC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,IAAA,8BAAsB,EAAC,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAA;AAC/E,CAAC,CAAA;AAfY,QAAA,4BAA4B,gCAexC;AAED,MAAM,qBAAqB,GAAG,CAAC,KAAc,EAAE,WAAmB,EAAE,EAAE;IACpE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,qBAAqB,CAAC,CAAA;IACtD,CAAC;AACH,CAAC,CAAA;AACM,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAA;AAAzF,QAAA,WAAW,eAA8E;AAEtG;;;GAGG;AACI,MAAM,sBAAsB,GAAG,CAAC,IAAyD,EAAU,EAAE;IAC1G,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAA;IAChD,IAAI,UAAU,CAAA;IACd,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI;YACP,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAA;YACzD,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAA;YAC5D,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAA;YAC5D,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAA;YAC/D,MAAK;QACP,KAAK,KAAK;YACR,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,uCAAuC,CAAC,CAAA;YACvE,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC,CAAA;YAC1D,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAA;YACrD,MAAK;QACP,KAAK,KAAK;YACR,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAA;YACxD,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAA;YACvD,UAAU,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAA;YACjD,MAAK;QACP,KAAK,KAAK;YACR,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAA;YACzD,UAAU,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;YACvC,MAAK;QACP;YACE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACxE,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IAEvC,OAAO,eAAe,KAAK,QAAQ;QACjC,CAAC,CAAC,IAAA,mCAAkB,EAAC,SAAS,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC;QAC/D,CAAC,CAAC,IAAA,mCAAkB,EAAC,SAAS,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;AACnE,CAAC,CAAA;AAhCY,QAAA,sBAAsB,0BAgClC;AAEM,MAAM,YAAY,GAAG,CAC1B,GAAiD,EACjD,IAGC,EACI,EAAE;IACP,MAAM,YAAY,GAAG,eAAe,IAAI,GAAG,CAAA;IAC3C,OAAO,IAAA,aAAK,EAAC,GAAG,CAAC,YAAa,EAAE,GAAG,CAAC,IAAI,kCAAO,IAAI,KAAE,GAAG,EAAE,YAAY,IAAG,CAAA;AAC3E,CAAC,CAAA;AATY,QAAA,YAAY,gBASxB;AAED;;;;;;GAMG;AACI,MAAM,KAAK,GAAG,CACnB,YAAoB,EACpB,IAAc,EACd,IAAgH,EAC3G,EAAE;IACP,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,KAAK,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;IACnD,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,KAAK,YAAY,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,MAAK,IAAI,EAAE,CAAC;QAC5E,MAAM,KAAK,CAAC,wBAAwB,GAAG,CAAC,GAAG,oCAAoC,GAAG,CAAC,YAAY,6BAA6B,YAAY,EAAE,CAAC,CAAA;IAC7I,CAAC;IACD,IAAI,GAAQ,CAAA;IACZ,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,GAAG,GAAG,oBAAoB,CAAC,YAAY,kCAAO,IAAI,KAAE,GAAG,EAAE,qBAAS,CAAC,OAAO,IAAG,CAAA;YAC7E,MAAK;QACP,KAAK,QAAQ;YACX,GAAG,GAAG,oBAAoB,CAAC,YAAY,kCAAO,IAAI,KAAE,GAAG,EAAE,qBAAS,CAAC,MAAM,IAAG,CAAA;YAC5E,MAAK;QACP,KAAK,WAAW;YACd,GAAG,GAAG,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;YACxC,MAAK;QACP,KAAK,WAAW;YACd,GAAG,GAAG,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;YACxC,MAAK;QACP,KAAK,KAAK;YACR,GAAG,GAAG,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;YAClC,MAAK;QACP;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,oDAAoD,CAAC,CAAA;IACxG,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACjC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAA,8BAAsB,EAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAjCY,QAAA,KAAK,SAiCjB;AAED;;;;;GAKG;AACI,MAAM,cAAc,GAAG,CAAO,GAAQ,EAAmB,EAAE;IAChE,+EAA+E;IAC/E,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;SAAM,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;SAAM,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;SAAM,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;IACrD,CAAC;AACH,CAAC,CAAA,CAAA;AAbY,QAAA,cAAc,kBAa1B;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,GAAe;IACxC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA,CAAC,qBAAqB;IACxE,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA,CAAC,sBAAsB;IAE1E,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AACrE,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,GAAe;IACvC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IAC5C,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IAE5C,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AACxD,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,GAAe;IACxC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IAE5C,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAC/B,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,GAAe;IACxC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;IAE9C,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AACjC,CAAC;AAED;;;;;GAKG;AACI,MAAM,eAAe,GAAG,CAAC,IAAc,EAAE,WAAuB,EAAyB,EAAE;IAChG,OAAO,WAAW;QAChB,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,oBAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC7B,CAAC,CAAC,iBAAS,CAAC,SAAS;YACrB,CAAC,CAAC,oBAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC7B,CAAC,CAAC,iBAAS,CAAC,UAAU;gBACtB,CAAC,CAAC,SAAS,CAAA;AACf,CAAC,CAAA;AARY,QAAA,eAAe,mBAQ3B;AAED;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,iBAAoC,EAAE,EAAE;IACrF,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,MAAM,KAAK,CACT,iEAAiE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,eAChG,MAAM,CAAC,MACT,YAAY,MAAM,EAAE,CACrB,CAAA;QACH,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;QAC/C,MAAM,KAAK,CAAC,4DAA4D,iBAAiB,eAAe,MAAM,CAAC,MAAM,YAAY,MAAM,EAAE,CAAC,CAAA;IAC5I,CAAC;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,IAAkD,EAAO,EAAE;IACjG,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;IAC1B,cAAM,CAAC,KAAK,CAAC,0BAA0B,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IAC1E,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,EAAE,CAAC;QACvB,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACrC,CAAC;SAAM,CAAC;QACN,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,kBAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjD,MAAM,OAAO,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,EAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC3G,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAA;IAEpC,mDACE,GAAG,EAAE,kCAAsB,CAAC,MAAM,IAC/B,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC,KACjC,GAAG,EAAE,sBAAU,CAAC,EAAE,EAClB,GAAG,EAAE,qBAAS,CAAC,SAAS,EACxB,CAAC,EAAE,IAAA,oCAAW,EAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,EAC5D,CAAC,EAAE,IAAA,oCAAW,EAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,KACzD,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,KAAI,EAAE,CAAC,EAAE,IAAA,oCAAW,EAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,EACtF;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,IAAkD,EAAO,EAAE;IACjG,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;IAC1B,cAAM,CAAC,KAAK,CAAC,0BAA0B,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IAC1E,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,EAAE,CAAC;QACvB,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACrC,CAAC;SAAM,CAAC;QACN,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,kBAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjD,cAAM,CAAC,KAAK,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAA;IAC5C,MAAM,OAAO,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,EAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC3G,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAA;IACpC,mDACE,GAAG,EAAE,kCAAsB,CAAC,KAAK,IAC9B,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC,KACjC,GAAG,EAAE,sBAAU,CAAC,EAAE,EAClB,GAAG,EAAE,qBAAS,CAAC,KAAK,EACpB,CAAC,EAAE,IAAA,oCAAW,EAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,EAC5D,CAAC,EAAE,IAAA,oCAAW,EAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,KACzD,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,KAAI,EAAE,CAAC,EAAE,IAAA,oCAAW,EAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,EACtF;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,CAC3B,YAAoB,EACpB,IAGC,EACI,EAAE;;IACP,qBAAqB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IACvC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;IAC1B,qCACE,GAAG,EAAE,kCAAsB,CAAC,KAAK,IAC9B,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC,KACjC,GAAG,EAAE,sBAAU,CAAC,GAAG,EACnB,GAAG,EAAE,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,mCAAI,qBAAS,CAAC,OAAO,EACnC,CAAC,EAAE,IAAA,oCAAW,EAAC,YAAY,EAAE,WAAW,CAAC,IAC1C;AACH,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,YAAoB,EAAE,IAA6D,EAAO,EAAE;;IAC5G,MAAM,IAAI,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,0CAAE,IAAI,CAAA;IAC5B,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,MAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,CAAA,EAAE,CAAC;QAC7C,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,YAAmB,CAAA;QACjC,CAAC;QACD,MAAM,YAAY,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,mCAAI,IAAA,iCAAQ,EAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC3E,OAAO,IAAA,iCAAQ,EAAC,YAAY,EAAE,QAAQ,CAAQ,CAAA;IAChD,CAAC;IAED,oDAAoD;IACpD,iCAAiC;IACjC,uDAAuD;IACvD,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACzC,qDAAqD;IAErD,yMAAyM;IACzM,OAAO;QACL,GAAG,EAAE,KAAK;QACV,CAAC,EAAE,IAAA,oCAAW,EAAC,OAAO,EAAE,WAAW,CAAC;QACpC,CAAC,EAAE,IAAA,oCAAW,EAAC,QAAQ,EAAE,WAAW,CAAC;QACrC,uBAAuB;KACxB,CAAA;AACH,CAAC,CAAA;AAEM,MAAM,OAAO,GAAG,CAAC,IAAyD,EAAU,EAAE;;IAC3F,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IACrB,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAA;IAC5B,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,GAAG,CAAA;IACvC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,CAAC,iDAAiD,CAAC,CAAA;IAChE,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAA;IAC/B,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAA;AAC/D,CAAC,CAAA;AAbY,QAAA,OAAO,WAanB;AAED,IAAK,OAIJ;AAJD,WAAK,OAAO;IACV,+CAAS,CAAA;IACT,+CAAS,CAAA;IACT,2CAAO,CAAA;AACT,CAAC,EAJI,OAAO,KAAP,OAAO,QAIX;AAED,MAAM,GAAG,GAAgC;IACvC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3F,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;CAClE,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,CAAa,EAAE,CAAa,EAAW,EAAE;IACnE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,QAAoB,EAAE,MAAkB,EAAU,EAAE;IACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1D,IAAI,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;YACxE,OAAO,CAAC,CAAA;QACV,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAA;AACX,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,OAAiB,EAAE,EAAE;IACzC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,WAAW;YACd,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC/B,KAAK,WAAW;YACd,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC/B,KAAK,SAAS;YACZ,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC7B;YACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;IACvD,CAAC;AACH,CAAC,CAAA;AAEM,MAAM,SAAS,GAAG,CAAC,GAAe,EAAW,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;AAAzD,QAAA,SAAS,aAAgD;AAE/D,MAAM,qBAAqB,GAAG,CAAC,MAAkB,EAAE,OAAiB,EAAc,EAAE;IACzF,IAAI,CAAC,IAAA,iBAAS,EAAC,MAAM,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IAC9E,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;QACrB,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;QACzC,KAAK,IAAI,gBAAgB,CAAA;IAC3B,CAAC;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAChD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,4BAA4B,CAAC,CAAA;IACjE,CAAC;IAED,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAA;IAEnC,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QACvD,KAAK,EAAE,CAAA;IACT,CAAC;IAED,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;IAED,iDAAiD;IACjD,KAAK,IAAI,CAAC,CAAA;IAEV,kCAAkC;IAClC,KAAK,EAAE,CAAA;IAEP,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC5B,CAAC,CAAA;AAjCY,QAAA,qBAAqB,yBAiCjC;AAEM,MAAM,wBAAwB,GAAG,CAAC,GAAe,EAAW,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA;AAAlH,QAAA,wBAAwB,4BAA0F;AAExH,MAAM,2BAA2B,GAAG,CAAC,YAAwB,EAAE,OAAiB,EAAU,EAAE;IACjG,IAAI,IAAA,gCAAwB,EAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAA,+BAAuB,EAAC,YAAY,CAAC,CAAA;IAC9C,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QACvD,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,YAAY,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC3D,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC1C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACxE,MAAM,SAAS,GAAG,IAAA,+BAAuB,EAAC,IAAI,UAAU,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;YACtF,cAAM,CAAC,KAAK,CAAC,wBAAwB,IAAA,+BAAuB,EAAC,YAAY,CAAC,OAAO,SAAS,EAAE,CAAC,CAAA;YAC7F,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;IAC7C,CAAC;SAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,6CAA6C;QAC7C,OAAO,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;AACrD,CAAC,CAAA;AArBY,QAAA,2BAA2B,+BAqBvC;AAEM,MAAM,uBAAuB,GAAG,CAAC,KAAiB,EAAU,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAAtF,QAAA,uBAAuB,2BAA+D;AAE5F,MAAM,yBAAyB,GAAG,CAAO,IAAmC,EAAmC,EAAE;IACtH,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACpB,OAAO,IAAA,qCAA6B,EAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;AAC1D,CAAC,CAAA,CAAA;AAHY,QAAA,yBAAyB,6BAGrC;AAEM,MAAM,6BAA6B,GAAG,CAAC,IAAuC,EAA0B,EAAE;IAC/G,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IACrB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,kCAAsB,CAAC,KAAK,CAAA;QACrC,KAAK,WAAW;YACd,OAAO,kCAAsB,CAAC,KAAK,CAAA;QACrC,KAAK,WAAW;YACd,OAAO,kCAAsB,CAAC,KAAK,CAAA;QACrC,KAAK,WAAW;YACd,OAAO,kCAAsB,CAAC,KAAK,CAAA;QACrC,KAAK,WAAW;YACd,OAAO,kCAAsB,CAAC,MAAM,CAAA;QACtC;YACE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,iBAAiB,CAAC,CAAA;IACvD,CAAC;AACH,CAAC,CAAA;AAjBY,QAAA,6BAA6B,iCAiBzC;AAED,kFAAkF;AAC3E,MAAM,6BAA6B,GAAG,CAAC,IAAuC,EAAY,EAAE;IACjG,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IAE9B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,YAAY,CAAC;QAClB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,SAAS,CAAC;QACf,KAAK,sBAAsB,CAAC;QAC5B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,yBAAyB;YAC5B,OAAO,SAAS,CAAA;QAClB,KAAK,sBAAsB,CAAC;QAC5B,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,OAAO,WAAW,CAAA;QACpB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,OAAO,WAAW,CAAA;QACpB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,OAAO,WAAW,CAAA;QACpB,KAAK,6BAA6B,CAAC;QACnC,KAAK,WAAW,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,WAAW,CAAA;IACtB,CAAC;IACD,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,GAAe,CAAA;IACxB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,iBAAiB,CAAC,CAAA;AAC/D,CAAC,CAAA;AA1CY,QAAA,6BAA6B,iCA0CzC;AAED,SAAgB,WAAW,CAAI,GAAY;IACzC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC/B,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ;YAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;aAC9D,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;GAEG;AACH,SAAsB,kBAAkB;yDAAC,EACvC,IAAI,EACJ,SAAS,EACT,GAAG,EAAE,QAAQ,EACb,IAAI,GAQL;;QACC;;;;WAIG;QACH,SAAS,mBAAmB,CAAC,OAAe;YAC1C,iCAAiC;YACjC,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;YAEtD,8DAA8D;YAC9D,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YAC1C,OAAO,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,CAAA;QAC3B,CAAC;QAED,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;QACjC,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAA;QAChB,MAAM,OAAO,GAAG,IAAA,qCAA6B,EAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;QAC3F,MAAM,YAAY,GAAG,MAAM,IAAA,sBAAc,EAAC,GAAG,CAAC,CAAA;QAE9C,8GAA8G;QAC9G,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,WAAW;gBACd,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YAC9F,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YACzF,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YACzF,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YACzF,KAAK,SAAS;gBACZ,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAA;YAC7E,KAAK,YAAY,CAAC;YAClB,KAAK,YAAY;gBACf,OAAO,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAA;YAC/E,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,kBAAkB,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,mCAAI,kCAAsB,CAAC,KAAK,CAAA;gBAC7E,MAAM,OAAO,GACX,kBAAkB,KAAK,CAAC,kCAAsB,CAAC,KAAK,IAAI,kCAAsB,CAAC,KAAK,CAAC;oBACnF,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,kBAAkB,KAAK,CAAC,kCAAsB,CAAC,KAAK,IAAI,kCAAsB,CAAC,KAAK,CAAC;wBACvF,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,MAAM,CAAA;gBACZ,QAAQ,kBAAkB,EAAE,CAAC;oBAC3B,KAAK,kCAAsB,CAAC,KAAK;wBAC/B,OAAO,GAAG,CAAC,YAAY,CAAC,MAAM,CAC5B;4BACE,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC7B,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;yBAC9B,EACD,IAAI,EACJ,SAAS,CACV,CAAA;oBACH,KAAK,kCAAsB,CAAC,KAAK;wBAC/B,OAAO,GAAG,CAAC,YAAY,CAAC,MAAM,CAC5B;4BACE,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC7B,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;yBAC9B,EACD,IAAI,EACJ,SAAS,CACV,CAAA;oBACH,KAAK,kCAAsB,CAAC,KAAK;wBAC/B,OAAO,GAAG,CAAC,YAAY,CAAC,MAAM,CAC5B;4BACE,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC7B,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;yBAC9B,EACD,IAAI,EACJ,SAAS,CACV,CAAA;oBACH,KAAK,kCAAsB,CAAC,KAAK,CAAC;oBAClC,KAAK,kCAAsB,CAAC,KAAK,CAAC;oBAClC,KAAK,kCAAsB,CAAC,KAAK;wBAC/B,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAC/C;4BACE,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC7B,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;yBAC9B,EACD,IAAI,EACJ,SAAS,CACV,CAAA;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC,kDAAkD,OAAO,EAAE,CAAC,CAAA;IAC1E,CAAC;CAAA"}
|
package/dist/jwk-jcs.d.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import type { ByteView } from 'multiformats/codecs/interface';
|
|
2
|
+
/**
|
|
3
|
+
* Checks if the JWK is valid. It must contain all the required members.
|
|
4
|
+
*
|
|
5
|
+
* @see https://www.rfc-editor.org/rfc/rfc7518#section-6
|
|
6
|
+
* @see https://www.rfc-editor.org/rfc/rfc8037#section-2
|
|
7
|
+
*
|
|
8
|
+
* @param jwk - The JWK to check.
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateJwk(jwk: any): void;
|
|
2
11
|
/**
|
|
3
12
|
* Extracts the required members of the JWK and canonicalizes it.
|
|
4
13
|
*
|
package/dist/jwk-jcs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwk-jcs.d.ts","sourceRoot":"","sources":["../src/jwk-jcs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jwk-jcs.d.ts","sourceRoot":"","sources":["../src/jwk-jcs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AA6B7D;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,QA6BnC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG;;;;;;;;;;;;;;;;;;;;;EAYlC;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAIrD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAOpE;AAGD,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,UAsD1C"}
|
package/dist/jwk-jcs.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateJwk = validateJwk;
|
|
6
4
|
exports.minimalJwk = minimalJwk;
|
|
7
5
|
exports.jwkJcsEncode = jwkJcsEncode;
|
|
8
6
|
exports.jwkJcsDecode = jwkJcsDecode;
|
|
9
7
|
exports.jcsCanonicalize = jcsCanonicalize;
|
|
10
8
|
const web_encoding_1 = require("web-encoding");
|
|
11
|
-
const lodash_isplainobject_1 = __importDefault(require("lodash.isplainobject"));
|
|
12
9
|
const textEncoder = new web_encoding_1.TextEncoder();
|
|
13
10
|
const textDecoder = new web_encoding_1.TextDecoder();
|
|
14
11
|
/**
|
|
@@ -27,9 +24,9 @@ function check(value, description) {
|
|
|
27
24
|
*
|
|
28
25
|
* @param value - The value to check.
|
|
29
26
|
*/
|
|
30
|
-
function
|
|
31
|
-
if (!
|
|
32
|
-
throw new Error('
|
|
27
|
+
function assertObject(value) {
|
|
28
|
+
if (!value || typeof value !== 'object') {
|
|
29
|
+
throw new Error('Value must be an object');
|
|
33
30
|
}
|
|
34
31
|
}
|
|
35
32
|
/**
|
|
@@ -41,7 +38,7 @@ function validatePlainObject(value) {
|
|
|
41
38
|
* @param jwk - The JWK to check.
|
|
42
39
|
*/
|
|
43
40
|
function validateJwk(jwk) {
|
|
44
|
-
|
|
41
|
+
assertObject(jwk);
|
|
45
42
|
// Check JWK required members based on the key type
|
|
46
43
|
switch (jwk.kty) {
|
|
47
44
|
/**
|
package/dist/jwk-jcs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwk-jcs.js","sourceRoot":"","sources":["../src/jwk-jcs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jwk-jcs.js","sourceRoot":"","sources":["../src/jwk-jcs.ts"],"names":[],"mappings":";;AAqCA,kCA6BC;AAQD,gCAYC;AAYD,oCAIC;AAQD,oCAOC;AAGD,0CAsDC;AA7KD,+CAAuD;AAEvD,MAAM,WAAW,GAAG,IAAI,0BAAW,EAAE,CAAA;AACrC,MAAM,WAAW,GAAG,IAAI,0BAAW,EAAE,CAAA;AAErC;;;;;GAKG;AACH,SAAS,KAAK,CAAC,KAAc,EAAE,WAAmB;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,qBAAqB,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,WAAW,CAAC,GAAQ;IAClC,YAAY,CAAC,GAAG,CAAC,CAAA;IACjB,mDAAmD;IACnD,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC;QAChB;;WAEG;QACH,KAAK,IAAI;YACP,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAA;YACzC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAA;YAC5C,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAA;YAC5C,MAAK;QACP;;WAEG;QACH,KAAK,KAAK;YACR,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,uCAAuC,CAAC,CAAA;YACvD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC,CAAA;YAC1C,MAAK;QACP;;WAEG;QACH,KAAK,KAAK;YACR,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAA;YACxC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAA;YACvC,MAAK;QACP;YACE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACxE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,GAAQ;IACjC,+BAA+B;IAC/B,wCAAwC;IACxC,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAA;QAC3D,KAAK,KAAK;YACR,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAA;QACjD,KAAK,KAAK;YACR,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAA;IAC/C,CAAC;IACD,MAAM,KAAK,CAAC,wCAAwC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;AAChE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAC,GAAY;IACvC,WAAW,CAAC,GAAG,CAAC,CAAA;IAChB,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IACnC,OAAO,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAA2B;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACjD,WAAW,CAAC,GAAG,CAAC,CAAA;IAChB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC3E,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,4DAA4D;AAC5D,SAAgB,eAAe,CAAC,MAAW;IACzC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,SAAS,CAAC,MAAM,CAAC,CAAA;IACjB,OAAO,MAAM,CAAA;IAEb,SAAS,SAAS,CAAC,MAAW;QAC5B,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YAC3E,iDAAiD;YACjD,iDAAiD;YACjD,iDAAiD;YACjD,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAClC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,iDAAiD;YACjD,iDAAiD;YACjD,iDAAiD;YACjD,MAAM,IAAI,GAAG,CAAA;YACb,IAAI,IAAI,GAAG,KAAK,CAAA;YAChB,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACzB,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,IAAI,GAAG,CAAA;gBACf,CAAC;gBACD,IAAI,GAAG,IAAI,CAAA;gBACX,yCAAyC;gBACzC,yCAAyC;gBACzC,yCAAyC;gBACzC,SAAS,CAAC,OAAO,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,GAAG,CAAA;QACf,CAAC;aAAM,CAAC;YACN,iDAAiD;YACjD,iDAAiD;YACjD,iDAAiD;YACjD,MAAM,IAAI,GAAG,CAAA;YACb,IAAI,IAAI,GAAG,KAAK,CAAA;YAChB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;iBAChB,IAAI,EAAE;iBACN,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACpB,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,IAAI,GAAG,CAAA;gBACf,CAAC;gBACD,IAAI,GAAG,IAAI,CAAA;gBACX,+CAA+C;gBAC/C,+CAA+C;gBAC/C,+CAA+C;gBAC/C,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;gBAClC,MAAM,IAAI,GAAG,CAAA;gBACb,0CAA0C;gBAC1C,0CAA0C;gBAC1C,0CAA0C;gBAC1C,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC7B,CAAC,CAAC,CAAA;YACJ,MAAM,IAAI,GAAG,CAAA;QACf,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IKey, MinimalImportableKey } from '@veramo/core';
|
|
2
2
|
export declare const JWK_JCS_PUB_NAME: "jwk_jcs-pub";
|
|
3
3
|
export declare const JWK_JCS_PUB_PREFIX = 60241;
|
|
4
|
-
export type TKeyType = 'Ed25519' | 'Secp256k1' | 'Secp256r1' | 'X25519' | 'Bls12381G1' | 'Bls12381G2' | 'RSA';
|
|
4
|
+
export type TKeyType = 'Ed25519' | 'Secp256k1' | 'Secp256r1' | 'Secp384r1' | 'Secp521r1' | 'X25519' | 'Bls12381G1' | 'Bls12381G2' | 'RSA';
|
|
5
5
|
export declare enum Key {
|
|
6
6
|
Ed25519 = "Ed25519",
|
|
7
7
|
Secp256k1 = "Secp256k1",
|
|
@@ -28,7 +28,7 @@ export interface IImportProvidedOrGeneratedKeyArgs {
|
|
|
28
28
|
}
|
|
29
29
|
export interface IKeyOpts {
|
|
30
30
|
key?: Partial<MinimalImportableKey>;
|
|
31
|
-
type?: TKeyType
|
|
31
|
+
type?: Exclude<TKeyType, 'Secp384r1' | 'Secp521r1'>;
|
|
32
32
|
use?: JwkKeyUse;
|
|
33
33
|
x509?: X509Opts;
|
|
34
34
|
}
|
|
@@ -39,6 +39,8 @@ export type SignatureAlgorithmFromKeyTypeArgs = {
|
|
|
39
39
|
type: TKeyType;
|
|
40
40
|
};
|
|
41
41
|
export type KeyTypeFromCryptographicSuiteArgs = {
|
|
42
|
-
|
|
42
|
+
crv?: string;
|
|
43
|
+
kty?: string;
|
|
44
|
+
alg?: string;
|
|
43
45
|
};
|
|
44
46
|
//# sourceMappingURL=key-util-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-util-types.d.ts","sourceRoot":"","sources":["../../src/types/key-util-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAEzD,eAAO,MAAM,gBAAgB,eAAyB,CAAA;AACtD,eAAO,MAAM,kBAAkB,QAAS,CAAA;AAExC,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"key-util-types.d.ts","sourceRoot":"","sources":["../../src/types/key-util-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAEzD,eAAO,MAAM,gBAAgB,eAAyB,CAAA;AACtD,eAAO,MAAM,kBAAkB,QAAS,CAAA;AAExC,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,KAAK,CAAA;AAEzI,oBAAY,GAAG;IACb,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,SAAS,cAAc;CACxB;AAED,oBAAY,SAAS;IACnB,UAAU,QAAQ;IAClB,SAAS,QAAQ;CAClB;AAED,eAAO,MAAM,YAAY,UAAkH,CAAA;AAC3I,eAAO,MAAM,YAAY,UAA+C,CAAA;AAExE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEhD,MAAM,WAAW,QAAQ;IACvB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,iCAAiC;IAChD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,QAAQ,CAAA;CACnB;AACD,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,WAAW,GAAG,WAAW,CAAC,CAAA;IACnD,GAAG,CAAC,EAAE,SAAS,CAAA;IACf,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB;AAOD,MAAM,MAAM,6BAA6B,GAAG;IAC1C,GAAG,EAAE,IAAI,CAAA;CACV,CAAA;AAED,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,MAAM,MAAM,iCAAiC,GAAG;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk-ext.key-utils",
|
|
3
3
|
"description": "Sphereon SSI-SDK plugin for key creation.",
|
|
4
|
-
"version": "0.26.1-next.
|
|
4
|
+
"version": "0.26.1-next.17+d87e5c4",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -11,7 +11,9 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@ethersproject/random": "^5.7.0",
|
|
14
|
-
"@
|
|
14
|
+
"@noble/curves": "^1.7.0",
|
|
15
|
+
"@noble/hashes": "^1.6.1",
|
|
16
|
+
"@sphereon/ssi-sdk-ext.x509-utils": "0.26.1-next.17+d87e5c4",
|
|
15
17
|
"@sphereon/ssi-types": "0.30.2-feature.SDK.41.oidf.support.286",
|
|
16
18
|
"@stablelib/ed25519": "^1.0.3",
|
|
17
19
|
"@stablelib/sha256": "^1.0.1",
|
|
@@ -23,6 +25,7 @@
|
|
|
23
25
|
"did-resolver": "^4.1.0",
|
|
24
26
|
"elliptic": "^6.5.4",
|
|
25
27
|
"lodash.isplainobject": "^4.0.6",
|
|
28
|
+
"micro-rsa-dsa-dh": "^0.1.0",
|
|
26
29
|
"multiformats": "^9.9.0",
|
|
27
30
|
"uint8arrays": "^3.1.1",
|
|
28
31
|
"varint": "^6.0.0",
|
|
@@ -49,5 +52,5 @@
|
|
|
49
52
|
"DID",
|
|
50
53
|
"Veramo"
|
|
51
54
|
],
|
|
52
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "d87e5c473b5cd0f08a2e9eb611087a411be99c64"
|
|
53
56
|
}
|
package/src/conversion.ts
CHANGED
|
@@ -14,10 +14,11 @@ import {
|
|
|
14
14
|
JwkKeyType,
|
|
15
15
|
JwkKeyTypeString,
|
|
16
16
|
} from '@sphereon/ssi-types'
|
|
17
|
+
import { removeNulls } from './functions'
|
|
17
18
|
|
|
18
19
|
export function coseKeyToJwk(coseKey: ICoseKeyJson): JWK {
|
|
19
20
|
const { x5chain, key_ops, crv, alg, baseIV, kty, ...rest } = coseKey
|
|
20
|
-
return {
|
|
21
|
+
return removeNulls({
|
|
21
22
|
...rest,
|
|
22
23
|
kty: coseToJoseKty(kty),
|
|
23
24
|
...(crv && { crv: coseToJoseCurve(crv) }),
|
|
@@ -25,12 +26,12 @@ export function coseKeyToJwk(coseKey: ICoseKeyJson): JWK {
|
|
|
25
26
|
...(alg && { alg: coseToJoseSignatureAlg(alg) }),
|
|
26
27
|
...(baseIV && { iv: baseIV }),
|
|
27
28
|
...(x5chain && { x5c: x5chain }),
|
|
28
|
-
} satisfies JWK
|
|
29
|
+
}) satisfies JWK
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
export function jwkToCoseKey(jwk: JWK): ICoseKeyJson {
|
|
32
33
|
const { x5c, key_ops, crv, alg, iv, kty, ...rest } = jwk
|
|
33
|
-
return {
|
|
34
|
+
return removeNulls({
|
|
34
35
|
...rest,
|
|
35
36
|
kty: joseToCoseKty(kty),
|
|
36
37
|
...(crv && { crv: joseToCoseCurve(crv) }),
|
|
@@ -38,7 +39,7 @@ export function jwkToCoseKey(jwk: JWK): ICoseKeyJson {
|
|
|
38
39
|
...(alg && { alg: joseToCoseSignatureAlg(alg) }),
|
|
39
40
|
...(iv && { baseIV: iv }),
|
|
40
41
|
...(x5c && { x5chain: x5c }),
|
|
41
|
-
} satisfies ICoseKeyJson
|
|
42
|
+
} satisfies ICoseKeyJson)
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
export function coseToJoseKty(kty: ICoseKeyType): JwkKeyType {
|
package/src/functions.ts
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
import { randomBytes } from '@ethersproject/random'
|
|
2
|
+
// Do not change these require statements to imports before we change to ESM. Breaks external CJS packages depending on this module
|
|
3
|
+
const { bls12_381 } = require('@noble/curves/bls12-381')
|
|
4
|
+
const { ed25519 } = require('@noble/curves/ed25519')
|
|
5
|
+
const { p256 } = require('@noble/curves/p256')
|
|
6
|
+
const { p384 } = require('@noble/curves/p384')
|
|
7
|
+
const { p521 } = require('@noble/curves/p521')
|
|
8
|
+
const { secp256k1 } = require('@noble/curves/secp256k1')
|
|
9
|
+
const { sha256, sha384, sha512 } = require('@noble/hashes/sha2')
|
|
2
10
|
import { generateRSAKeyAsPEM, hexToBase64, hexToPEM, PEMToJwk, privateKeyHexFromPEM } from '@sphereon/ssi-sdk-ext.x509-utils'
|
|
3
|
-
import { JoseCurve, JoseSignatureAlgorithm,
|
|
11
|
+
import { JoseCurve, JoseSignatureAlgorithm, JWK, JwkKeyType, Loggers } from '@sphereon/ssi-types'
|
|
4
12
|
import { generateKeyPair as generateSigningKeyPair } from '@stablelib/ed25519'
|
|
5
13
|
import { IAgentContext, IKey, IKeyManager, ManagedKeyInfo, MinimalImportableKey } from '@veramo/core'
|
|
6
14
|
|
|
7
15
|
import { JsonWebKey } from 'did-resolver'
|
|
8
16
|
import elliptic from 'elliptic'
|
|
17
|
+
import * as rsa from 'micro-rsa-dsa-dh/rsa.js'
|
|
9
18
|
import * as u8a from 'uint8arrays'
|
|
10
19
|
import { digestMethodParams } from './digest-methods'
|
|
20
|
+
import { validateJwk } from './jwk-jcs'
|
|
11
21
|
import {
|
|
12
22
|
ENC_KEY_ALGS,
|
|
13
23
|
IImportProvidedOrGeneratedKeyArgs,
|
|
@@ -254,6 +264,89 @@ export const toJwk = (
|
|
|
254
264
|
return jwk
|
|
255
265
|
}
|
|
256
266
|
|
|
267
|
+
/**
|
|
268
|
+
* Convert a JWK to a raw hex key.
|
|
269
|
+
* Currently supports `RSA` and `EC` keys. Extendable for other key types.
|
|
270
|
+
* @param jwk - The JSON Web Key object.
|
|
271
|
+
* @returns A string representing the key in raw hexadecimal format.
|
|
272
|
+
*/
|
|
273
|
+
export const jwkToRawHexKey = async (jwk: JWK): Promise<string> => {
|
|
274
|
+
// TODO: Probably makes sense to have an option to do the same for private keys
|
|
275
|
+
if (jwk.kty === 'RSA') {
|
|
276
|
+
return rsaJwkToRawHexKey(jwk)
|
|
277
|
+
} else if (jwk.kty === 'EC') {
|
|
278
|
+
return '04' + ecJwkToRawHexKey(jwk)
|
|
279
|
+
} else if (jwk.kty === 'OKP') {
|
|
280
|
+
return okpJwkToRawHexKey(jwk)
|
|
281
|
+
} else if (jwk.kty === 'oct') {
|
|
282
|
+
return octJwkToRawHexKey(jwk)
|
|
283
|
+
} else {
|
|
284
|
+
throw new Error(`Unsupported key type: ${jwk.kty}`)
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Convert an RSA JWK to a raw hex key.
|
|
290
|
+
* @param jwk - The RSA JWK object.
|
|
291
|
+
* @returns A string representing the RSA key in raw hexadecimal format.
|
|
292
|
+
*/
|
|
293
|
+
function rsaJwkToRawHexKey(jwk: JsonWebKey): string {
|
|
294
|
+
if (!jwk.n || !jwk.e) {
|
|
295
|
+
throw new Error("RSA JWK must contain 'n' and 'e' properties.")
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
const modulus = u8a.fromString(jwk.n, 'base64url') // 'n' is the modulus
|
|
299
|
+
const exponent = u8a.fromString(jwk.e, 'base64url') // 'e' is the exponent
|
|
300
|
+
|
|
301
|
+
return u8a.toString(modulus, 'hex') + u8a.toString(exponent, 'hex')
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Convert an EC JWK to a raw hex key.
|
|
306
|
+
* @param jwk - The EC JWK object.
|
|
307
|
+
* @returns A string representing the EC key in raw hexadecimal format.
|
|
308
|
+
*/
|
|
309
|
+
function ecJwkToRawHexKey(jwk: JsonWebKey): string {
|
|
310
|
+
if (!jwk.x || !jwk.y) {
|
|
311
|
+
throw new Error("EC JWK must contain 'x' and 'y' properties.")
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
const x = u8a.fromString(jwk.x, 'base64url')
|
|
315
|
+
const y = u8a.fromString(jwk.y, 'base64url')
|
|
316
|
+
|
|
317
|
+
return u8a.toString(x, 'hex') + u8a.toString(y, 'hex')
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Convert an EC JWK to a raw hex key.
|
|
322
|
+
* @param jwk - The EC JWK object.
|
|
323
|
+
* @returns A string representing the EC key in raw hexadecimal format.
|
|
324
|
+
*/
|
|
325
|
+
function okpJwkToRawHexKey(jwk: JsonWebKey): string {
|
|
326
|
+
if (!jwk.x) {
|
|
327
|
+
throw new Error("OKP JWK must contain 'x' property.")
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
const x = u8a.fromString(jwk.x, 'base64url')
|
|
331
|
+
|
|
332
|
+
return u8a.toString(x, 'hex')
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Convert an octet JWK to a raw hex key.
|
|
337
|
+
* @param jwk - The octet JWK object.
|
|
338
|
+
* @returns A string representing the octet key in raw hexadecimal format.
|
|
339
|
+
*/
|
|
340
|
+
function octJwkToRawHexKey(jwk: JsonWebKey): string {
|
|
341
|
+
if (!jwk.k) {
|
|
342
|
+
throw new Error("Octet JWK must contain 'k' property.")
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
const key = u8a.fromString(jwk.k, 'base64url')
|
|
346
|
+
|
|
347
|
+
return u8a.toString(key, 'hex')
|
|
348
|
+
}
|
|
349
|
+
|
|
257
350
|
/**
|
|
258
351
|
* Determines the use param based upon the key/signature type or supplied use value.
|
|
259
352
|
*
|
|
@@ -377,16 +470,29 @@ const toEd25519OrX25519Jwk = (
|
|
|
377
470
|
}
|
|
378
471
|
|
|
379
472
|
const toRSAJwk = (publicKeyHex: string, opts?: { use?: JwkKeyUse; key?: IKey | MinimalImportableKey }): JWK => {
|
|
380
|
-
const
|
|
473
|
+
const meta = opts?.key?.meta
|
|
474
|
+
if (meta?.publicKeyJwk || meta?.publicKeyPEM) {
|
|
475
|
+
if (meta?.publicKeyJwk) {
|
|
476
|
+
return meta.publicKeyJwk as JWK
|
|
477
|
+
}
|
|
478
|
+
const publicKeyPEM = meta?.publicKeyPEM ?? hexToPEM(publicKeyHex, 'public')
|
|
479
|
+
return PEMToJwk(publicKeyPEM, 'public') as JWK
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
// exponent (e) is 5 chars long, rest is modulus (n)
|
|
381
483
|
// const publicKey = publicKeyHex
|
|
382
484
|
// assertProperKeyLength(publicKey, [2048, 3072, 4096])
|
|
485
|
+
const exponent = publicKeyHex.slice(-5)
|
|
486
|
+
const modulus = publicKeyHex.slice(0, -5)
|
|
487
|
+
// const modulusBitLength = (modulus.length / 2) * 8
|
|
383
488
|
|
|
384
|
-
|
|
385
|
-
|
|
489
|
+
// const alg = modulusBitLength === 2048 ? JoseSignatureAlgorithm.RS256 : modulusBitLength === 3072 ? JoseSignatureAlgorithm.RS384 : modulusBitLength === 4096 ? JoseSignatureAlgorithm.RS512 : undefined
|
|
490
|
+
return {
|
|
491
|
+
kty: 'RSA',
|
|
492
|
+
n: hexToBase64(modulus, 'base64url'),
|
|
493
|
+
e: hexToBase64(exponent, 'base64url'),
|
|
494
|
+
// ...(alg && { alg }),
|
|
386
495
|
}
|
|
387
|
-
|
|
388
|
-
const publicKeyPEM = key?.meta?.publicKeyPEM ?? hexToPEM(publicKeyHex, 'public')
|
|
389
|
-
return PEMToJwk(publicKeyPEM, 'public') as JWK
|
|
390
496
|
}
|
|
391
497
|
|
|
392
498
|
export const padLeft = (args: { data: string; size?: number; padString?: string }): string => {
|
|
@@ -527,6 +633,10 @@ export const signatureAlgorithmFromKeyType = (args: SignatureAlgorithmFromKeyTyp
|
|
|
527
633
|
return JoseSignatureAlgorithm.EdDSA
|
|
528
634
|
case 'Secp256r1':
|
|
529
635
|
return JoseSignatureAlgorithm.ES256
|
|
636
|
+
case 'Secp384r1':
|
|
637
|
+
return JoseSignatureAlgorithm.ES384
|
|
638
|
+
case 'Secp521r1':
|
|
639
|
+
return JoseSignatureAlgorithm.ES512
|
|
530
640
|
case 'Secp256k1':
|
|
531
641
|
return JoseSignatureAlgorithm.ES256K
|
|
532
642
|
default:
|
|
@@ -536,9 +646,22 @@ export const signatureAlgorithmFromKeyType = (args: SignatureAlgorithmFromKeyTyp
|
|
|
536
646
|
|
|
537
647
|
// TODO improve this conversion for jwt and jsonld, not a fan of current structure
|
|
538
648
|
export const keyTypeFromCryptographicSuite = (args: KeyTypeFromCryptographicSuiteArgs): TKeyType => {
|
|
539
|
-
const {
|
|
540
|
-
|
|
649
|
+
const { crv, kty, alg } = args
|
|
650
|
+
|
|
651
|
+
switch (alg) {
|
|
652
|
+
case 'RSASSA-PSS':
|
|
653
|
+
case 'RS256':
|
|
654
|
+
case 'RS384':
|
|
655
|
+
case 'RS512':
|
|
656
|
+
case 'PS256':
|
|
657
|
+
case 'PS384':
|
|
658
|
+
case 'PS512':
|
|
659
|
+
return 'RSA'
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
switch (crv) {
|
|
541
663
|
case 'EdDSA':
|
|
664
|
+
case 'Ed25519':
|
|
542
665
|
case 'Ed25519Signature2018':
|
|
543
666
|
case 'Ed25519Signature2020':
|
|
544
667
|
case 'JcsEd25519Signature2020':
|
|
@@ -546,50 +669,133 @@ export const keyTypeFromCryptographicSuite = (args: KeyTypeFromCryptographicSuit
|
|
|
546
669
|
case 'JsonWebSignature2020':
|
|
547
670
|
case 'ES256':
|
|
548
671
|
case 'ECDSA':
|
|
672
|
+
case 'P-256':
|
|
549
673
|
return 'Secp256r1'
|
|
674
|
+
case 'ES384':
|
|
675
|
+
case 'P-384':
|
|
676
|
+
return 'Secp384r1'
|
|
677
|
+
case 'ES512':
|
|
678
|
+
case 'P-521':
|
|
679
|
+
return 'Secp521r1'
|
|
550
680
|
case 'EcdsaSecp256k1Signature2019':
|
|
681
|
+
case 'secp256k1':
|
|
551
682
|
case 'ES256K':
|
|
552
683
|
return 'Secp256k1'
|
|
553
|
-
default:
|
|
554
|
-
throw new Error(`Cryptographic suite '${suite}' not supported`)
|
|
555
684
|
}
|
|
685
|
+
if (kty) {
|
|
686
|
+
return kty as TKeyType
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
throw new Error(`Cryptographic suite '${crv}' not supported`)
|
|
556
690
|
}
|
|
557
691
|
|
|
558
|
-
export
|
|
692
|
+
export function removeNulls<T>(obj: T | any) {
|
|
693
|
+
Object.keys(obj).forEach((key) => {
|
|
694
|
+
if (obj[key] && typeof obj[key] === 'object') removeNulls(obj[key])
|
|
695
|
+
else if (obj[key] == null) delete obj[key]
|
|
696
|
+
})
|
|
697
|
+
return obj
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
/**
|
|
701
|
+
*
|
|
702
|
+
*/
|
|
703
|
+
export async function verifyRawSignature({
|
|
559
704
|
data,
|
|
560
705
|
signature,
|
|
561
|
-
key,
|
|
562
|
-
|
|
706
|
+
key: inputKey,
|
|
707
|
+
opts,
|
|
563
708
|
}: {
|
|
564
709
|
data: Uint8Array
|
|
565
710
|
signature: Uint8Array
|
|
566
|
-
key:
|
|
567
|
-
|
|
711
|
+
key: JWK
|
|
712
|
+
opts?: {
|
|
713
|
+
signatureAlg?: JoseSignatureAlgorithm
|
|
714
|
+
}
|
|
568
715
|
}) {
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
'
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
)
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
716
|
+
/**
|
|
717
|
+
* Converts a Base64URL-encoded JWK property to a BigInt.
|
|
718
|
+
* @param jwkProp - The Base64URL-encoded string.
|
|
719
|
+
* @returns The BigInt representation of the decoded value.
|
|
720
|
+
*/
|
|
721
|
+
function jwkPropertyToBigInt(jwkProp: string): bigint {
|
|
722
|
+
// Decode Base64URL to Uint8Array
|
|
723
|
+
const byteArray = u8a.fromString(jwkProp, 'base64url')
|
|
724
|
+
|
|
725
|
+
// Convert Uint8Array to hexadecimal string and then to BigInt
|
|
726
|
+
const hex = u8a.toString(byteArray, 'hex')
|
|
727
|
+
return BigInt(`0x${hex}`)
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
const key = removeNulls(inputKey)
|
|
731
|
+
validateJwk(key)
|
|
732
|
+
const keyType = keyTypeFromCryptographicSuite({ crv: key.crv, kty: key.kty, alg: key.alg })
|
|
733
|
+
const publicKeyHex = await jwkToRawHexKey(key)
|
|
734
|
+
|
|
735
|
+
// TODO: We really should look at the signature alg first if provided! From key type should be the last resort
|
|
736
|
+
switch (keyType) {
|
|
737
|
+
case 'Secp256k1':
|
|
738
|
+
return secp256k1.verify(signature, data, publicKeyHex, { format: 'compact', prehash: true })
|
|
739
|
+
case 'Secp256r1':
|
|
740
|
+
return p256.verify(signature, data, publicKeyHex, { format: 'compact', prehash: true })
|
|
741
|
+
case 'Secp384r1':
|
|
742
|
+
return p384.verify(signature, data, publicKeyHex, { format: 'compact', prehash: true })
|
|
743
|
+
case 'Secp521r1':
|
|
744
|
+
return p521.verify(signature, data, publicKeyHex, { format: 'compact', prehash: true })
|
|
745
|
+
case 'Ed25519':
|
|
746
|
+
return ed25519.verify(signature, data, u8a.fromString(publicKeyHex, 'hex'))
|
|
747
|
+
case 'Bls12381G1':
|
|
748
|
+
case 'Bls12381G2':
|
|
749
|
+
return bls12_381.verify(signature, data, u8a.fromString(publicKeyHex, 'hex'))
|
|
750
|
+
case 'RSA': {
|
|
751
|
+
const signatureAlgorithm = opts?.signatureAlg ?? JoseSignatureAlgorithm.PS256
|
|
752
|
+
const hashAlg =
|
|
753
|
+
signatureAlgorithm === (JoseSignatureAlgorithm.RS512 || JoseSignatureAlgorithm.PS512)
|
|
754
|
+
? sha512
|
|
755
|
+
: signatureAlgorithm === (JoseSignatureAlgorithm.RS384 || JoseSignatureAlgorithm.PS384)
|
|
756
|
+
? sha384
|
|
757
|
+
: sha256
|
|
758
|
+
switch (signatureAlgorithm) {
|
|
759
|
+
case JoseSignatureAlgorithm.RS256:
|
|
760
|
+
return rsa.PKCS1_SHA256.verify(
|
|
761
|
+
{
|
|
762
|
+
n: jwkPropertyToBigInt(key.n),
|
|
763
|
+
e: jwkPropertyToBigInt(key.e),
|
|
764
|
+
},
|
|
765
|
+
data,
|
|
766
|
+
signature
|
|
767
|
+
)
|
|
768
|
+
case JoseSignatureAlgorithm.RS384:
|
|
769
|
+
return rsa.PKCS1_SHA384.verify(
|
|
770
|
+
{
|
|
771
|
+
n: jwkPropertyToBigInt(key.n),
|
|
772
|
+
e: jwkPropertyToBigInt(key.e),
|
|
773
|
+
},
|
|
774
|
+
data,
|
|
775
|
+
signature
|
|
776
|
+
)
|
|
777
|
+
case JoseSignatureAlgorithm.RS512:
|
|
778
|
+
return rsa.PKCS1_SHA512.verify(
|
|
779
|
+
{
|
|
780
|
+
n: jwkPropertyToBigInt(key.n),
|
|
781
|
+
e: jwkPropertyToBigInt(key.e),
|
|
782
|
+
},
|
|
783
|
+
data,
|
|
784
|
+
signature
|
|
785
|
+
)
|
|
786
|
+
case JoseSignatureAlgorithm.PS256:
|
|
787
|
+
case JoseSignatureAlgorithm.PS384:
|
|
788
|
+
case JoseSignatureAlgorithm.PS512:
|
|
789
|
+
return rsa.PSS(hashAlg, rsa.mgf1(hashAlg)).verify(
|
|
790
|
+
{
|
|
791
|
+
n: jwkPropertyToBigInt(key.n),
|
|
792
|
+
e: jwkPropertyToBigInt(key.e),
|
|
793
|
+
},
|
|
794
|
+
data,
|
|
795
|
+
signature
|
|
796
|
+
)
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
throw Error(`Unsupported key type for signature validation: ${keyType}`)
|
|
595
801
|
}
|
package/src/jwk-jcs.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { TextDecoder, TextEncoder } from 'web-encoding'
|
|
2
|
-
import isPlainObject from 'lodash.isplainobject'
|
|
3
1
|
import type { ByteView } from 'multiformats/codecs/interface'
|
|
2
|
+
import { TextDecoder, TextEncoder } from 'web-encoding'
|
|
4
3
|
|
|
5
4
|
const textEncoder = new TextEncoder()
|
|
6
5
|
const textDecoder = new TextDecoder()
|
|
@@ -22,9 +21,9 @@ function check(value: unknown, description: string) {
|
|
|
22
21
|
*
|
|
23
22
|
* @param value - The value to check.
|
|
24
23
|
*/
|
|
25
|
-
function
|
|
26
|
-
if (!
|
|
27
|
-
throw new Error('
|
|
24
|
+
function assertObject(value: unknown) {
|
|
25
|
+
if (!value || typeof value !== 'object') {
|
|
26
|
+
throw new Error('Value must be an object')
|
|
28
27
|
}
|
|
29
28
|
}
|
|
30
29
|
|
|
@@ -36,8 +35,8 @@ function validatePlainObject(value: unknown) {
|
|
|
36
35
|
*
|
|
37
36
|
* @param jwk - The JWK to check.
|
|
38
37
|
*/
|
|
39
|
-
function validateJwk(jwk: any) {
|
|
40
|
-
|
|
38
|
+
export function validateJwk(jwk: any) {
|
|
39
|
+
assertObject(jwk)
|
|
41
40
|
// Check JWK required members based on the key type
|
|
42
41
|
switch (jwk.kty) {
|
|
43
42
|
/**
|
|
@@ -3,7 +3,7 @@ import { IKey, MinimalImportableKey } from '@veramo/core'
|
|
|
3
3
|
export const JWK_JCS_PUB_NAME = 'jwk_jcs-pub' as const
|
|
4
4
|
export const JWK_JCS_PUB_PREFIX = 0xeb51
|
|
5
5
|
|
|
6
|
-
export type TKeyType = 'Ed25519' | 'Secp256k1' | 'Secp256r1' | 'X25519' | 'Bls12381G1' | 'Bls12381G2' | 'RSA'
|
|
6
|
+
export type TKeyType = 'Ed25519' | 'Secp256k1' | 'Secp256r1' | 'Secp384r1' | 'Secp521r1' | 'X25519' | 'Bls12381G1' | 'Bls12381G2' | 'RSA'
|
|
7
7
|
|
|
8
8
|
export enum Key {
|
|
9
9
|
Ed25519 = 'Ed25519',
|
|
@@ -36,7 +36,7 @@ export interface IImportProvidedOrGeneratedKeyArgs {
|
|
|
36
36
|
}
|
|
37
37
|
export interface IKeyOpts {
|
|
38
38
|
key?: Partial<MinimalImportableKey> // Optional key to import with only privateKeyHex mandatory. If not specified a key with random kid will be created
|
|
39
|
-
type?: TKeyType // The key type. Defaults to Secp256k1
|
|
39
|
+
type?: Exclude<TKeyType, 'Secp384r1' | 'Secp521r1'> // The key type. Defaults to Secp256k1. The exclude is there as we do not support it yet for key generation
|
|
40
40
|
use?: JwkKeyUse // The key use
|
|
41
41
|
x509?: X509Opts
|
|
42
42
|
}
|
|
@@ -55,5 +55,7 @@ export type SignatureAlgorithmFromKeyTypeArgs = {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
export type KeyTypeFromCryptographicSuiteArgs = {
|
|
58
|
-
|
|
58
|
+
crv?: string
|
|
59
|
+
kty?: string
|
|
60
|
+
alg?: string
|
|
59
61
|
}
|