@sphereon/ssi-sdk-ext.key-utils 0.24.1-next.98 → 0.24.1-unstable.111

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.
@@ -0,0 +1,12 @@
1
+ import { ICoseCurve, ICoseKeyJson, ICoseKeyOperation, ICoseKeyType, ICoseSignatureAlgorithm, JoseCurve, JoseCurveString, JoseKeyOperation, JoseKeyOperationString, JoseSignatureAlgorithm, JoseSignatureAlgorithmString, JWK, JwkKeyType, JwkKeyTypeString } from '@sphereon/ssi-types';
2
+ export declare function coseKeyToJwk(coseKey: ICoseKeyJson): JWK;
3
+ export declare function jwkToCoseKey(jwk: JWK): ICoseKeyJson;
4
+ export declare function coseToJoseKty(kty: ICoseKeyType): JwkKeyType;
5
+ export declare function joseToCoseKty(kty: JwkKeyType | JwkKeyTypeString): ICoseKeyType;
6
+ export declare function coseToJoseSignatureAlg(coseAlg: ICoseSignatureAlgorithm): JoseSignatureAlgorithm;
7
+ export declare function joseToCoseSignatureAlg(joseAlg: JoseSignatureAlgorithm | JoseSignatureAlgorithmString): ICoseSignatureAlgorithm;
8
+ export declare function joseToCoseKeyOperation(keyOp: JoseKeyOperation | JoseKeyOperationString): ICoseKeyOperation;
9
+ export declare function coseToJoseKeyOperation(keyOp: ICoseKeyOperation): JoseKeyOperation;
10
+ export declare function joseToCoseCurve(curve: JoseCurve | JoseCurveString): ICoseCurve;
11
+ export declare function coseToJoseCurve(curve: ICoseCurve): JoseCurve;
12
+ //# sourceMappingURL=conversion.d.ts.map
@@ -0,0 +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;AAE5B,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"}
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.coseToJoseCurve = exports.joseToCoseCurve = exports.coseToJoseKeyOperation = exports.joseToCoseKeyOperation = exports.joseToCoseSignatureAlg = exports.coseToJoseSignatureAlg = exports.joseToCoseKty = exports.coseToJoseKty = exports.jwkToCoseKey = exports.coseKeyToJwk = void 0;
15
+ const ssi_types_1 = require("@sphereon/ssi-types");
16
+ function coseKeyToJwk(coseKey) {
17
+ const { x5chain, key_ops, crv, alg, baseIV, kty } = coseKey, rest = __rest(coseKey, ["x5chain", "key_ops", "crv", "alg", "baseIV", "kty"]);
18
+ 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 }));
19
+ }
20
+ exports.coseKeyToJwk = coseKeyToJwk;
21
+ function jwkToCoseKey(jwk) {
22
+ const { x5c, key_ops, crv, alg, iv, kty } = jwk, rest = __rest(jwk, ["x5c", "key_ops", "crv", "alg", "iv", "kty"]);
23
+ 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 }));
24
+ }
25
+ exports.jwkToCoseKey = jwkToCoseKey;
26
+ function coseToJoseKty(kty) {
27
+ switch (kty) {
28
+ case ssi_types_1.ICoseKeyType.EC2:
29
+ return ssi_types_1.JwkKeyType.EC;
30
+ case ssi_types_1.ICoseKeyType.RSA:
31
+ return ssi_types_1.JwkKeyType.RSA;
32
+ case ssi_types_1.ICoseKeyType.Symmetric:
33
+ return ssi_types_1.JwkKeyType.oct;
34
+ case ssi_types_1.ICoseKeyType.OKP:
35
+ return ssi_types_1.JwkKeyType.OKP;
36
+ default:
37
+ throw Error(`Key type ${kty} not supported in JWA`);
38
+ }
39
+ }
40
+ exports.coseToJoseKty = coseToJoseKty;
41
+ function joseToCoseKty(kty) {
42
+ switch (kty) {
43
+ case 'EC':
44
+ return ssi_types_1.ICoseKeyType.EC2;
45
+ case 'RSA':
46
+ return ssi_types_1.ICoseKeyType.RSA;
47
+ case 'oct':
48
+ return ssi_types_1.ICoseKeyType.Symmetric;
49
+ case 'OKP':
50
+ return ssi_types_1.ICoseKeyType.OKP;
51
+ default:
52
+ throw Error(`Key type ${kty} not supported in Cose`);
53
+ }
54
+ }
55
+ exports.joseToCoseKty = joseToCoseKty;
56
+ function coseToJoseSignatureAlg(coseAlg) {
57
+ switch (coseAlg) {
58
+ case ssi_types_1.ICoseSignatureAlgorithm.ES256K:
59
+ return ssi_types_1.JoseSignatureAlgorithm.ES256K;
60
+ case ssi_types_1.ICoseSignatureAlgorithm.ES256:
61
+ return ssi_types_1.JoseSignatureAlgorithm.ES256;
62
+ case ssi_types_1.ICoseSignatureAlgorithm.ES384:
63
+ return ssi_types_1.JoseSignatureAlgorithm.ES384;
64
+ case ssi_types_1.ICoseSignatureAlgorithm.ES512:
65
+ return ssi_types_1.JoseSignatureAlgorithm.ES512;
66
+ case ssi_types_1.ICoseSignatureAlgorithm.PS256:
67
+ return ssi_types_1.JoseSignatureAlgorithm.PS256;
68
+ case ssi_types_1.ICoseSignatureAlgorithm.PS384:
69
+ return ssi_types_1.JoseSignatureAlgorithm.PS384;
70
+ case ssi_types_1.ICoseSignatureAlgorithm.PS512:
71
+ return ssi_types_1.JoseSignatureAlgorithm.PS512;
72
+ case ssi_types_1.ICoseSignatureAlgorithm.HS256:
73
+ return ssi_types_1.JoseSignatureAlgorithm.HS256;
74
+ case ssi_types_1.ICoseSignatureAlgorithm.HS384:
75
+ return ssi_types_1.JoseSignatureAlgorithm.HS384;
76
+ case ssi_types_1.ICoseSignatureAlgorithm.HS512:
77
+ return ssi_types_1.JoseSignatureAlgorithm.HS512;
78
+ case ssi_types_1.ICoseSignatureAlgorithm.EdDSA:
79
+ return ssi_types_1.JoseSignatureAlgorithm.EdDSA;
80
+ default:
81
+ throw Error(`Signature algorithm ${coseAlg} not supported in Jose`);
82
+ }
83
+ }
84
+ exports.coseToJoseSignatureAlg = coseToJoseSignatureAlg;
85
+ function joseToCoseSignatureAlg(joseAlg) {
86
+ switch (joseAlg) {
87
+ case (ssi_types_1.JoseSignatureAlgorithm.ES256K, 'ES256K'):
88
+ return ssi_types_1.ICoseSignatureAlgorithm.ES256K;
89
+ case (ssi_types_1.JoseSignatureAlgorithm.ES256, 'ES256'):
90
+ return ssi_types_1.ICoseSignatureAlgorithm.ES256;
91
+ case (ssi_types_1.JoseSignatureAlgorithm.ES384, 'ES384'):
92
+ return ssi_types_1.ICoseSignatureAlgorithm.ES384;
93
+ case (ssi_types_1.JoseSignatureAlgorithm.ES512, 'ES512'):
94
+ return ssi_types_1.ICoseSignatureAlgorithm.ES512;
95
+ case (ssi_types_1.JoseSignatureAlgorithm.PS256, 'PS256'):
96
+ return ssi_types_1.ICoseSignatureAlgorithm.PS256;
97
+ case (ssi_types_1.JoseSignatureAlgorithm.PS384, 'PS384'):
98
+ return ssi_types_1.ICoseSignatureAlgorithm.PS384;
99
+ case (ssi_types_1.JoseSignatureAlgorithm.PS512, 'PS512'):
100
+ return ssi_types_1.ICoseSignatureAlgorithm.PS512;
101
+ case (ssi_types_1.JoseSignatureAlgorithm.HS256, 'HS256'):
102
+ return ssi_types_1.ICoseSignatureAlgorithm.HS256;
103
+ case (ssi_types_1.JoseSignatureAlgorithm.HS384, 'HS384'):
104
+ return ssi_types_1.ICoseSignatureAlgorithm.HS384;
105
+ case (ssi_types_1.JoseSignatureAlgorithm.HS512, 'HS512'):
106
+ return ssi_types_1.ICoseSignatureAlgorithm.HS512;
107
+ case (ssi_types_1.JoseSignatureAlgorithm.EdDSA, 'EdDSA'):
108
+ return ssi_types_1.ICoseSignatureAlgorithm.EdDSA;
109
+ default:
110
+ throw Error(`Signature algorithm ${joseAlg} not supported in Cose`);
111
+ }
112
+ }
113
+ exports.joseToCoseSignatureAlg = joseToCoseSignatureAlg;
114
+ function joseToCoseKeyOperation(keyOp) {
115
+ switch (keyOp) {
116
+ case (ssi_types_1.JoseKeyOperation.SIGN, 'sign'):
117
+ return ssi_types_1.ICoseKeyOperation.SIGN;
118
+ case (ssi_types_1.JoseKeyOperation.VERIFY, 'verify'):
119
+ return ssi_types_1.ICoseKeyOperation.VERIFY;
120
+ case (ssi_types_1.JoseKeyOperation.ENCRYPT, 'encrypt'):
121
+ return ssi_types_1.ICoseKeyOperation.ENCRYPT;
122
+ case (ssi_types_1.JoseKeyOperation.DECRYPT, 'decrypt'):
123
+ return ssi_types_1.ICoseKeyOperation.DECRYPT;
124
+ case (ssi_types_1.JoseKeyOperation.WRAP_KEY, 'wrapKey'):
125
+ return ssi_types_1.ICoseKeyOperation.WRAP_KEY;
126
+ case (ssi_types_1.JoseKeyOperation.UNWRAP_KEY, 'unwrapKey'):
127
+ return ssi_types_1.ICoseKeyOperation.UNWRAP_KEY;
128
+ case (ssi_types_1.JoseKeyOperation.DERIVE_KEY, 'deriveKey'):
129
+ return ssi_types_1.ICoseKeyOperation.DERIVE_KEY;
130
+ case (ssi_types_1.JoseKeyOperation.DERIVE_BITS, 'deriveBits'):
131
+ return ssi_types_1.ICoseKeyOperation.DERIVE_BITS;
132
+ default:
133
+ throw Error(`Key operation ${keyOp} not supported in Cose`);
134
+ }
135
+ }
136
+ exports.joseToCoseKeyOperation = joseToCoseKeyOperation;
137
+ function coseToJoseKeyOperation(keyOp) {
138
+ switch (keyOp) {
139
+ case ssi_types_1.ICoseKeyOperation.SIGN:
140
+ return ssi_types_1.JoseKeyOperation.SIGN;
141
+ case ssi_types_1.ICoseKeyOperation.VERIFY:
142
+ return ssi_types_1.JoseKeyOperation.VERIFY;
143
+ case ssi_types_1.ICoseKeyOperation.ENCRYPT:
144
+ return ssi_types_1.JoseKeyOperation.ENCRYPT;
145
+ case ssi_types_1.ICoseKeyOperation.DECRYPT:
146
+ return ssi_types_1.JoseKeyOperation.DECRYPT;
147
+ case ssi_types_1.ICoseKeyOperation.WRAP_KEY:
148
+ return ssi_types_1.JoseKeyOperation.WRAP_KEY;
149
+ case ssi_types_1.ICoseKeyOperation.UNWRAP_KEY:
150
+ return ssi_types_1.JoseKeyOperation.UNWRAP_KEY;
151
+ case ssi_types_1.ICoseKeyOperation.DERIVE_KEY:
152
+ return ssi_types_1.JoseKeyOperation.DERIVE_KEY;
153
+ case ssi_types_1.ICoseKeyOperation.DERIVE_BITS:
154
+ return ssi_types_1.JoseKeyOperation.DERIVE_BITS;
155
+ default:
156
+ throw Error(`Key operation ${keyOp} not supported in Jose`);
157
+ }
158
+ }
159
+ exports.coseToJoseKeyOperation = coseToJoseKeyOperation;
160
+ function joseToCoseCurve(curve) {
161
+ switch (curve) {
162
+ case (ssi_types_1.JoseCurve.P_256, 'P-256'):
163
+ return ssi_types_1.ICoseCurve.P_256;
164
+ case (ssi_types_1.JoseCurve.P_384, 'P-384'):
165
+ return ssi_types_1.ICoseCurve.P_384;
166
+ case (ssi_types_1.JoseCurve.P_521, 'P-521'):
167
+ return ssi_types_1.ICoseCurve.P_521;
168
+ case (ssi_types_1.JoseCurve.X25519, 'X25519'):
169
+ return ssi_types_1.ICoseCurve.X25519;
170
+ case (ssi_types_1.JoseCurve.X448, 'X448'):
171
+ return ssi_types_1.ICoseCurve.X448;
172
+ case (ssi_types_1.JoseCurve.Ed25519, 'Ed25519'):
173
+ return ssi_types_1.ICoseCurve.Ed25519;
174
+ case (ssi_types_1.JoseCurve.Ed448, 'Ed448'):
175
+ return ssi_types_1.ICoseCurve.Ed448;
176
+ case (ssi_types_1.JoseCurve.secp256k1, 'secp256k1'):
177
+ return ssi_types_1.ICoseCurve.secp256k1;
178
+ default:
179
+ throw Error(`Curve ${curve} not supported in Cose`);
180
+ }
181
+ }
182
+ exports.joseToCoseCurve = joseToCoseCurve;
183
+ function coseToJoseCurve(curve) {
184
+ switch (curve) {
185
+ case ssi_types_1.ICoseCurve.P_256:
186
+ return ssi_types_1.JoseCurve.P_256;
187
+ case ssi_types_1.ICoseCurve.P_384:
188
+ return ssi_types_1.JoseCurve.P_384;
189
+ case ssi_types_1.ICoseCurve.P_521:
190
+ return ssi_types_1.JoseCurve.P_521;
191
+ case ssi_types_1.ICoseCurve.X25519:
192
+ return ssi_types_1.JoseCurve.X25519;
193
+ case ssi_types_1.ICoseCurve.X448:
194
+ return ssi_types_1.JoseCurve.X448;
195
+ case ssi_types_1.ICoseCurve.Ed25519:
196
+ return ssi_types_1.JoseCurve.Ed25519;
197
+ case ssi_types_1.ICoseCurve.Ed448:
198
+ return ssi_types_1.JoseCurve.Ed448;
199
+ case ssi_types_1.ICoseCurve.secp256k1:
200
+ return ssi_types_1.JoseCurve.secp256k1;
201
+ default:
202
+ throw Error(`Curve ${curve} not supported in Jose`);
203
+ }
204
+ }
205
+ exports.coseToJoseCurve = coseToJoseCurve;
206
+ //# sourceMappingURL=conversion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversion.js","sourceRoot":"","sources":["../src/conversion.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
+ import { JoseSignatureAlgorithm, JWK } from '@sphereon/ssi-types';
1
2
  import { IAgentContext, IKey, IKeyManager, ManagedKeyInfo, MinimalImportableKey } from '@veramo/core';
2
- import { IImportProvidedOrGeneratedKeyArgs, JWK, JwkKeyUse, KeyTypeFromCryptographicSuiteArgs, SignatureAlgorithmFromKeyArgs, SignatureAlgorithmFromKeyTypeArgs, SignatureAlgorithmJwa, TKeyType } from './types';
3
+ import { JsonWebKey } from 'did-resolver';
4
+ import { IImportProvidedOrGeneratedKeyArgs, JwkKeyUse, KeyTypeFromCryptographicSuiteArgs, SignatureAlgorithmFromKeyArgs, SignatureAlgorithmFromKeyTypeArgs, TKeyType } from './types';
3
5
  export declare const logger: import("@sphereon/ssi-types").ISimpleLogger<unknown>;
4
6
  /**
5
7
  * Generates a random Private Hex Key for the specified key type
@@ -64,7 +66,13 @@ export declare const asn1DerToRawPublicKey: (derKey: Uint8Array, keyType: TKeyTy
64
66
  export declare const isRawCompressedPublicKey: (key: Uint8Array) => boolean;
65
67
  export declare const toRawCompressedHexPublicKey: (rawPublicKey: Uint8Array, keyType: TKeyType) => string;
66
68
  export declare const hexStringFromUint8Array: (value: Uint8Array) => string;
67
- export declare const signatureAlgorithmFromKey: (args: SignatureAlgorithmFromKeyArgs) => Promise<SignatureAlgorithmJwa>;
68
- export declare const signatureAlgorithmFromKeyType: (args: SignatureAlgorithmFromKeyTypeArgs) => SignatureAlgorithmJwa;
69
+ export declare const signatureAlgorithmFromKey: (args: SignatureAlgorithmFromKeyArgs) => Promise<JoseSignatureAlgorithm>;
70
+ export declare const signatureAlgorithmFromKeyType: (args: SignatureAlgorithmFromKeyTypeArgs) => JoseSignatureAlgorithm;
69
71
  export declare const keyTypeFromCryptographicSuite: (args: KeyTypeFromCryptographicSuiteArgs) => TKeyType;
72
+ export declare function verifySignatureWithSubtle({ data, signature, key, crypto: cryptoArg, }: {
73
+ data: Uint8Array;
74
+ signature: Uint8Array;
75
+ key: JsonWebKey;
76
+ crypto?: Crypto;
77
+ }): Promise<boolean>;
70
78
  //# sourceMappingURL=functions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAMrG,OAAO,EAEL,iCAAiC,EACjC,GAAG,EACH,SAAS,EAGT,iCAAiC,EAEjC,6BAA6B,EAC7B,iCAAiC,EACjC,qBAAqB,EACrB,QAAQ,EACT,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,MAAM,sDAA4C,CAAA;AAE/D;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,SAAgB,QAAQ,KAAG,QAAQ,MAAM,CAmB1E,CAAA;AAmBD;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,iCAAiC,GAAG;IACxC,GAAG,EAAE,MAAM,CAAA;CACZ,EACD,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAED,eAAO,MAAM,4BAA4B,SAAU;IACjD,GAAG,EAAE,IAAI,GAAG,oBAAoB,GAAG,cAAc,CAAA;IACjD,eAAe,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CACtC,KAAG,MAYH,CAAA;AAOD,eAAO,MAAM,WAAW,UAAW,MAAM,KAAG,MAA0D,CAAA;AAEtG;;;GAGG;AACH,eAAO,MAAM,sBAAsB,SAAU;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,eAAe,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAAE,KAAG,MAgClG,CAAA;AAED,eAAO,MAAM,YAAY,QAAS,IAAI,GAAG,oBAAoB,GAAG,cAAc,SAAS;IAAE,GAAG,CAAC,EAAE,SAAS,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,GAGvI,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,iBACF,MAAM,QACd,QAAQ,SACP;IAAE,GAAG,CAAC,EAAE,SAAS,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,GAAG,oBAAoB,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,KAC/G,GA6BF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,SAAU,QAAQ,gBAAgB,SAAS,KAAG,SAAS,GAAG,SAQrF,CAAA;AAyHD,eAAO,MAAM,OAAO,SAAU;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,MAanF,CAAA;AAgDD,eAAO,MAAM,SAAS,QAAS,UAAU,KAAG,OAA0B,CAAA;AAEtE,eAAO,MAAM,qBAAqB,WAAY,UAAU,WAAW,QAAQ,KAAG,UAiC7E,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAS,UAAU,KAAG,OAAoE,CAAA;AAE/H,eAAO,MAAM,2BAA2B,iBAAkB,UAAU,WAAW,QAAQ,KAAG,MAqBzF,CAAA;AAED,eAAO,MAAM,uBAAuB,UAAW,UAAU,KAAG,MAAuC,CAAA;AAEnG,eAAO,MAAM,yBAAyB,SAAgB,6BAA6B,KAAG,QAAQ,qBAAqB,CAGlH,CAAA;AAED,eAAO,MAAM,6BAA6B,SAAU,iCAAiC,KAAG,qBAavF,CAAA;AAGD,eAAO,MAAM,6BAA6B,SAAU,iCAAiC,KAAG,QAiBvF,CAAA"}
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
package/dist/functions.js CHANGED
@@ -35,7 +35,7 @@ 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.importProvidedOrGeneratedKey = exports.generatePrivateKeyHex = exports.logger = void 0;
38
+ exports.verifySignatureWithSubtle = 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.importProvidedOrGeneratedKey = exports.generatePrivateKeyHex = exports.logger = void 0;
39
39
  const random_1 = require("@ethersproject/random");
40
40
  const ssi_sdk_ext_x509_utils_1 = require("@sphereon/ssi-sdk-ext.x509-utils");
41
41
  const ssi_types_1 = require("@sphereon/ssi-types");
@@ -203,10 +203,10 @@ const toJwk = (publicKeyHex, type, opts) => {
203
203
  let jwk;
204
204
  switch (type) {
205
205
  case 'Ed25519':
206
- jwk = toEd25519OrX25519Jwk(publicKeyHex, Object.assign(Object.assign({}, opts), { crv: types_1.KeyCurve.Ed25519 }));
206
+ jwk = toEd25519OrX25519Jwk(publicKeyHex, Object.assign(Object.assign({}, opts), { crv: ssi_types_1.JoseCurve.Ed25519 }));
207
207
  break;
208
208
  case 'X25519':
209
- jwk = toEd25519OrX25519Jwk(publicKeyHex, Object.assign(Object.assign({}, opts), { crv: types_1.KeyCurve.X25519 }));
209
+ jwk = toEd25519OrX25519Jwk(publicKeyHex, Object.assign(Object.assign({}, opts), { crv: ssi_types_1.JoseCurve.X25519 }));
210
210
  break;
211
211
  case 'Secp256k1':
212
212
  jwk = toSecp256k1Jwk(publicKeyHex, opts);
@@ -277,7 +277,7 @@ const toSecp256k1Jwk = (keyHex, opts) => {
277
277
  const keyBytes = u8a.fromString(keyHex, 'base16');
278
278
  const keyPair = (opts === null || opts === void 0 ? void 0 : opts.isPrivateKey) ? secp256k1.keyFromPrivate(keyBytes) : secp256k1.keyFromPublic(keyBytes);
279
279
  const pubPoint = keyPair.getPublic();
280
- return Object.assign(Object.assign(Object.assign({ alg: 'ES256K' }, (use !== undefined && { use })), { kty: types_1.KeyType.EC, crv: types_1.KeyCurve.Secp256k1, x: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(pubPoint.getX().toString('hex'), 'base64url'), y: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(pubPoint.getY().toString('hex'), 'base64url') }), ((opts === null || opts === void 0 ? void 0 : opts.isPrivateKey) && { d: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(keyPair.getPrivate('hex'), 'base64url') }));
280
+ return Object.assign(Object.assign(Object.assign({ alg: ssi_types_1.JoseSignatureAlgorithm.ES256K }, (use !== undefined && { use })), { kty: ssi_types_1.JwkKeyType.EC, crv: ssi_types_1.JoseCurve.secp256k1, x: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(pubPoint.getX().toString('hex'), 'base64url'), y: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(pubPoint.getY().toString('hex'), 'base64url') }), ((opts === null || opts === void 0 ? void 0 : opts.isPrivateKey) && { d: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(keyPair.getPrivate('hex'), 'base64url') }));
281
281
  };
282
282
  /**
283
283
  * Generates a JWK from a Secp256r1 public key
@@ -299,19 +299,19 @@ const toSecp256r1Jwk = (keyHex, opts) => {
299
299
  exports.logger.debug(`keyBytes length: ${keyBytes}`);
300
300
  const keyPair = (opts === null || opts === void 0 ? void 0 : opts.isPrivateKey) ? secp256r1.keyFromPrivate(keyBytes) : secp256r1.keyFromPublic(keyBytes);
301
301
  const pubPoint = keyPair.getPublic();
302
- return Object.assign(Object.assign(Object.assign({ alg: 'ES256' }, (use !== undefined && { use })), { kty: types_1.KeyType.EC, crv: types_1.KeyCurve.P_256, x: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(pubPoint.getX().toString('hex'), 'base64url'), y: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(pubPoint.getY().toString('hex'), 'base64url') }), ((opts === null || opts === void 0 ? void 0 : opts.isPrivateKey) && { d: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(keyPair.getPrivate('hex'), 'base64url') }));
302
+ return Object.assign(Object.assign(Object.assign({ alg: ssi_types_1.JoseSignatureAlgorithm.ES256 }, (use !== undefined && { use })), { kty: ssi_types_1.JwkKeyType.EC, crv: ssi_types_1.JoseCurve.P_256, x: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(pubPoint.getX().toString('hex'), 'base64url'), y: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(pubPoint.getY().toString('hex'), 'base64url') }), ((opts === null || opts === void 0 ? void 0 : opts.isPrivateKey) && { d: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(keyPair.getPrivate('hex'), 'base64url') }));
303
303
  };
304
304
  /**
305
305
  * Generates a JWK from an Ed25519/X25519 public key
306
306
  * @param publicKeyHex Ed25519/X25519 public key in hex
307
- * @param use The use for the key
307
+ * @param opts
308
308
  * @return The JWK
309
309
  */
310
310
  const toEd25519OrX25519Jwk = (publicKeyHex, opts) => {
311
311
  var _a;
312
312
  assertProperKeyLength(publicKeyHex, 64);
313
313
  const { use } = opts !== null && opts !== void 0 ? opts : {};
314
- return Object.assign(Object.assign({ alg: 'EdDSA' }, (use !== undefined && { use })), { kty: types_1.KeyType.OKP, crv: (_a = opts === null || opts === void 0 ? void 0 : opts.crv) !== null && _a !== void 0 ? _a : types_1.KeyCurve.Ed25519, x: (0, ssi_sdk_ext_x509_utils_1.hexToBase64)(publicKeyHex, 'base64url') });
314
+ 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') });
315
315
  };
316
316
  const toRSAJwk = (publicKeyHex, opts) => {
317
317
  var _a, _b, _c;
@@ -447,11 +447,11 @@ const signatureAlgorithmFromKeyType = (args) => {
447
447
  switch (type) {
448
448
  case 'Ed25519':
449
449
  case 'X25519':
450
- return types_1.SignatureAlgorithmJwa.EdDSA;
450
+ return ssi_types_1.JoseSignatureAlgorithm.EdDSA;
451
451
  case 'Secp256r1':
452
- return types_1.SignatureAlgorithmJwa.ES256;
452
+ return ssi_types_1.JoseSignatureAlgorithm.ES256;
453
453
  case 'Secp256k1':
454
- return types_1.SignatureAlgorithmJwa.ES256K;
454
+ return ssi_types_1.JoseSignatureAlgorithm.ES256K;
455
455
  default:
456
456
  throw new Error(`Key type '${type}' not supported`);
457
457
  }
@@ -468,6 +468,7 @@ const keyTypeFromCryptographicSuite = (args) => {
468
468
  return 'Ed25519';
469
469
  case 'JsonWebSignature2020':
470
470
  case 'ES256':
471
+ case 'ECDSA':
471
472
  return 'Secp256r1';
472
473
  case 'EcdsaSecp256k1Signature2019':
473
474
  case 'ES256K':
@@ -477,4 +478,23 @@ const keyTypeFromCryptographicSuite = (args) => {
477
478
  }
478
479
  };
479
480
  exports.keyTypeFromCryptographicSuite = keyTypeFromCryptographicSuite;
481
+ function verifySignatureWithSubtle(_a) {
482
+ return __awaiter(this, arguments, void 0, function* ({ data, signature, key, crypto: cryptoArg, }) {
483
+ var _b;
484
+ let { alg, crv } = key;
485
+ if (alg === 'ES256' || !alg) {
486
+ alg = 'ECDSA';
487
+ }
488
+ const subtle = (_b = cryptoArg === null || cryptoArg === void 0 ? void 0 : cryptoArg.subtle) !== null && _b !== void 0 ? _b : crypto.subtle;
489
+ const publicKey = yield subtle.importKey('jwk', key, {
490
+ name: alg,
491
+ namedCurve: crv,
492
+ }, true, ['verify']);
493
+ return subtle.verify({
494
+ name: alg,
495
+ hash: 'SHA-256', // fixme; make arg
496
+ }, publicKey, signature, data);
497
+ });
498
+ }
499
+ exports.verifySignatureWithSubtle = verifySignatureWithSubtle;
480
500
  //# sourceMappingURL=functions.js.map
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmD;AACnD,6EAA6H;AAC7H,mDAAiG;AACjG,gDAA8E;AAI9E,wDAA+B;AAC/B,iDAAkC;AAClC,qDAAqD;AACrD,mCASgB;AAEH,QAAA,MAAM,GAAG,mBAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAE/D;;;;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;AAlDD,oEAkDC;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,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,EAAE,GAAG,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;IAC1B,iCAAiC;IACjC,uDAAuD;IAEvD,IAAI,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,YAAY,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC,IAAI,CAAC,YAAmB,CAAA;IACrC,CAAC;IAED,MAAM,YAAY,GAAG,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,0CAAE,YAAY,mCAAI,IAAA,iCAAQ,EAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;IAChF,OAAO,IAAA,iCAAQ,EAAC,YAAY,EAAE,QAAQ,CAAQ,CAAA;AAChD,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,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAA;IAC9G,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,MAAM,CAAA;QACtC;YACE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,iBAAiB,CAAC,CAAA;IACvD,CAAC;AACH,CAAC,CAAA;AAbY,QAAA,6BAA6B,iCAazC;AAED,kFAAkF;AAC3E,MAAM,6BAA6B,GAAG,CAAC,IAAuC,EAAY,EAAE;IACjG,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IACtB,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO,CAAC;QACb,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;YACV,OAAO,WAAW,CAAA;QACpB,KAAK,6BAA6B,CAAC;QACnC,KAAK,QAAQ;YACX,OAAO,WAAW,CAAA;QACpB;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,iBAAiB,CAAC,CAAA;IACnE,CAAC;AACH,CAAC,CAAA;AAlBY,QAAA,6BAA6B,iCAkBzC;AAED,SAAsB,yBAAyB;yDAAC,EAC9C,IAAI,EACJ,SAAS,EACT,GAAG,EACH,MAAM,EAAE,SAAS,GAMlB;;QACC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;QACtB,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,GAAG,GAAG,OAAO,CAAA;QACf,CAAC;QAED,MAAM,MAAM,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,mCAAI,MAAM,CAAC,MAAM,CAAA;QACjD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CACtC,KAAK,EACL,GAAG,EACH;YACE,IAAI,EAAE,GAAG;YACT,UAAU,EAAE,GAAG;SACK,EACtB,IAAI,EACJ,CAAC,QAAQ,CAAC,CACX,CAAA;QAED,OAAO,MAAM,CAAC,MAAM,CAClB;YACE,IAAI,EAAE,GAAa;YACnB,IAAI,EAAE,SAAS,EAAE,kBAAkB;SACpC,EACD,SAAS,EACT,SAAS,EACT,IAAI,CACL,CAAA;IACH,CAAC;CAAA;AArCD,8DAqCC"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  * @packageDocumentation
6
6
  */
7
7
  export * from './functions';
8
+ export * from './conversion';
8
9
  export * from './jwk-jcs';
9
10
  export * from './types';
10
11
  export * from './digest-methods';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
21
21
  * @packageDocumentation
22
22
  */
23
23
  __exportStar(require("./functions"), exports);
24
+ __exportStar(require("./conversion"), exports);
24
25
  __exportStar(require("./jwk-jcs"), exports);
25
26
  __exportStar(require("./types"), exports);
26
27
  __exportStar(require("./digest-methods"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,8CAA2B;AAC3B,4CAAyB;AACzB,0CAAuB;AACvB,mDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,8CAA2B;AAC3B,+CAA4B;AAC5B,4CAAyB;AACzB,0CAAuB;AACvB,mDAAgC"}
@@ -11,67 +11,8 @@ export declare enum JwkKeyUse {
11
11
  Encryption = "enc",
12
12
  Signature = "sig"
13
13
  }
14
- export declare enum KeyCurve {
15
- Secp256k1 = "secp256k1",
16
- P_256 = "P-256",
17
- Ed25519 = "Ed25519",
18
- X25519 = "X25519"
19
- }
20
- export declare enum KeyType {
21
- EC = "EC",
22
- OKP = "OKP",
23
- RSA = "RSA"
24
- }
25
14
  export declare const SIG_KEY_ALGS: string[];
26
15
  export declare const ENC_KEY_ALGS: string[];
27
- export declare enum SignatureAlgorithmJwa {
28
- EdDSA = "EdDSA",
29
- ES256 = "ES256",
30
- ES384 = "ES384",
31
- ES512 = "ES512",
32
- ES256K = "ES256K",
33
- RS256 = "RS256",
34
- RS384 = "RS384",
35
- RS512 = "RS512",
36
- PS256 = "PS256",
37
- PS384 = "PS384",
38
- PS512 = "PS512"
39
- }
40
- export interface JWK extends BaseJWK {
41
- d?: string;
42
- dp?: string;
43
- dq?: string;
44
- ext?: boolean;
45
- k?: string;
46
- key_ops?: string[];
47
- kid?: string;
48
- oth?: Array<{
49
- d?: string;
50
- r?: string;
51
- t?: string;
52
- }>;
53
- p?: string;
54
- q?: string;
55
- qi?: string;
56
- use?: string;
57
- /** JWK "x5c" (X.509 Certificate Chain) Parameter. */
58
- x5c?: string[];
59
- /** JWK "x5t" (X.509 Certificate SHA-1 Thumbprint) Parameter. */
60
- x5t?: string;
61
- /** "x5t#S256" (X.509 Certificate SHA-256 Thumbprint) Parameter. */
62
- 'x5t#S256'?: string;
63
- /** JWK "x5u" (X.509 URL) Parameter. */
64
- x5u?: string;
65
- [propName: string]: unknown;
66
- }
67
- export interface BaseJWK {
68
- kty: string;
69
- crv?: string;
70
- x?: string;
71
- y?: string;
72
- e?: string;
73
- n?: string;
74
- }
75
16
  export type KeyVisibility = 'public' | 'private';
76
17
  export interface X509Opts {
77
18
  cn?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"key-util-types.d.ts","sourceRoot":"","sources":["../../src/types/key-util-types.ts"],"names":[],"mappings":"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"}
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;AAE7G,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,QAAQ,CAAA;IACf,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,KAAK,EAAE,MAAM,CAAA;CACd,CAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SignatureAlgorithmJwa = exports.ENC_KEY_ALGS = exports.SIG_KEY_ALGS = exports.KeyType = exports.KeyCurve = exports.JwkKeyUse = exports.Key = exports.JWK_JCS_PUB_PREFIX = exports.JWK_JCS_PUB_NAME = void 0;
3
+ exports.ENC_KEY_ALGS = exports.SIG_KEY_ALGS = exports.JwkKeyUse = exports.Key = exports.JWK_JCS_PUB_PREFIX = exports.JWK_JCS_PUB_NAME = void 0;
4
4
  exports.JWK_JCS_PUB_NAME = 'jwk_jcs-pub';
5
5
  exports.JWK_JCS_PUB_PREFIX = 0xeb51;
6
6
  var Key;
@@ -14,34 +14,6 @@ var JwkKeyUse;
14
14
  JwkKeyUse["Encryption"] = "enc";
15
15
  JwkKeyUse["Signature"] = "sig";
16
16
  })(JwkKeyUse || (exports.JwkKeyUse = JwkKeyUse = {}));
17
- var KeyCurve;
18
- (function (KeyCurve) {
19
- KeyCurve["Secp256k1"] = "secp256k1";
20
- KeyCurve["P_256"] = "P-256";
21
- KeyCurve["Ed25519"] = "Ed25519";
22
- KeyCurve["X25519"] = "X25519";
23
- })(KeyCurve || (exports.KeyCurve = KeyCurve = {}));
24
- var KeyType;
25
- (function (KeyType) {
26
- KeyType["EC"] = "EC";
27
- KeyType["OKP"] = "OKP";
28
- KeyType["RSA"] = "RSA";
29
- })(KeyType || (exports.KeyType = KeyType = {}));
30
17
  exports.SIG_KEY_ALGS = ['ES256', 'ES384', 'ES512', 'EdDSA', 'ES256K', 'Ed25519', 'Secp256k1', 'Secp256r1', 'Bls12381G1', 'Bls12381G2'];
31
18
  exports.ENC_KEY_ALGS = ['X25519', 'ECDH_ES_A256KW', 'RSA_OAEP_256'];
32
- var SignatureAlgorithmJwa;
33
- (function (SignatureAlgorithmJwa) {
34
- // todo: Compare to spec and to kmp lib
35
- SignatureAlgorithmJwa["EdDSA"] = "EdDSA";
36
- SignatureAlgorithmJwa["ES256"] = "ES256";
37
- SignatureAlgorithmJwa["ES384"] = "ES384";
38
- SignatureAlgorithmJwa["ES512"] = "ES512";
39
- SignatureAlgorithmJwa["ES256K"] = "ES256K";
40
- SignatureAlgorithmJwa["RS256"] = "RS256";
41
- SignatureAlgorithmJwa["RS384"] = "RS384";
42
- SignatureAlgorithmJwa["RS512"] = "RS512";
43
- SignatureAlgorithmJwa["PS256"] = "PS256";
44
- SignatureAlgorithmJwa["PS384"] = "PS384";
45
- SignatureAlgorithmJwa["PS512"] = "PS512";
46
- })(SignatureAlgorithmJwa || (exports.SignatureAlgorithmJwa = SignatureAlgorithmJwa = {}));
47
19
  //# sourceMappingURL=key-util-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"key-util-types.js","sourceRoot":"","sources":["../../src/types/key-util-types.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAG,aAAsB,CAAA;AACzC,QAAA,kBAAkB,GAAG,MAAM,CAAA;AAIxC,IAAY,GAIX;AAJD,WAAY,GAAG;IACb,0BAAmB,CAAA;IACnB,8BAAuB,CAAA;IACvB,8BAAuB,CAAA;AACzB,CAAC,EAJW,GAAG,mBAAH,GAAG,QAId;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,+BAAkB,CAAA;IAClB,8BAAiB,CAAA;AACnB,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAED,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,mCAAuB,CAAA;IACvB,2BAAe,CAAA;IACf,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;AACnB,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB;AAED,IAAY,OAIX;AAJD,WAAY,OAAO;IACjB,oBAAS,CAAA;IACT,sBAAW,CAAA;IACX,sBAAW,CAAA;AACb,CAAC,EAJW,OAAO,uBAAP,OAAO,QAIlB;AAEY,QAAA,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;AAC9H,QAAA,YAAY,GAAG,CAAC,QAAQ,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAA;AAExE,IAAY,qBAcX;AAdD,WAAY,qBAAqB;IAC/B,uCAAuC;IAEvC,wCAAe,CAAA;IACf,wCAAe,CAAA;IACf,wCAAe,CAAA;IACf,wCAAe,CAAA;IACf,0CAAiB,CAAA;IACjB,wCAAe,CAAA;IACf,wCAAe,CAAA;IACf,wCAAe,CAAA;IACf,wCAAe,CAAA;IACf,wCAAe,CAAA;IACf,wCAAe,CAAA;AACjB,CAAC,EAdW,qBAAqB,qCAArB,qBAAqB,QAchC"}
1
+ {"version":3,"file":"key-util-types.js","sourceRoot":"","sources":["../../src/types/key-util-types.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAG,aAAsB,CAAA;AACzC,QAAA,kBAAkB,GAAG,MAAM,CAAA;AAIxC,IAAY,GAIX;AAJD,WAAY,GAAG;IACb,0BAAmB,CAAA;IACnB,8BAAuB,CAAA;IACvB,8BAAuB,CAAA;AACzB,CAAC,EAJW,GAAG,mBAAH,GAAG,QAId;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,+BAAkB,CAAA;IAClB,8BAAiB,CAAA;AACnB,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAEY,QAAA,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;AAC9H,QAAA,YAAY,GAAG,CAAC,QAAQ,EAAE,gBAAgB,EAAE,cAAc,CAAC,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.24.1-next.98+b2c8065",
4
+ "version": "0.24.1-unstable.111+967cf87",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -11,8 +11,8 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@ethersproject/random": "^5.7.0",
14
- "@sphereon/ssi-sdk-ext.x509-utils": "0.24.1-next.98+b2c8065",
15
- "@sphereon/ssi-types": "0.29.1-unstable.75",
14
+ "@sphereon/ssi-sdk-ext.x509-utils": "0.24.1-unstable.111+967cf87",
15
+ "@sphereon/ssi-types": "0.29.1-unstable.161",
16
16
  "@stablelib/ed25519": "^1.0.3",
17
17
  "@stablelib/sha256": "^1.0.1",
18
18
  "@stablelib/sha512": "^1.0.1",
@@ -49,5 +49,5 @@
49
49
  "DID",
50
50
  "Veramo"
51
51
  ],
52
- "gitHead": "b2c80655b05eec627f2f3d957cece1b6468375cf"
52
+ "gitHead": "967cf877695f548a7026a6307fd5f13fe372b520"
53
53
  }
@@ -0,0 +1,222 @@
1
+ import {
2
+ ICoseCurve,
3
+ ICoseKeyJson,
4
+ ICoseKeyOperation,
5
+ ICoseKeyType,
6
+ ICoseSignatureAlgorithm,
7
+ JoseCurve,
8
+ JoseCurveString,
9
+ JoseKeyOperation,
10
+ JoseKeyOperationString,
11
+ JoseSignatureAlgorithm,
12
+ JoseSignatureAlgorithmString,
13
+ JWK,
14
+ JwkKeyType,
15
+ JwkKeyTypeString,
16
+ } from '@sphereon/ssi-types'
17
+
18
+ export function coseKeyToJwk(coseKey: ICoseKeyJson): JWK {
19
+ const { x5chain, key_ops, crv, alg, baseIV, kty, ...rest } = coseKey
20
+ return {
21
+ ...rest,
22
+ kty: coseToJoseKty(kty),
23
+ ...(crv && { crv: coseToJoseCurve(crv) }),
24
+ ...(key_ops && { key_ops: key_ops.map(coseToJoseKeyOperation) }),
25
+ ...(alg && { alg: coseToJoseSignatureAlg(alg) }),
26
+ ...(baseIV && { iv: baseIV }),
27
+ ...(x5chain && { x5c: x5chain }),
28
+ } satisfies JWK
29
+ }
30
+
31
+ export function jwkToCoseKey(jwk: JWK): ICoseKeyJson {
32
+ const { x5c, key_ops, crv, alg, iv, kty, ...rest } = jwk
33
+ return {
34
+ ...rest,
35
+ kty: joseToCoseKty(kty),
36
+ ...(crv && { crv: joseToCoseCurve(crv) }),
37
+ ...(key_ops && { key_ops: key_ops.map(joseToCoseKeyOperation) }),
38
+ ...(alg && { alg: joseToCoseSignatureAlg(alg) }),
39
+ ...(iv && { baseIV: iv }),
40
+ ...(x5c && { x5chain: x5c }),
41
+ } satisfies ICoseKeyJson
42
+ }
43
+
44
+ export function coseToJoseKty(kty: ICoseKeyType): JwkKeyType {
45
+ switch (kty) {
46
+ case ICoseKeyType.EC2:
47
+ return JwkKeyType.EC
48
+ case ICoseKeyType.RSA:
49
+ return JwkKeyType.RSA
50
+ case ICoseKeyType.Symmetric:
51
+ return JwkKeyType.oct
52
+ case ICoseKeyType.OKP:
53
+ return JwkKeyType.OKP
54
+ default:
55
+ throw Error(`Key type ${kty} not supported in JWA`)
56
+ }
57
+ }
58
+
59
+ export function joseToCoseKty(kty: JwkKeyType | JwkKeyTypeString): ICoseKeyType {
60
+ switch (kty) {
61
+ case 'EC':
62
+ return ICoseKeyType.EC2
63
+ case 'RSA':
64
+ return ICoseKeyType.RSA
65
+ case 'oct':
66
+ return ICoseKeyType.Symmetric
67
+ case 'OKP':
68
+ return ICoseKeyType.OKP
69
+ default:
70
+ throw Error(`Key type ${kty} not supported in Cose`)
71
+ }
72
+ }
73
+
74
+ export function coseToJoseSignatureAlg(coseAlg: ICoseSignatureAlgorithm): JoseSignatureAlgorithm {
75
+ switch (coseAlg) {
76
+ case ICoseSignatureAlgorithm.ES256K:
77
+ return JoseSignatureAlgorithm.ES256K
78
+ case ICoseSignatureAlgorithm.ES256:
79
+ return JoseSignatureAlgorithm.ES256
80
+ case ICoseSignatureAlgorithm.ES384:
81
+ return JoseSignatureAlgorithm.ES384
82
+ case ICoseSignatureAlgorithm.ES512:
83
+ return JoseSignatureAlgorithm.ES512
84
+ case ICoseSignatureAlgorithm.PS256:
85
+ return JoseSignatureAlgorithm.PS256
86
+ case ICoseSignatureAlgorithm.PS384:
87
+ return JoseSignatureAlgorithm.PS384
88
+ case ICoseSignatureAlgorithm.PS512:
89
+ return JoseSignatureAlgorithm.PS512
90
+ case ICoseSignatureAlgorithm.HS256:
91
+ return JoseSignatureAlgorithm.HS256
92
+ case ICoseSignatureAlgorithm.HS384:
93
+ return JoseSignatureAlgorithm.HS384
94
+ case ICoseSignatureAlgorithm.HS512:
95
+ return JoseSignatureAlgorithm.HS512
96
+ case ICoseSignatureAlgorithm.EdDSA:
97
+ return JoseSignatureAlgorithm.EdDSA
98
+ default:
99
+ throw Error(`Signature algorithm ${coseAlg} not supported in Jose`)
100
+ }
101
+ }
102
+
103
+ export function joseToCoseSignatureAlg(joseAlg: JoseSignatureAlgorithm | JoseSignatureAlgorithmString): ICoseSignatureAlgorithm {
104
+ switch (joseAlg) {
105
+ case (JoseSignatureAlgorithm.ES256K, 'ES256K'):
106
+ return ICoseSignatureAlgorithm.ES256K
107
+ case (JoseSignatureAlgorithm.ES256, 'ES256'):
108
+ return ICoseSignatureAlgorithm.ES256
109
+ case (JoseSignatureAlgorithm.ES384, 'ES384'):
110
+ return ICoseSignatureAlgorithm.ES384
111
+ case (JoseSignatureAlgorithm.ES512, 'ES512'):
112
+ return ICoseSignatureAlgorithm.ES512
113
+ case (JoseSignatureAlgorithm.PS256, 'PS256'):
114
+ return ICoseSignatureAlgorithm.PS256
115
+ case (JoseSignatureAlgorithm.PS384, 'PS384'):
116
+ return ICoseSignatureAlgorithm.PS384
117
+ case (JoseSignatureAlgorithm.PS512, 'PS512'):
118
+ return ICoseSignatureAlgorithm.PS512
119
+ case (JoseSignatureAlgorithm.HS256, 'HS256'):
120
+ return ICoseSignatureAlgorithm.HS256
121
+ case (JoseSignatureAlgorithm.HS384, 'HS384'):
122
+ return ICoseSignatureAlgorithm.HS384
123
+ case (JoseSignatureAlgorithm.HS512, 'HS512'):
124
+ return ICoseSignatureAlgorithm.HS512
125
+ case (JoseSignatureAlgorithm.EdDSA, 'EdDSA'):
126
+ return ICoseSignatureAlgorithm.EdDSA
127
+ default:
128
+ throw Error(`Signature algorithm ${joseAlg} not supported in Cose`)
129
+ }
130
+ }
131
+
132
+ export function joseToCoseKeyOperation(keyOp: JoseKeyOperation | JoseKeyOperationString): ICoseKeyOperation {
133
+ switch (keyOp) {
134
+ case (JoseKeyOperation.SIGN, 'sign'):
135
+ return ICoseKeyOperation.SIGN
136
+ case (JoseKeyOperation.VERIFY, 'verify'):
137
+ return ICoseKeyOperation.VERIFY
138
+ case (JoseKeyOperation.ENCRYPT, 'encrypt'):
139
+ return ICoseKeyOperation.ENCRYPT
140
+ case (JoseKeyOperation.DECRYPT, 'decrypt'):
141
+ return ICoseKeyOperation.DECRYPT
142
+ case (JoseKeyOperation.WRAP_KEY, 'wrapKey'):
143
+ return ICoseKeyOperation.WRAP_KEY
144
+ case (JoseKeyOperation.UNWRAP_KEY, 'unwrapKey'):
145
+ return ICoseKeyOperation.UNWRAP_KEY
146
+ case (JoseKeyOperation.DERIVE_KEY, 'deriveKey'):
147
+ return ICoseKeyOperation.DERIVE_KEY
148
+ case (JoseKeyOperation.DERIVE_BITS, 'deriveBits'):
149
+ return ICoseKeyOperation.DERIVE_BITS
150
+ default:
151
+ throw Error(`Key operation ${keyOp} not supported in Cose`)
152
+ }
153
+ }
154
+
155
+ export function coseToJoseKeyOperation(keyOp: ICoseKeyOperation): JoseKeyOperation {
156
+ switch (keyOp) {
157
+ case ICoseKeyOperation.SIGN:
158
+ return JoseKeyOperation.SIGN
159
+ case ICoseKeyOperation.VERIFY:
160
+ return JoseKeyOperation.VERIFY
161
+ case ICoseKeyOperation.ENCRYPT:
162
+ return JoseKeyOperation.ENCRYPT
163
+ case ICoseKeyOperation.DECRYPT:
164
+ return JoseKeyOperation.DECRYPT
165
+ case ICoseKeyOperation.WRAP_KEY:
166
+ return JoseKeyOperation.WRAP_KEY
167
+ case ICoseKeyOperation.UNWRAP_KEY:
168
+ return JoseKeyOperation.UNWRAP_KEY
169
+ case ICoseKeyOperation.DERIVE_KEY:
170
+ return JoseKeyOperation.DERIVE_KEY
171
+ case ICoseKeyOperation.DERIVE_BITS:
172
+ return JoseKeyOperation.DERIVE_BITS
173
+ default:
174
+ throw Error(`Key operation ${keyOp} not supported in Jose`)
175
+ }
176
+ }
177
+
178
+ export function joseToCoseCurve(curve: JoseCurve | JoseCurveString): ICoseCurve {
179
+ switch (curve) {
180
+ case (JoseCurve.P_256, 'P-256'):
181
+ return ICoseCurve.P_256
182
+ case (JoseCurve.P_384, 'P-384'):
183
+ return ICoseCurve.P_384
184
+ case (JoseCurve.P_521, 'P-521'):
185
+ return ICoseCurve.P_521
186
+ case (JoseCurve.X25519, 'X25519'):
187
+ return ICoseCurve.X25519
188
+ case (JoseCurve.X448, 'X448'):
189
+ return ICoseCurve.X448
190
+ case (JoseCurve.Ed25519, 'Ed25519'):
191
+ return ICoseCurve.Ed25519
192
+ case (JoseCurve.Ed448, 'Ed448'):
193
+ return ICoseCurve.Ed448
194
+ case (JoseCurve.secp256k1, 'secp256k1'):
195
+ return ICoseCurve.secp256k1
196
+ default:
197
+ throw Error(`Curve ${curve} not supported in Cose`)
198
+ }
199
+ }
200
+
201
+ export function coseToJoseCurve(curve: ICoseCurve): JoseCurve {
202
+ switch (curve) {
203
+ case ICoseCurve.P_256:
204
+ return JoseCurve.P_256
205
+ case ICoseCurve.P_384:
206
+ return JoseCurve.P_384
207
+ case ICoseCurve.P_521:
208
+ return JoseCurve.P_521
209
+ case ICoseCurve.X25519:
210
+ return JoseCurve.X25519
211
+ case ICoseCurve.X448:
212
+ return JoseCurve.X448
213
+ case ICoseCurve.Ed25519:
214
+ return JoseCurve.Ed25519
215
+ case ICoseCurve.Ed448:
216
+ return JoseCurve.Ed448
217
+ case ICoseCurve.secp256k1:
218
+ return JoseCurve.secp256k1
219
+ default:
220
+ throw Error(`Curve ${curve} not supported in Jose`)
221
+ }
222
+ }
package/src/functions.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { randomBytes } from '@ethersproject/random'
2
2
  import { generateRSAKeyAsPEM, hexToBase64, hexToPEM, PEMToJwk, privateKeyHexFromPEM } from '@sphereon/ssi-sdk-ext.x509-utils'
3
- import { Loggers } from '@sphereon/ssi-types'
3
+ import { JoseCurve, JoseSignatureAlgorithm, JwkKeyType, JWK, Loggers } from '@sphereon/ssi-types'
4
4
  import { generateKeyPair as generateSigningKeyPair } from '@stablelib/ed25519'
5
5
  import { IAgentContext, IKey, IKeyManager, ManagedKeyInfo, MinimalImportableKey } from '@veramo/core'
6
6
 
@@ -11,15 +11,11 @@ import { digestMethodParams } from './digest-methods'
11
11
  import {
12
12
  ENC_KEY_ALGS,
13
13
  IImportProvidedOrGeneratedKeyArgs,
14
- JWK,
15
14
  JwkKeyUse,
16
- KeyCurve,
17
- KeyType,
18
15
  KeyTypeFromCryptographicSuiteArgs,
19
16
  SIG_KEY_ALGS,
20
17
  SignatureAlgorithmFromKeyArgs,
21
18
  SignatureAlgorithmFromKeyTypeArgs,
22
- SignatureAlgorithmJwa,
23
19
  TKeyType,
24
20
  } from './types'
25
21
 
@@ -189,7 +185,13 @@ export const calculateJwkThumbprint = (args: { jwk: JWK; digestAlgorithm?: 'sha2
189
185
  : digestMethodParams('SHA-256').digestMethod(data, 'base64url')
190
186
  }
191
187
 
192
- export const toJwkFromKey = (key: IKey | MinimalImportableKey | ManagedKeyInfo, opts?: { use?: JwkKeyUse; noKidThumbprint?: boolean }): JWK => {
188
+ export const toJwkFromKey = (
189
+ key: IKey | MinimalImportableKey | ManagedKeyInfo,
190
+ opts?: {
191
+ use?: JwkKeyUse
192
+ noKidThumbprint?: boolean
193
+ }
194
+ ): JWK => {
193
195
  const isPrivateKey = 'privateKeyHex' in key
194
196
  return toJwk(key.publicKeyHex!, key.type, { ...opts, key, isPrivateKey })
195
197
  }
@@ -213,10 +215,10 @@ export const toJwk = (
213
215
  let jwk: JWK
214
216
  switch (type) {
215
217
  case 'Ed25519':
216
- jwk = toEd25519OrX25519Jwk(publicKeyHex, { ...opts, crv: KeyCurve.Ed25519 })
218
+ jwk = toEd25519OrX25519Jwk(publicKeyHex, { ...opts, crv: JoseCurve.Ed25519 })
217
219
  break
218
220
  case 'X25519':
219
- jwk = toEd25519OrX25519Jwk(publicKeyHex, { ...opts, crv: KeyCurve.X25519 })
221
+ jwk = toEd25519OrX25519Jwk(publicKeyHex, { ...opts, crv: JoseCurve.X25519 })
220
222
  break
221
223
  case 'Secp256k1':
222
224
  jwk = toSecp256k1Jwk(publicKeyHex, opts)
@@ -293,10 +295,10 @@ const toSecp256k1Jwk = (keyHex: string, opts?: { use?: JwkKeyUse; isPrivateKey?:
293
295
  const pubPoint = keyPair.getPublic()
294
296
 
295
297
  return {
296
- alg: 'ES256K',
298
+ alg: JoseSignatureAlgorithm.ES256K,
297
299
  ...(use !== undefined && { use }),
298
- kty: KeyType.EC,
299
- crv: KeyCurve.Secp256k1,
300
+ kty: JwkKeyType.EC,
301
+ crv: JoseCurve.secp256k1,
300
302
  x: hexToBase64(pubPoint.getX().toString('hex'), 'base64url'),
301
303
  y: hexToBase64(pubPoint.getY().toString('hex'), 'base64url'),
302
304
  ...(opts?.isPrivateKey && { d: hexToBase64(keyPair.getPrivate('hex'), 'base64url') }),
@@ -324,10 +326,10 @@ const toSecp256r1Jwk = (keyHex: string, opts?: { use?: JwkKeyUse; isPrivateKey?:
324
326
  const keyPair = opts?.isPrivateKey ? secp256r1.keyFromPrivate(keyBytes) : secp256r1.keyFromPublic(keyBytes)
325
327
  const pubPoint = keyPair.getPublic()
326
328
  return {
327
- alg: 'ES256',
329
+ alg: JoseSignatureAlgorithm.ES256,
328
330
  ...(use !== undefined && { use }),
329
- kty: KeyType.EC,
330
- crv: KeyCurve.P_256,
331
+ kty: JwkKeyType.EC,
332
+ crv: JoseCurve.P_256,
331
333
  x: hexToBase64(pubPoint.getX().toString('hex'), 'base64url'),
332
334
  y: hexToBase64(pubPoint.getY().toString('hex'), 'base64url'),
333
335
  ...(opts?.isPrivateKey && { d: hexToBase64(keyPair.getPrivate('hex'), 'base64url') }),
@@ -337,23 +339,23 @@ const toSecp256r1Jwk = (keyHex: string, opts?: { use?: JwkKeyUse; isPrivateKey?:
337
339
  /**
338
340
  * Generates a JWK from an Ed25519/X25519 public key
339
341
  * @param publicKeyHex Ed25519/X25519 public key in hex
340
- * @param use The use for the key
342
+ * @param opts
341
343
  * @return The JWK
342
344
  */
343
345
  const toEd25519OrX25519Jwk = (
344
346
  publicKeyHex: string,
345
347
  opts: {
346
348
  use?: JwkKeyUse
347
- crv: KeyCurve.Ed25519 | KeyCurve.X25519
349
+ crv: JoseCurve.Ed25519 | JoseCurve.X25519
348
350
  }
349
351
  ): JWK => {
350
352
  assertProperKeyLength(publicKeyHex, 64)
351
353
  const { use } = opts ?? {}
352
354
  return {
353
- alg: 'EdDSA',
355
+ alg: JoseSignatureAlgorithm.EdDSA,
354
356
  ...(use !== undefined && { use }),
355
- kty: KeyType.OKP,
356
- crv: opts?.crv ?? KeyCurve.Ed25519,
357
+ kty: JwkKeyType.OKP,
358
+ crv: opts?.crv ?? JoseCurve.Ed25519,
357
359
  x: hexToBase64(publicKeyHex, 'base64url'),
358
360
  }
359
361
  }
@@ -364,11 +366,11 @@ const toRSAJwk = (publicKeyHex: string, opts?: { use?: JwkKeyUse; key?: IKey | M
364
366
  // assertProperKeyLength(publicKey, [2048, 3072, 4096])
365
367
 
366
368
  if (key?.meta?.publicKeyJwk) {
367
- return key.meta.publicKeyJwk as JsonWebKey
369
+ return key.meta.publicKeyJwk as JWK
368
370
  }
369
371
 
370
372
  const publicKeyPEM = key?.meta?.publicKeyPEM ?? hexToPEM(publicKeyHex, 'public')
371
- return PEMToJwk(publicKeyPEM, 'public') as JsonWebKey
373
+ return PEMToJwk(publicKeyPEM, 'public') as JWK
372
374
  }
373
375
 
374
376
  export const padLeft = (args: { data: string; size?: number; padString?: string }): string => {
@@ -496,21 +498,21 @@ export const toRawCompressedHexPublicKey = (rawPublicKey: Uint8Array, keyType: T
496
498
 
497
499
  export const hexStringFromUint8Array = (value: Uint8Array): string => u8a.toString(value, 'base16')
498
500
 
499
- export const signatureAlgorithmFromKey = async (args: SignatureAlgorithmFromKeyArgs): Promise<SignatureAlgorithmJwa> => {
501
+ export const signatureAlgorithmFromKey = async (args: SignatureAlgorithmFromKeyArgs): Promise<JoseSignatureAlgorithm> => {
500
502
  const { key } = args
501
503
  return signatureAlgorithmFromKeyType({ type: key.type })
502
504
  }
503
505
 
504
- export const signatureAlgorithmFromKeyType = (args: SignatureAlgorithmFromKeyTypeArgs): SignatureAlgorithmJwa => {
506
+ export const signatureAlgorithmFromKeyType = (args: SignatureAlgorithmFromKeyTypeArgs): JoseSignatureAlgorithm => {
505
507
  const { type } = args
506
508
  switch (type) {
507
509
  case 'Ed25519':
508
510
  case 'X25519':
509
- return SignatureAlgorithmJwa.EdDSA
511
+ return JoseSignatureAlgorithm.EdDSA
510
512
  case 'Secp256r1':
511
- return SignatureAlgorithmJwa.ES256
513
+ return JoseSignatureAlgorithm.ES256
512
514
  case 'Secp256k1':
513
- return SignatureAlgorithmJwa.ES256K
515
+ return JoseSignatureAlgorithm.ES256K
514
516
  default:
515
517
  throw new Error(`Key type '${type}' not supported`)
516
518
  }
@@ -527,6 +529,7 @@ export const keyTypeFromCryptographicSuite = (args: KeyTypeFromCryptographicSuit
527
529
  return 'Ed25519'
528
530
  case 'JsonWebSignature2020':
529
531
  case 'ES256':
532
+ case 'ECDSA':
530
533
  return 'Secp256r1'
531
534
  case 'EcdsaSecp256k1Signature2019':
532
535
  case 'ES256K':
@@ -535,3 +538,42 @@ export const keyTypeFromCryptographicSuite = (args: KeyTypeFromCryptographicSuit
535
538
  throw new Error(`Cryptographic suite '${suite}' not supported`)
536
539
  }
537
540
  }
541
+
542
+ export async function verifySignatureWithSubtle({
543
+ data,
544
+ signature,
545
+ key,
546
+ crypto: cryptoArg,
547
+ }: {
548
+ data: Uint8Array
549
+ signature: Uint8Array
550
+ key: JsonWebKey
551
+ crypto?: Crypto
552
+ }) {
553
+ let { alg, crv } = key
554
+ if (alg === 'ES256' || !alg) {
555
+ alg = 'ECDSA'
556
+ }
557
+
558
+ const subtle = cryptoArg?.subtle ?? crypto.subtle
559
+ const publicKey = await subtle.importKey(
560
+ 'jwk',
561
+ key,
562
+ {
563
+ name: alg,
564
+ namedCurve: crv,
565
+ } as EcKeyImportParams,
566
+ true,
567
+ ['verify']
568
+ )
569
+
570
+ return subtle.verify(
571
+ {
572
+ name: alg as string,
573
+ hash: 'SHA-256', // fixme; make arg
574
+ },
575
+ publicKey,
576
+ signature,
577
+ data
578
+ )
579
+ }
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  * @packageDocumentation
6
6
  */
7
7
  export * from './functions'
8
+ export * from './conversion'
8
9
  export * from './jwk-jcs'
9
10
  export * from './types'
10
11
  export * from './digest-methods'
@@ -16,75 +16,9 @@ export enum JwkKeyUse {
16
16
  Signature = 'sig',
17
17
  }
18
18
 
19
- export enum KeyCurve {
20
- Secp256k1 = 'secp256k1',
21
- P_256 = 'P-256',
22
- Ed25519 = 'Ed25519',
23
- X25519 = 'X25519',
24
- }
25
-
26
- export enum KeyType {
27
- EC = 'EC',
28
- OKP = 'OKP',
29
- RSA = 'RSA',
30
- }
31
-
32
19
  export const SIG_KEY_ALGS = ['ES256', 'ES384', 'ES512', 'EdDSA', 'ES256K', 'Ed25519', 'Secp256k1', 'Secp256r1', 'Bls12381G1', 'Bls12381G2']
33
20
  export const ENC_KEY_ALGS = ['X25519', 'ECDH_ES_A256KW', 'RSA_OAEP_256']
34
21
 
35
- export enum SignatureAlgorithmJwa {
36
- // todo: Compare to spec and to kmp lib
37
-
38
- EdDSA = 'EdDSA',
39
- ES256 = 'ES256',
40
- ES384 = 'ES384',
41
- ES512 = 'ES512',
42
- ES256K = 'ES256K',
43
- RS256 = 'RS256',
44
- RS384 = 'RS384',
45
- RS512 = 'RS512',
46
- PS256 = 'PS256',
47
- PS384 = 'PS384',
48
- PS512 = 'PS512',
49
- }
50
-
51
- export interface JWK extends BaseJWK {
52
- d?: string
53
- dp?: string
54
- dq?: string
55
- ext?: boolean
56
- k?: string
57
- key_ops?: string[]
58
- kid?: string
59
- oth?: Array<{
60
- d?: string
61
- r?: string
62
- t?: string
63
- }>
64
- p?: string
65
- q?: string
66
- qi?: string
67
- use?: string
68
- /** JWK "x5c" (X.509 Certificate Chain) Parameter. */
69
- x5c?: string[]
70
- /** JWK "x5t" (X.509 Certificate SHA-1 Thumbprint) Parameter. */
71
- x5t?: string
72
- /** "x5t#S256" (X.509 Certificate SHA-256 Thumbprint) Parameter. */
73
- 'x5t#S256'?: string
74
- /** JWK "x5u" (X.509 URL) Parameter. */
75
- x5u?: string
76
- [propName: string]: unknown
77
- }
78
-
79
- export interface BaseJWK {
80
- kty: string
81
- crv?: string
82
- x?: string
83
- y?: string
84
- e?: string
85
- n?: string
86
- }
87
-
88
22
  export type KeyVisibility = 'public' | 'private'
89
23
 
90
24
  export interface X509Opts {