@hpke/hybridkem-x-wing 0.2.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -30
- package/esm/deps/jsr.io/@std/assert/1.0.7/assertion_error.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/internal/{1.0.3 → 1.0.5}/build_message.d.ts.map +1 -1
- package/{script/deps/jsr.io/@std/internal/1.0.3 → esm/deps/jsr.io/@std/internal/1.0.5}/diff.d.ts.map +1 -1
- package/{script/deps/jsr.io/@std/internal/1.0.3 → esm/deps/jsr.io/@std/internal/1.0.5}/diff_str.d.ts.map +1 -1
- package/{script/deps/jsr.io/@std/internal/1.0.3 → esm/deps/jsr.io/@std/internal/1.0.5}/format.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/internal/1.0.5/mod.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/internal/{1.0.3 → 1.0.5}/styles.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/internal/{1.0.3 → 1.0.5}/types.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/testing/{1.0.2 → 1.0.4}/_test_suite.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/testing/{1.0.2 → 1.0.4}/bdd.d.ts.map +1 -1
- package/esm/mod.d.ts +1 -1
- package/esm/mod.d.ts.map +1 -1
- package/esm/mod.js +1 -1
- package/esm/src/{hybridkemXWing.d.ts → xWing.d.ts} +31 -6
- package/esm/src/xWing.d.ts.map +1 -0
- package/esm/src/{hybridkemXWing.js → xWing.js} +94 -24
- package/esm/test/testVectors.d.ts.map +1 -1
- package/package.json +5 -5
- package/script/deps/jsr.io/@std/assert/1.0.7/assertion_error.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/internal/1.0.5/assertion_state.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/internal/{1.0.3 → 1.0.5}/build_message.d.ts.map +1 -1
- package/{esm/deps/jsr.io/@std/internal/1.0.3 → script/deps/jsr.io/@std/internal/1.0.5}/diff.d.ts.map +1 -1
- package/{esm/deps/jsr.io/@std/internal/1.0.3 → script/deps/jsr.io/@std/internal/1.0.5}/diff_str.d.ts.map +1 -1
- package/{esm/deps/jsr.io/@std/internal/1.0.3 → script/deps/jsr.io/@std/internal/1.0.5}/format.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/internal/1.0.5/mod.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/internal/{1.0.3 → 1.0.5}/styles.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/internal/{1.0.3 → 1.0.5}/types.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/testing/{1.0.2 → 1.0.4}/_test_suite.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/testing/{1.0.2 → 1.0.4}/bdd.d.ts.map +1 -1
- package/script/mod.d.ts +1 -1
- package/script/mod.d.ts.map +1 -1
- package/script/mod.js +4 -4
- package/script/src/{hybridkemXWing.d.ts → xWing.d.ts} +31 -6
- package/script/src/xWing.d.ts.map +1 -0
- package/script/src/{hybridkemXWing.js → xWing.js} +95 -25
- package/script/test/testVectors.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/internal/1.0.3/mod.d.ts.map +0 -1
- package/esm/src/hybridkemXWing.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/internal/1.0.3/mod.d.ts.map +0 -1
- package/script/src/hybridkemXWing.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -16,6 +16,64 @@ Documentation: [jsr.io](https://jsr.io/@hpke/hybridkem-x-wing/doc) |
|
|
|
16
16
|
|
|
17
17
|
</div>
|
|
18
18
|
|
|
19
|
+
An example of use:
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import { Aes256Gcm, CipherSuite, HkdfSha256 } from "@hpke/core";
|
|
23
|
+
import { XWing } from "@hpke/hybridkem-x-wing";
|
|
24
|
+
|
|
25
|
+
async function doHpke() {
|
|
26
|
+
const suite = new CipherSuite({
|
|
27
|
+
kem: new XWing(),
|
|
28
|
+
kdf: new HkdfSha256(),
|
|
29
|
+
aead: new Aes256Gcm(),
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// NOTE: The following support for JWKs with the AKP key type is experimental.
|
|
33
|
+
// Please be aware that the specifications are subject to change without notice.
|
|
34
|
+
const jwkPub = {
|
|
35
|
+
kty: "AKP",
|
|
36
|
+
kid: "01",
|
|
37
|
+
alg: "X-Wing",
|
|
38
|
+
pub:
|
|
39
|
+
"4iNrNajCSzmxCqEyOpapGaLO2IQAYzp7BxMXE_wUsrWxnPw9pfoaksSfJVE-D9MNaxYRyauWNdcIZyekt9IdNCROZpac8Vs7KnhTKfYbCWsnfqA3ODR5prVW3nIx_kt_qcmsJMBpmgAYpSU0AbrPqQXKgWVz5WotLgZ-m3KHUzuhOpN97bMfpEus7UB2mSNhADSuMeYZoXAkUZmzxcOYZIWf4bTJcXoHwwSVvfuYoKACzPVsEobO9QQd7ePETPFr9WLHRIUYAms9i5lAaAq9OKFXX9J7WNoGO_rDLDnDCGk3TAXBrrGJi2swPMaL5FU0buCvaZY2IkoUjKKuoQRjERxwn2m2nHDOhTh0ZpjExgqa7wAwx5JM7sQqXTaBb1RerhMpNGCzrLN-oOE9cOSqeGhto5ioOXwI6vloghE_5Pe61NpAsFAeHHU-_nMFPIcBToZhwzCZr-i-3kFKWxqifYOSs-Ex6acMEFWHgkDK0PQNX-PN-FI26tl-KpdEg2OygIyq_VFs0lBSxcNiVDwlF-Ss0OYOwHFjAJtkJfwyJ3rO5xwkurU-2fKedMZqCjVklVmY12uWqai1DRY1pNemfrQt9WRNMwRXKTqAQvU8x6aSiPF-1Vgn6Cso6CZlqGoU-9lmReyoFywET4O8DYwLTIYmmFYxyoevgpBo8TWJY8szNmTKSCdjujs7sghXf5umrGLCX3ZZJ0O2S-UZMXcUy0ECy3svmiWytPBhXeMd7NnKVQJtbaC2URGxb-Uv7tikh-FERiptupNyj1ALb_xJ5RVWnvJf7Rev9SBQc2glNSWGD1i-O-YclkYEpqyBTmk1WWQCpSCkZws9KEMYhmWT0VpLsBw14-WH7gxn0ogNbyQH-3pwcSuDjeuWxde_K0S89gOMy-M_vPUaVKWE_pAIPJHHptQ9T7FfSMYML9ZuCoqtStZOXEK7iHfA6-wrXjh8ipiP3CO-ueFsh1d4HgoUmcYeE4wh8hbCnQdpeYccqmlCuvwJBUS-6ZtUsWy5qaNk1iRtn0LM5TxmtZxFyPmukpmnXRUYDDyVIVGpG3oQdyQp3Ey65vzGIvqAGMY0OfiQYwuZKNtrt_lDiuQGXtNNc9SG8_UvkPCAfciN_djHKOlU8aw1wGwADOQaBYJYDju1e2cpcokKxeeYjnhQZXEW8bV9CAmq7ewL7eGuFIFIMRxvfjFzRuUYn7jNY1uYb4wL3SdkHFhLd4s6kRqAvhyWkquOG7sSg5VzzOGd8YO0WDW7tVBS-fxmoWeO8qNt6nhBHmyNYFAbTmBZLRNpipQ7UJGF25EuLqEL4GFxI2syfHFxYJTJZKaLAzd_UToFvNmcHzRlg7sFKXehChKt_HWANOVhfaTBJ2WF5XdOHzuZeLCdDpxE07yGFRxDqtGFcScXNAIjrDgdIRUKBClOl7sTu9ohtaGCttqWnhmn_QcnN_qOiApTwkKOPQSbfSGXQFKW3bNhkSp7z0gnztYR0Men2hBN3kMiCVM59kph1bsQj_C_TXgMrlCfsiwlaRQZP_c0kEJYEjfVIoKIJO4739B_sD8flC0uoXn-ci8GzAPeW2mFntsG7_OJsn3OWYRFcCFiI1k9S6MtmrrIzQSQQO9lNA",
|
|
40
|
+
key_ops: [],
|
|
41
|
+
};
|
|
42
|
+
const pk = await suite.kem.importKey("jwk", jwkPub, true);
|
|
43
|
+
// In addition to importing keys from external sources, you can also generate keys as follows:
|
|
44
|
+
// const rkp = await suite.kem.generateKeyPair();
|
|
45
|
+
// const rkp = await suite.kem.deriveKeyPair(random32bytesValue);
|
|
46
|
+
|
|
47
|
+
const sender = await suite.createSenderContext({ recipientPublicKey: pk });
|
|
48
|
+
|
|
49
|
+
const jwkPriv = {
|
|
50
|
+
kty: "AKP",
|
|
51
|
+
kid: "01",
|
|
52
|
+
alg: "X-Wing",
|
|
53
|
+
priv: "f5wrpOiPgn1hYEVQdgWFPtc7gJP277yI6xpurPpm7yY",
|
|
54
|
+
key_ops: ["deriveBits"],
|
|
55
|
+
};
|
|
56
|
+
const sk = await suite.kem.importKey("jwk", jwkPriv, false);
|
|
57
|
+
const recipient = await suite.createRecipientContext({
|
|
58
|
+
recipientKey: sk,
|
|
59
|
+
enc: sender.enc,
|
|
60
|
+
});
|
|
61
|
+
const encrypted = await sender.seal(
|
|
62
|
+
new TextEncoder().encode("Hellow world!"),
|
|
63
|
+
);
|
|
64
|
+
const pt = await recipient.open(encrypted);
|
|
65
|
+
|
|
66
|
+
// Hello world!
|
|
67
|
+
console.log(new TextDecoder().decode(pt));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
try {
|
|
71
|
+
doHpke();
|
|
72
|
+
} catch (err: unknown) {
|
|
73
|
+
console.log("failed:", (err as Error).message);
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
19
77
|
## Index
|
|
20
78
|
|
|
21
79
|
- [Installation](#installation)
|
|
@@ -27,7 +85,7 @@ Documentation: [jsr.io](https://jsr.io/@hpke/hybridkem-x-wing/doc) |
|
|
|
27
85
|
|
|
28
86
|
## Installation
|
|
29
87
|
|
|
30
|
-
`@hpke/hybridkem-x-wing`
|
|
88
|
+
`@hpke/hybridkem-x-wing` needs to be used with
|
|
31
89
|
[@hpke/core](https://github.com/dajiaji/hpke-js/blob/main/packages/core/README.md),
|
|
32
90
|
which can be installed in the same manner as desribed below.
|
|
33
91
|
|
|
@@ -52,8 +110,8 @@ such as Cloudflare Workers and Bun.
|
|
|
52
110
|
Then, you can use the module from code like this:
|
|
53
111
|
|
|
54
112
|
```ts
|
|
55
|
-
import {
|
|
56
|
-
import {
|
|
113
|
+
import { Aes256Gcm, CipherSuite, HkdfSha256 } from "@hpke/core";
|
|
114
|
+
import { XWing } from "@hpke/hybridkem-x-wing";
|
|
57
115
|
```
|
|
58
116
|
|
|
59
117
|
### Deno
|
|
@@ -75,22 +133,22 @@ Using esm.sh:
|
|
|
75
133
|
<!-- use a specific version -->
|
|
76
134
|
<script type="module">
|
|
77
135
|
import {
|
|
78
|
-
|
|
136
|
+
Aes256Gcm,
|
|
79
137
|
CipherSuite,
|
|
80
138
|
HkdfSha256,
|
|
81
139
|
} from "https://esm.sh/@hpke/core@<SEMVER>";
|
|
82
|
-
import {
|
|
140
|
+
import { XWing } from "https://esm.sh/@hpke/hybridkem-x-wing@<SEMVER>";
|
|
83
141
|
// ...
|
|
84
142
|
</script>
|
|
85
143
|
|
|
86
144
|
<!-- use the latest stable version -->
|
|
87
145
|
<script type="module">
|
|
88
146
|
import {
|
|
89
|
-
|
|
147
|
+
Aes256Gcm,
|
|
90
148
|
CipherSuite,
|
|
91
149
|
HkdfSha256,
|
|
92
150
|
} from "https://esm.sh/@hpke/core";
|
|
93
|
-
import {
|
|
151
|
+
import { XWing } from "https://esm.sh/@hpke/hybridkem-x-wing";
|
|
94
152
|
// ...
|
|
95
153
|
</script>
|
|
96
154
|
```
|
|
@@ -101,11 +159,11 @@ Using unpkg:
|
|
|
101
159
|
<!-- use a specific version -->
|
|
102
160
|
<script type="module">
|
|
103
161
|
import {
|
|
104
|
-
|
|
162
|
+
Aes256Gcm,
|
|
105
163
|
CipherSuite,
|
|
106
164
|
HkdfSha256,
|
|
107
165
|
} from "https://unpkg.com/@hpke/core@<SEMVER>/esm/mod.js";
|
|
108
|
-
import {
|
|
166
|
+
import { XWing } from "https://unpkg.com/@hpke/hybridkem-x-wing@<SEMVER>/esm/mod.js";
|
|
109
167
|
// ...
|
|
110
168
|
</script>
|
|
111
169
|
```
|
|
@@ -117,33 +175,34 @@ This section shows some typical usage examples.
|
|
|
117
175
|
### Node.js
|
|
118
176
|
|
|
119
177
|
```js
|
|
120
|
-
import {
|
|
121
|
-
import {
|
|
178
|
+
import { Aes256Gcm, CipherSuite, HkdfSha256 } from "@hpke/core";
|
|
179
|
+
import { XWing } from "@hpke/hybridkem-x-wing";
|
|
122
180
|
|
|
123
181
|
async function doHpke() {
|
|
124
182
|
// setup
|
|
125
183
|
const suite = new CipherSuite({
|
|
126
|
-
kem: new
|
|
184
|
+
kem: new XWing(),
|
|
127
185
|
kdf: new HkdfSha256(),
|
|
128
|
-
aead: new
|
|
186
|
+
aead: new Aes256Gcm(),
|
|
129
187
|
});
|
|
130
188
|
|
|
131
189
|
const rkp = await suite.kem.generateKeyPair();
|
|
132
190
|
|
|
191
|
+
// Note that the `ct` (ciphertext) resulting from X-Wing Encapsulate() is set to `sender.enc`.
|
|
133
192
|
const sender = await suite.createSenderContext({
|
|
134
193
|
recipientPublicKey: rkp.publicKey,
|
|
135
194
|
});
|
|
136
195
|
|
|
137
196
|
// encrypt
|
|
138
|
-
const
|
|
197
|
+
const encrypted = await sender.seal(new TextEncoder().encode("Hello world!"));
|
|
139
198
|
|
|
140
199
|
const recipient = await suite.createRecipientContext({
|
|
141
200
|
recipientKey: rkp.privateKey,
|
|
142
|
-
enc: sender.enc,
|
|
201
|
+
enc: sender.enc, // == `ct` (ciphertext) in the context of X-Wing
|
|
143
202
|
});
|
|
144
203
|
|
|
145
204
|
// decrypt
|
|
146
|
-
const pt = await recipient.open(
|
|
205
|
+
const pt = await recipient.open(encrypted);
|
|
147
206
|
|
|
148
207
|
// Hello world!
|
|
149
208
|
console.log(new TextDecoder().decode(pt));
|
|
@@ -159,33 +218,34 @@ try {
|
|
|
159
218
|
### Deno
|
|
160
219
|
|
|
161
220
|
```ts
|
|
162
|
-
import {
|
|
163
|
-
import {
|
|
221
|
+
import { Aes256Gcm, CipherSuite, HkdfSha256 } from "@hpke/core";
|
|
222
|
+
import { XWing } from "@hpke/hybridkem-x-wing";
|
|
164
223
|
|
|
165
224
|
async function doHpke() {
|
|
166
225
|
// setup
|
|
167
226
|
const suite = new CipherSuite({
|
|
168
|
-
kem: new
|
|
227
|
+
kem: new XWing(),
|
|
169
228
|
kdf: new HkdfSha256(),
|
|
170
|
-
aead: new
|
|
229
|
+
aead: new Aes256Gcm(),
|
|
171
230
|
});
|
|
172
231
|
|
|
173
232
|
const rkp = await suite.kem.generateKeyPair();
|
|
174
233
|
|
|
234
|
+
// Note that the `ct` (ciphertext) resulting from X-Wing::Encapsulate() is set to `sender.enc`.
|
|
175
235
|
const sender = await suite.createSenderContext({
|
|
176
236
|
recipientPublicKey: rkp.publicKey,
|
|
177
237
|
});
|
|
178
238
|
|
|
179
239
|
// encrypt
|
|
180
|
-
const
|
|
240
|
+
const encrypted = await sender.seal(new TextEncoder().encode("Hello world!"));
|
|
181
241
|
|
|
182
242
|
const recipient = await suite.createRecipientContext({
|
|
183
243
|
recipientKey: rkp.privateKey,
|
|
184
|
-
enc: sender.enc,
|
|
244
|
+
enc: sender.enc, // == `ct` (ciphertext) in the context of X-Wing
|
|
185
245
|
});
|
|
186
246
|
|
|
187
247
|
// decrypt
|
|
188
|
-
const pt = await recipient.open(
|
|
248
|
+
const pt = await recipient.open(encrypted);
|
|
189
249
|
|
|
190
250
|
// Hello world!
|
|
191
251
|
console.log(new TextDecoder().decode(pt));
|
|
@@ -206,35 +266,38 @@ try {
|
|
|
206
266
|
<body>
|
|
207
267
|
<script type="module">
|
|
208
268
|
import {
|
|
209
|
-
|
|
269
|
+
Aes256Gcm,
|
|
210
270
|
CipherSuite,
|
|
211
271
|
HkdfSha256,
|
|
212
272
|
} from "https://esm.sh/@hpke/core";
|
|
213
|
-
import {
|
|
273
|
+
import { XWing } from "https://esm.sh/@hpke/hybridkem-x-wing";
|
|
214
274
|
|
|
215
275
|
globalThis.doHpke = async () => {
|
|
216
276
|
try {
|
|
217
277
|
const suite = new CipherSuite({
|
|
218
|
-
kem: new
|
|
278
|
+
kem: new XWing(),
|
|
219
279
|
kdf: new HkdfSha256(),
|
|
220
|
-
aead: new
|
|
280
|
+
aead: new Aes256Gcm(),
|
|
221
281
|
});
|
|
222
282
|
|
|
223
283
|
const rkp = await suite.kem.generateKeyPair();
|
|
224
284
|
|
|
285
|
+
// Note that the `ct` resulting from X-Wing::Encapsulate() is set to `sender.enc`.
|
|
225
286
|
const sender = await suite.createSenderContext({
|
|
226
287
|
recipientPublicKey: rkp.publicKey,
|
|
227
288
|
});
|
|
228
289
|
// encrypt
|
|
229
|
-
const
|
|
290
|
+
const encrypted = await sender.seal(
|
|
291
|
+
new TextEncoder().encode("Hello world!"),
|
|
292
|
+
);
|
|
230
293
|
|
|
231
294
|
const recipient = await suite.createRecipientContext({
|
|
232
295
|
recipientKey: rkp.privateKey, // rkp (CryptoKeyPair) is also acceptable.
|
|
233
|
-
enc: sender.enc,
|
|
296
|
+
enc: sender.enc, // == `ct` (ciphertext) in the context of X-Wing
|
|
234
297
|
});
|
|
235
298
|
|
|
236
299
|
// decrypt
|
|
237
|
-
const pt = await recipient.open(
|
|
300
|
+
const pt = await recipient.open(encrypted);
|
|
238
301
|
|
|
239
302
|
// Hello world!
|
|
240
303
|
alert(new TextDecoder().decode(pt));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertion_error.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.7/assertion_error.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertion_state.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/assertion_state.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,qBAAa,cAAc;;;IAiBzB;;;;;;;;;;;;OAYG;IACH,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED;;;;;;;;;;;;OAYG;IACH,IAAI,uBAAuB,IAAI,MAAM,CAEpC;IAED;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,GAAG,EAAE,OAAO;IAI9B;;;;;;;;;;;;OAYG;IACH,qBAAqB,CAAC,GAAG,EAAE,OAAO;IAIlC;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM;IAI7B;;;;;;;;;;OAUG;IACH,2BAA2B;IAM3B;;;;;;;;;;;;;;;;OAgBG;IACH,wBAAwB,IAAI,OAAO;IAInC;;;;;;;;;;OAUG;IACH,mBAAmB,IAAI,IAAI;IAS3B;;;;;;;;;;;;;;;;OAgBG;IACH,4BAA4B,IAAI,OAAO;CAIxC;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAElD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_message.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"build_message.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/build_message.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,QAAQ;AAClB;;;GAGG;AACH,UAAU,UAAQ,GACjB,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CASvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CASrD;AAED,4CAA4C;AAC5C,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAC7C,OAAO,GAAE,mBAAwB,GAChC,MAAM,EAAE,CAsBV"}
|
package/{script/deps/jsr.io/@std/internal/1.0.3 → esm/deps/jsr.io/@std/internal/1.0.5}/diff.d.ts.map
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/diff.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,CAAC,EAAE,MAAM,CAAC;IACV,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;CACZ;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAanD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAWvE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,CAAC,EAAE,CAAC,EAAE,EACN,CAAC,EAAE,CAAC,EAAE,EACN,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,WAAW,EACnB,kBAAkB,EAAE,MAAM,GACzB,KAAK,CAAC;IACP,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,CAAC,CAAC;CACV,CAAC,CAgCD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,QAAQ,CACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,WAAW,EACnB,kBAAkB,EAAE,MAAM,EAC1B,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE,aAAa,GACnB,aAAa,CAsBf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAwEvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff_str.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"diff_str.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/diff_str.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAW/C;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,MAAM,EAAE,CAiBnE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,GAC3B,UAAU,CAAC,MAAM,CAAC,EAAE,CAetB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAkDlE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/format.ts"],"names":[],"mappings":"AAuBA,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAezC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/mod.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/styles.ts"],"names":[],"mappings":"AAqCA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAWD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/types.ts"],"names":[],"mappings":"AAEA,kDAAkD;AAClD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,4BAA4B;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,6BAA6B;IAC7B,KAAK,EAAE,CAAC,CAAC;IACT,+BAA+B;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;CAC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_test_suite.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/testing/1.0.
|
|
1
|
+
{"version":3,"file":"_test_suite.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/testing/1.0.4/_test_suite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bdd.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/testing/1.0.
|
|
1
|
+
{"version":3,"file":"bdd.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/testing/1.0.4/bdd.ts"],"names":[],"mappings":"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"}
|
package/esm/mod.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { XWing } from "./src/xWing.js";
|
|
2
2
|
//# sourceMappingURL=mod.d.ts.map
|
package/esm/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC"}
|
package/esm/mod.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { XWing } from "./src/xWing.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MlKem768 } from "mlkem";
|
|
2
|
-
import type { KemInterface, RecipientContextParams, SenderContextParams } from "@hpke/common";
|
|
2
|
+
import type { JsonWebKeyExtended, KemInterface, RecipientContextParams, SenderContextParams } from "@hpke/common";
|
|
3
3
|
import { KemId } from "@hpke/common";
|
|
4
4
|
import { X25519 } from "@hpke/dhkem-x25519";
|
|
5
5
|
/**
|
|
@@ -15,15 +15,15 @@ import { X25519 } from "@hpke/dhkem-x25519";
|
|
|
15
15
|
*
|
|
16
16
|
* ```ts
|
|
17
17
|
* import { Aes128Gcm, CipherSuite, HkdfSha256 } from "@hpke/core";
|
|
18
|
-
* import {
|
|
18
|
+
* import { XWing } from "@hpke/hybridkem-x-wing";
|
|
19
19
|
* const suite = new CipherSuite({
|
|
20
|
-
* kem: new
|
|
20
|
+
* kem: new XWing(),
|
|
21
21
|
* kdf: new HkdfSha256(),
|
|
22
22
|
* aead: new Aes128Gcm(),
|
|
23
23
|
* });
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
|
-
export declare class
|
|
26
|
+
export declare class XWing implements KemInterface {
|
|
27
27
|
readonly id: KemId;
|
|
28
28
|
readonly name: string;
|
|
29
29
|
readonly secretSize: number;
|
|
@@ -62,11 +62,35 @@ export declare class HybridkemXWing implements KemInterface {
|
|
|
62
62
|
* @throws {InvalidParamError} Thrown if the length of the IKM is not 32 bytes.
|
|
63
63
|
*/
|
|
64
64
|
deriveKeyPair(ikm: ArrayBuffer): Promise<CryptoKeyPair>;
|
|
65
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Imports a key from the input.
|
|
67
|
+
* @param format The format of the key. "raw" or "jwk" can be specified.
|
|
68
|
+
* @param key The key to import. If the format is "raw", the key must be an ArrayBuffer. If the format is "jwk", the key must be a JsonWebKey.
|
|
69
|
+
* @param isPublic A boolean indicating whether the key is public or not. The default is true.
|
|
70
|
+
* @returns {Promise<CryptoKey>} A promise that resolves with the imported key.
|
|
71
|
+
* @throws {DeserializeError} Thrown if the key cannot be imported.
|
|
72
|
+
*/
|
|
73
|
+
importKey(format: "raw" | "jwk", key: ArrayBuffer | JsonWebKeyExtended, isPublic?: boolean): Promise<CryptoKey>;
|
|
74
|
+
/**
|
|
75
|
+
* Encapsulates the shared secret and the `ct` (ciphertext) as `enc`.
|
|
76
|
+
* @param params The parameters for encapsulation.
|
|
77
|
+
* @returns {Promise<{ sharedSecret: ArrayBuffer; enc: ArrayBuffer }>} A promise that resolves with the `ss` (shared secret) as `sharedSecret` and the `ct` (ciphertext) as `enc`.
|
|
78
|
+
* @throws {InvalidParamError} Thrown if the length of the `ekm` is not 64 bytes.
|
|
79
|
+
* @throws {EncapError} Thrown if the shared secret cannot be encapsulated.
|
|
80
|
+
*/
|
|
66
81
|
encap(params: SenderContextParams): Promise<{
|
|
67
82
|
sharedSecret: ArrayBuffer;
|
|
68
83
|
enc: ArrayBuffer;
|
|
69
84
|
}>;
|
|
85
|
+
/**
|
|
86
|
+
* Decapsulates the `ss` (shared secret) from the `enc` and the recipient's private key.
|
|
87
|
+
* The `enc` is the same as the `ct` (ciphertext) resulting from `X-Wing::Encapsulate(),
|
|
88
|
+
* which is executed under the `encap()`.
|
|
89
|
+
* @param params The parameters for decapsulation.
|
|
90
|
+
* @returns {Promise<ArrayBuffer>} A promise that resolves with the shared secret.
|
|
91
|
+
* @throws {InvalidParamError} Thrown if the length of the `enc` is not 1120 bytes.
|
|
92
|
+
* @throws {DecapError} Thrown if the shared secret cannot be decapsulated.
|
|
93
|
+
*/
|
|
70
94
|
decap(params: RecipientContextParams): Promise<ArrayBuffer>;
|
|
71
95
|
/**
|
|
72
96
|
* Sets up the MlKemBase instance by loading the necessary crypto library.
|
|
@@ -90,5 +114,6 @@ export declare class HybridkemXWing implements KemInterface {
|
|
|
90
114
|
private _deserializePublicKey;
|
|
91
115
|
private _serializePrivateKey;
|
|
92
116
|
private _deserializePrivateKey;
|
|
117
|
+
private _importJWK;
|
|
93
118
|
}
|
|
94
|
-
//# sourceMappingURL=
|
|
119
|
+
//# sourceMappingURL=xWing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xWing.d.ts","sourceRoot":"","sources":["../../src/src/xWing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAUL,KAAK,EAKN,MAAM,cAAc,CAAC;AAItB,OAAO,EAAc,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAkCxD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,KAAM,YAAW,YAAY;IACxC,SAAgB,EAAE,EAAE,KAAK,CAAe;IACxC,SAAgB,IAAI,EAAE,MAAM,CAAY;IACxC,SAAgB,UAAU,EAAE,MAAM,CAAM;IACxC,SAAgB,OAAO,EAAE,MAAM,CAAQ;IACvC,SAAgB,aAAa,EAAE,MAAM,CAAQ;IAC7C,SAAgB,cAAc,EAAE,MAAM,CAAM;IAC5C,SAAgB,IAAI,EAAE,OAAO,CAAS;IACtC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAiC;;IAOhC,kBAAkB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IASxD,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAS1D,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IASzD,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IASxE;;;;OAIG;IACU,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;IAkBtD;;;;;;OAMG;IACU,qBAAqB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAc1E;;;;;;;OAOG;IACU,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAepE;;;;;;;OAOG;IACU,SAAS,CACpB,MAAM,EAAE,KAAK,GAAG,KAAK,EACrB,GAAG,EAAE,WAAW,GAAG,kBAAkB,EACrC,QAAQ,UAAO,GACd,OAAO,CAAC,SAAS,CAAC;IAmCrB;;;;;;OAMG;IACU,KAAK,CAChB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC;QAAE,YAAY,EAAE,WAAW,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,CAAC;IA4C3D;;;;;;;;OAQG;IACU,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;IAyBxE;;;;OAIG;YACW,MAAM;IAOpB;;;;OAIG;YACW,sBAAsB;IAOpC;;;;OAIG;YACW,uBAAuB;IAUrC,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,UAAU;CAmCnB"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { sha3_256, shake256 } from "@noble/hashes/sha3";
|
|
2
2
|
// @ts-ignore: Unreachable code error
|
|
3
3
|
import { MlKem768 } from "mlkem";
|
|
4
|
-
import { concat, DecapError, DeriveKeyPairError, DeserializeError, EncapError, InvalidParamError, isCryptoKeyPair, KemId, loadCrypto, NotSupportedError, SerializeError, XCryptoKey, } from "@hpke/common";
|
|
4
|
+
import { base64UrlToBytes, concat, DecapError, DeriveKeyPairError, DeserializeError, EncapError, InvalidParamError, isCryptoKeyPair, KEM_USAGES, KemId, loadCrypto, NotSupportedError, SerializeError, XCryptoKey, } from "@hpke/common";
|
|
5
|
+
const ALG_NAME = "X-Wing";
|
|
5
6
|
import { HkdfSha256, X25519 } from "@hpke/dhkem-x25519";
|
|
6
7
|
// deno-fmt-ignore
|
|
7
8
|
const X25519_BASE = new Uint8Array([
|
|
@@ -15,12 +16,7 @@ const X25519_BASE = new Uint8Array([
|
|
|
15
16
|
// "/^\",
|
|
16
17
|
// );
|
|
17
18
|
// deno-fmt-ignore
|
|
18
|
-
const XWING_LABEL = new Uint8Array([46, 47, 47, 94, 92]);
|
|
19
|
-
function emitNotSupported() {
|
|
20
|
-
return new Promise((_resolve, reject) => {
|
|
21
|
-
reject(new NotSupportedError("Not supported"));
|
|
22
|
-
});
|
|
23
|
-
}
|
|
19
|
+
const XWING_LABEL = new Uint8Array([92, 46, 47, 47, 94, 92]);
|
|
24
20
|
function combiner(ssM, ssX, ctX, pkX) {
|
|
25
21
|
const ret = new Uint8Array(ssM.length + ssX.length + ctX.length + pkX.length + XWING_LABEL.length);
|
|
26
22
|
ret.set(ssM, 0);
|
|
@@ -43,27 +39,27 @@ function combiner(ssM, ssX, ctX, pkX) {
|
|
|
43
39
|
*
|
|
44
40
|
* ```ts
|
|
45
41
|
* import { Aes128Gcm, CipherSuite, HkdfSha256 } from "@hpke/core";
|
|
46
|
-
* import {
|
|
42
|
+
* import { XWing } from "@hpke/hybridkem-x-wing";
|
|
47
43
|
* const suite = new CipherSuite({
|
|
48
|
-
* kem: new
|
|
44
|
+
* kem: new XWing(),
|
|
49
45
|
* kdf: new HkdfSha256(),
|
|
50
46
|
* aead: new Aes128Gcm(),
|
|
51
47
|
* });
|
|
52
48
|
* ```
|
|
53
49
|
*/
|
|
54
|
-
export class
|
|
50
|
+
export class XWing {
|
|
55
51
|
constructor() {
|
|
56
52
|
Object.defineProperty(this, "id", {
|
|
57
53
|
enumerable: true,
|
|
58
54
|
configurable: true,
|
|
59
55
|
writable: true,
|
|
60
|
-
value: KemId.
|
|
56
|
+
value: KemId.XWing
|
|
61
57
|
});
|
|
62
58
|
Object.defineProperty(this, "name", {
|
|
63
59
|
enumerable: true,
|
|
64
60
|
configurable: true,
|
|
65
61
|
writable: true,
|
|
66
|
-
value:
|
|
62
|
+
value: ALG_NAME
|
|
67
63
|
});
|
|
68
64
|
Object.defineProperty(this, "secretSize", {
|
|
69
65
|
enumerable: true,
|
|
@@ -220,19 +216,54 @@ export class HybridkemXWing {
|
|
|
220
216
|
throw new DeriveKeyPairError(e);
|
|
221
217
|
}
|
|
222
218
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
219
|
+
/**
|
|
220
|
+
* Imports a key from the input.
|
|
221
|
+
* @param format The format of the key. "raw" or "jwk" can be specified.
|
|
222
|
+
* @param key The key to import. If the format is "raw", the key must be an ArrayBuffer. If the format is "jwk", the key must be a JsonWebKey.
|
|
223
|
+
* @param isPublic A boolean indicating whether the key is public or not. The default is true.
|
|
224
|
+
* @returns {Promise<CryptoKey>} A promise that resolves with the imported key.
|
|
225
|
+
* @throws {DeserializeError} Thrown if the key cannot be imported.
|
|
226
|
+
*/
|
|
227
|
+
async importKey(format, key, isPublic = true) {
|
|
228
|
+
await this._setup();
|
|
229
|
+
try {
|
|
230
|
+
let ret;
|
|
231
|
+
if (format === "jwk") {
|
|
232
|
+
if (key instanceof ArrayBuffer || key instanceof Uint8Array) {
|
|
233
|
+
throw new Error("Invalid jwk key format");
|
|
234
|
+
}
|
|
235
|
+
ret = await this._importJWK(key, isPublic);
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
if (key instanceof ArrayBuffer) {
|
|
239
|
+
ret = new Uint8Array(key);
|
|
240
|
+
}
|
|
241
|
+
else if (key instanceof Uint8Array) {
|
|
242
|
+
ret = key;
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
throw new Error("Invalid key format");
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (isPublic && ret.byteLength !== this.publicKeySize) {
|
|
249
|
+
throw new Error("Invalid length of the key");
|
|
250
|
+
}
|
|
251
|
+
if (!isPublic && ret.byteLength !== this.privateKeySize) {
|
|
252
|
+
throw new Error("Invalid length of the key");
|
|
253
|
+
}
|
|
254
|
+
return new XCryptoKey(ALG_NAME, ret, isPublic ? "public" : "private", isPublic ? [] : KEM_USAGES);
|
|
255
|
+
}
|
|
256
|
+
catch (e) {
|
|
257
|
+
throw new DeserializeError(e);
|
|
258
|
+
}
|
|
235
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Encapsulates the shared secret and the `ct` (ciphertext) as `enc`.
|
|
262
|
+
* @param params The parameters for encapsulation.
|
|
263
|
+
* @returns {Promise<{ sharedSecret: ArrayBuffer; enc: ArrayBuffer }>} A promise that resolves with the `ss` (shared secret) as `sharedSecret` and the `ct` (ciphertext) as `enc`.
|
|
264
|
+
* @throws {InvalidParamError} Thrown if the length of the `ekm` is not 64 bytes.
|
|
265
|
+
* @throws {EncapError} Thrown if the shared secret cannot be encapsulated.
|
|
266
|
+
*/
|
|
236
267
|
async encap(params) {
|
|
237
268
|
let ekm = undefined;
|
|
238
269
|
if (params.ekm !== undefined && !isCryptoKeyPair(params.ekm)) {
|
|
@@ -277,6 +308,15 @@ export class HybridkemXWing {
|
|
|
277
308
|
throw new EncapError(e);
|
|
278
309
|
}
|
|
279
310
|
}
|
|
311
|
+
/**
|
|
312
|
+
* Decapsulates the `ss` (shared secret) from the `enc` and the recipient's private key.
|
|
313
|
+
* The `enc` is the same as the `ct` (ciphertext) resulting from `X-Wing::Encapsulate(),
|
|
314
|
+
* which is executed under the `encap()`.
|
|
315
|
+
* @param params The parameters for decapsulation.
|
|
316
|
+
* @returns {Promise<ArrayBuffer>} A promise that resolves with the shared secret.
|
|
317
|
+
* @throws {InvalidParamError} Thrown if the length of the `enc` is not 1120 bytes.
|
|
318
|
+
* @throws {DecapError} Thrown if the shared secret cannot be decapsulated.
|
|
319
|
+
*/
|
|
280
320
|
async decap(params) {
|
|
281
321
|
const rSk = isCryptoKeyPair(params.recipientKey)
|
|
282
322
|
? params.recipientKey.privateKey
|
|
@@ -378,4 +418,34 @@ export class HybridkemXWing {
|
|
|
378
418
|
resolve(new XCryptoKey(this.name, new Uint8Array(k), "private", ["deriveBits"]));
|
|
379
419
|
});
|
|
380
420
|
}
|
|
421
|
+
_importJWK(key, isPublic) {
|
|
422
|
+
return new Promise((resolve, reject) => {
|
|
423
|
+
if (typeof key.kty === "undefined" || key.kty !== "AKP") {
|
|
424
|
+
reject(new Error(`Invalid kty: ${key.kty}`));
|
|
425
|
+
}
|
|
426
|
+
if (typeof key.alg === "undefined" || key.alg !== ALG_NAME) {
|
|
427
|
+
reject(new Error(`Invalid alg: ${key.alg}`));
|
|
428
|
+
}
|
|
429
|
+
if (!isPublic) {
|
|
430
|
+
if (typeof key.priv === "undefined") {
|
|
431
|
+
reject(new Error("Invalid key: `priv` not found"));
|
|
432
|
+
}
|
|
433
|
+
if (typeof key.key_ops !== "undefined" &&
|
|
434
|
+
(key.key_ops.length !== 1 || key.key_ops[0] !== "deriveBits")) {
|
|
435
|
+
reject(new Error("Invalid key: `key_ops` should be ['deriveBits']"));
|
|
436
|
+
}
|
|
437
|
+
resolve(base64UrlToBytes(key.priv));
|
|
438
|
+
}
|
|
439
|
+
if (typeof key.priv !== "undefined") {
|
|
440
|
+
reject(new Error("Invalid key: `priv` should not be set"));
|
|
441
|
+
}
|
|
442
|
+
if (typeof key.pub === "undefined") {
|
|
443
|
+
reject(new Error("Invalid key: `pub` not found"));
|
|
444
|
+
}
|
|
445
|
+
if (typeof key.key_ops !== "undefined" && key.key_ops.length > 0) {
|
|
446
|
+
reject(new Error("Invalid key: `key_ops` should not be set"));
|
|
447
|
+
}
|
|
448
|
+
resolve(base64UrlToBytes(key.pub));
|
|
449
|
+
});
|
|
450
|
+
}
|
|
381
451
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testVectors.d.ts","sourceRoot":"","sources":["../../src/test/testVectors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"testVectors.d.ts","sourceRoot":"","sources":["../../src/test/testVectors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAkC1C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hpke/hybridkem-x-wing",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "A Hybrid Public Key Encryption (HPKE) module extension for X-Wing: general-purpose hybrid post-quantum KEM.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"hpke",
|
|
@@ -41,15 +41,15 @@
|
|
|
41
41
|
"node": ">=16.0.0"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@hpke/common": "^1.
|
|
45
|
-
"@hpke/dhkem-x25519": "^1.
|
|
44
|
+
"@hpke/common": "^1.7.0",
|
|
45
|
+
"@hpke/dhkem-x25519": "^1.6.0",
|
|
46
46
|
"@noble/hashes": "^1.5.0",
|
|
47
|
-
"mlkem": "^2.
|
|
47
|
+
"mlkem": "^2.3.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/node": "^20.9.0",
|
|
51
51
|
"picocolors": "^1.0.0",
|
|
52
|
-
"@hpke/core": "^1.
|
|
52
|
+
"@hpke/core": "^1.7.0",
|
|
53
53
|
"@deno/shim-deno": "~0.18.0"
|
|
54
54
|
},
|
|
55
55
|
"_generatedBy": "dnt@dev"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertion_error.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/assert/1.0.7/assertion_error.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertion_state.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/assertion_state.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,qBAAa,cAAc;;;IAiBzB;;;;;;;;;;;;OAYG;IACH,IAAI,cAAc,IAAI,MAAM,GAAG,SAAS,CAEvC;IAED;;;;;;;;;;;;OAYG;IACH,IAAI,uBAAuB,IAAI,MAAM,CAEpC;IAED;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,GAAG,EAAE,OAAO;IAI9B;;;;;;;;;;;;OAYG;IACH,qBAAqB,CAAC,GAAG,EAAE,OAAO;IAIlC;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM;IAI7B;;;;;;;;;;OAUG;IACH,2BAA2B;IAM3B;;;;;;;;;;;;;;;;OAgBG;IACH,wBAAwB,IAAI,OAAO;IAInC;;;;;;;;;;OAUG;IACH,mBAAmB,IAAI,IAAI;IAS3B;;;;;;;;;;;;;;;;OAgBG;IACH,4BAA4B,IAAI,OAAO;CAIxC;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAElD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_message.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"build_message.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/build_message.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,QAAQ;AAClB;;;GAGG;AACH,UAAU,UAAQ,GACjB,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CASvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CASrD;AAED,4CAA4C;AAC5C,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAC7C,OAAO,GAAE,mBAAwB,GAChC,MAAM,EAAE,CAsBV"}
|
package/{esm/deps/jsr.io/@std/internal/1.0.3 → script/deps/jsr.io/@std/internal/1.0.5}/diff.d.ts.map
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/diff.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,CAAC,EAAE,MAAM,CAAC;IACV,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAC;CACZ;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAanD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAWvE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,CAAC,EAAE,CAAC,EAAE,EACN,CAAC,EAAE,CAAC,EAAE,EACN,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,WAAW,EACnB,kBAAkB,EAAE,MAAM,GACzB,KAAK,CAAC;IACP,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,CAAC,CAAC;CACV,CAAC,CAgCD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,QAAQ,CACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,WAAW,EACnB,kBAAkB,EAAE,MAAM,EAC1B,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE,aAAa,GACnB,aAAa,CAsBf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAwEvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff_str.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"diff_str.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/diff_str.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAW/C;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,MAAM,EAAE,CAiBnE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,GAC3B,UAAU,CAAC,MAAM,CAAC,EAAE,CAetB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAkDlE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/format.ts"],"names":[],"mappings":"AAuBA,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAezC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/mod.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/styles.ts"],"names":[],"mappings":"AAqCA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAWD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.5/types.ts"],"names":[],"mappings":"AAEA,kDAAkD;AAClD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,4BAA4B;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,6BAA6B;IAC7B,KAAK,EAAE,CAAC,CAAC;IACT,+BAA+B;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;CAC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_test_suite.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/testing/1.0.
|
|
1
|
+
{"version":3,"file":"_test_suite.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/testing/1.0.4/_test_suite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bdd.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/testing/1.0.
|
|
1
|
+
{"version":3,"file":"bdd.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/testing/1.0.4/bdd.ts"],"names":[],"mappings":"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"}
|
package/script/mod.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { XWing } from "./src/xWing.js";
|
|
2
2
|
//# sourceMappingURL=mod.d.ts.map
|
package/script/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC"}
|
package/script/mod.js
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "./src/
|
|
7
|
+
define(["require", "exports", "./src/xWing.js"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
13
|
-
var
|
|
14
|
-
Object.defineProperty(exports, "
|
|
12
|
+
exports.XWing = void 0;
|
|
13
|
+
var xWing_js_1 = require("./src/xWing.js");
|
|
14
|
+
Object.defineProperty(exports, "XWing", { enumerable: true, get: function () { return xWing_js_1.XWing; } });
|
|
15
15
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MlKem768 } from "mlkem";
|
|
2
|
-
import type { KemInterface, RecipientContextParams, SenderContextParams } from "@hpke/common";
|
|
2
|
+
import type { JsonWebKeyExtended, KemInterface, RecipientContextParams, SenderContextParams } from "@hpke/common";
|
|
3
3
|
import { KemId } from "@hpke/common";
|
|
4
4
|
import { X25519 } from "@hpke/dhkem-x25519";
|
|
5
5
|
/**
|
|
@@ -15,15 +15,15 @@ import { X25519 } from "@hpke/dhkem-x25519";
|
|
|
15
15
|
*
|
|
16
16
|
* ```ts
|
|
17
17
|
* import { Aes128Gcm, CipherSuite, HkdfSha256 } from "@hpke/core";
|
|
18
|
-
* import {
|
|
18
|
+
* import { XWing } from "@hpke/hybridkem-x-wing";
|
|
19
19
|
* const suite = new CipherSuite({
|
|
20
|
-
* kem: new
|
|
20
|
+
* kem: new XWing(),
|
|
21
21
|
* kdf: new HkdfSha256(),
|
|
22
22
|
* aead: new Aes128Gcm(),
|
|
23
23
|
* });
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
|
-
export declare class
|
|
26
|
+
export declare class XWing implements KemInterface {
|
|
27
27
|
readonly id: KemId;
|
|
28
28
|
readonly name: string;
|
|
29
29
|
readonly secretSize: number;
|
|
@@ -62,11 +62,35 @@ export declare class HybridkemXWing implements KemInterface {
|
|
|
62
62
|
* @throws {InvalidParamError} Thrown if the length of the IKM is not 32 bytes.
|
|
63
63
|
*/
|
|
64
64
|
deriveKeyPair(ikm: ArrayBuffer): Promise<CryptoKeyPair>;
|
|
65
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Imports a key from the input.
|
|
67
|
+
* @param format The format of the key. "raw" or "jwk" can be specified.
|
|
68
|
+
* @param key The key to import. If the format is "raw", the key must be an ArrayBuffer. If the format is "jwk", the key must be a JsonWebKey.
|
|
69
|
+
* @param isPublic A boolean indicating whether the key is public or not. The default is true.
|
|
70
|
+
* @returns {Promise<CryptoKey>} A promise that resolves with the imported key.
|
|
71
|
+
* @throws {DeserializeError} Thrown if the key cannot be imported.
|
|
72
|
+
*/
|
|
73
|
+
importKey(format: "raw" | "jwk", key: ArrayBuffer | JsonWebKeyExtended, isPublic?: boolean): Promise<CryptoKey>;
|
|
74
|
+
/**
|
|
75
|
+
* Encapsulates the shared secret and the `ct` (ciphertext) as `enc`.
|
|
76
|
+
* @param params The parameters for encapsulation.
|
|
77
|
+
* @returns {Promise<{ sharedSecret: ArrayBuffer; enc: ArrayBuffer }>} A promise that resolves with the `ss` (shared secret) as `sharedSecret` and the `ct` (ciphertext) as `enc`.
|
|
78
|
+
* @throws {InvalidParamError} Thrown if the length of the `ekm` is not 64 bytes.
|
|
79
|
+
* @throws {EncapError} Thrown if the shared secret cannot be encapsulated.
|
|
80
|
+
*/
|
|
66
81
|
encap(params: SenderContextParams): Promise<{
|
|
67
82
|
sharedSecret: ArrayBuffer;
|
|
68
83
|
enc: ArrayBuffer;
|
|
69
84
|
}>;
|
|
85
|
+
/**
|
|
86
|
+
* Decapsulates the `ss` (shared secret) from the `enc` and the recipient's private key.
|
|
87
|
+
* The `enc` is the same as the `ct` (ciphertext) resulting from `X-Wing::Encapsulate(),
|
|
88
|
+
* which is executed under the `encap()`.
|
|
89
|
+
* @param params The parameters for decapsulation.
|
|
90
|
+
* @returns {Promise<ArrayBuffer>} A promise that resolves with the shared secret.
|
|
91
|
+
* @throws {InvalidParamError} Thrown if the length of the `enc` is not 1120 bytes.
|
|
92
|
+
* @throws {DecapError} Thrown if the shared secret cannot be decapsulated.
|
|
93
|
+
*/
|
|
70
94
|
decap(params: RecipientContextParams): Promise<ArrayBuffer>;
|
|
71
95
|
/**
|
|
72
96
|
* Sets up the MlKemBase instance by loading the necessary crypto library.
|
|
@@ -90,5 +114,6 @@ export declare class HybridkemXWing implements KemInterface {
|
|
|
90
114
|
private _deserializePublicKey;
|
|
91
115
|
private _serializePrivateKey;
|
|
92
116
|
private _deserializePrivateKey;
|
|
117
|
+
private _importJWK;
|
|
93
118
|
}
|
|
94
|
-
//# sourceMappingURL=
|
|
119
|
+
//# sourceMappingURL=xWing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xWing.d.ts","sourceRoot":"","sources":["../../src/src/xWing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAUL,KAAK,EAKN,MAAM,cAAc,CAAC;AAItB,OAAO,EAAc,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAkCxD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,KAAM,YAAW,YAAY;IACxC,SAAgB,EAAE,EAAE,KAAK,CAAe;IACxC,SAAgB,IAAI,EAAE,MAAM,CAAY;IACxC,SAAgB,UAAU,EAAE,MAAM,CAAM;IACxC,SAAgB,OAAO,EAAE,MAAM,CAAQ;IACvC,SAAgB,aAAa,EAAE,MAAM,CAAQ;IAC7C,SAAgB,cAAc,EAAE,MAAM,CAAM;IAC5C,SAAgB,IAAI,EAAE,OAAO,CAAS;IACtC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAiC;;IAOhC,kBAAkB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IASxD,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAS1D,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IASzD,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IASxE;;;;OAIG;IACU,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;IAkBtD;;;;;;OAMG;IACU,qBAAqB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAc1E;;;;;;;OAOG;IACU,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAepE;;;;;;;OAOG;IACU,SAAS,CACpB,MAAM,EAAE,KAAK,GAAG,KAAK,EACrB,GAAG,EAAE,WAAW,GAAG,kBAAkB,EACrC,QAAQ,UAAO,GACd,OAAO,CAAC,SAAS,CAAC;IAmCrB;;;;;;OAMG;IACU,KAAK,CAChB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC;QAAE,YAAY,EAAE,WAAW,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,CAAC;IA4C3D;;;;;;;;OAQG;IACU,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;IAyBxE;;;;OAIG;YACW,MAAM;IAOpB;;;;OAIG;YACW,sBAAsB;IAOpC;;;;OAIG;YACW,uBAAuB;IAUrC,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,UAAU;CAmCnB"}
|
|
@@ -9,11 +9,12 @@
|
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.XWing = void 0;
|
|
13
13
|
const sha3_1 = require("@noble/hashes/sha3");
|
|
14
14
|
// @ts-ignore: Unreachable code error
|
|
15
15
|
const mlkem_1 = require("mlkem");
|
|
16
16
|
const common_1 = require("@hpke/common");
|
|
17
|
+
const ALG_NAME = "X-Wing";
|
|
17
18
|
const dhkem_x25519_1 = require("@hpke/dhkem-x25519");
|
|
18
19
|
// deno-fmt-ignore
|
|
19
20
|
const X25519_BASE = new Uint8Array([
|
|
@@ -27,12 +28,7 @@
|
|
|
27
28
|
// "/^\",
|
|
28
29
|
// );
|
|
29
30
|
// deno-fmt-ignore
|
|
30
|
-
const XWING_LABEL = new Uint8Array([46, 47, 47, 94, 92]);
|
|
31
|
-
function emitNotSupported() {
|
|
32
|
-
return new Promise((_resolve, reject) => {
|
|
33
|
-
reject(new common_1.NotSupportedError("Not supported"));
|
|
34
|
-
});
|
|
35
|
-
}
|
|
31
|
+
const XWING_LABEL = new Uint8Array([92, 46, 47, 47, 94, 92]);
|
|
36
32
|
function combiner(ssM, ssX, ctX, pkX) {
|
|
37
33
|
const ret = new Uint8Array(ssM.length + ssX.length + ctX.length + pkX.length + XWING_LABEL.length);
|
|
38
34
|
ret.set(ssM, 0);
|
|
@@ -55,27 +51,27 @@
|
|
|
55
51
|
*
|
|
56
52
|
* ```ts
|
|
57
53
|
* import { Aes128Gcm, CipherSuite, HkdfSha256 } from "@hpke/core";
|
|
58
|
-
* import {
|
|
54
|
+
* import { XWing } from "@hpke/hybridkem-x-wing";
|
|
59
55
|
* const suite = new CipherSuite({
|
|
60
|
-
* kem: new
|
|
56
|
+
* kem: new XWing(),
|
|
61
57
|
* kdf: new HkdfSha256(),
|
|
62
58
|
* aead: new Aes128Gcm(),
|
|
63
59
|
* });
|
|
64
60
|
* ```
|
|
65
61
|
*/
|
|
66
|
-
class
|
|
62
|
+
class XWing {
|
|
67
63
|
constructor() {
|
|
68
64
|
Object.defineProperty(this, "id", {
|
|
69
65
|
enumerable: true,
|
|
70
66
|
configurable: true,
|
|
71
67
|
writable: true,
|
|
72
|
-
value: common_1.KemId.
|
|
68
|
+
value: common_1.KemId.XWing
|
|
73
69
|
});
|
|
74
70
|
Object.defineProperty(this, "name", {
|
|
75
71
|
enumerable: true,
|
|
76
72
|
configurable: true,
|
|
77
73
|
writable: true,
|
|
78
|
-
value:
|
|
74
|
+
value: ALG_NAME
|
|
79
75
|
});
|
|
80
76
|
Object.defineProperty(this, "secretSize", {
|
|
81
77
|
enumerable: true,
|
|
@@ -232,19 +228,54 @@
|
|
|
232
228
|
throw new common_1.DeriveKeyPairError(e);
|
|
233
229
|
}
|
|
234
230
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
231
|
+
/**
|
|
232
|
+
* Imports a key from the input.
|
|
233
|
+
* @param format The format of the key. "raw" or "jwk" can be specified.
|
|
234
|
+
* @param key The key to import. If the format is "raw", the key must be an ArrayBuffer. If the format is "jwk", the key must be a JsonWebKey.
|
|
235
|
+
* @param isPublic A boolean indicating whether the key is public or not. The default is true.
|
|
236
|
+
* @returns {Promise<CryptoKey>} A promise that resolves with the imported key.
|
|
237
|
+
* @throws {DeserializeError} Thrown if the key cannot be imported.
|
|
238
|
+
*/
|
|
239
|
+
async importKey(format, key, isPublic = true) {
|
|
240
|
+
await this._setup();
|
|
241
|
+
try {
|
|
242
|
+
let ret;
|
|
243
|
+
if (format === "jwk") {
|
|
244
|
+
if (key instanceof ArrayBuffer || key instanceof Uint8Array) {
|
|
245
|
+
throw new Error("Invalid jwk key format");
|
|
246
|
+
}
|
|
247
|
+
ret = await this._importJWK(key, isPublic);
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
if (key instanceof ArrayBuffer) {
|
|
251
|
+
ret = new Uint8Array(key);
|
|
252
|
+
}
|
|
253
|
+
else if (key instanceof Uint8Array) {
|
|
254
|
+
ret = key;
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
throw new Error("Invalid key format");
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
if (isPublic && ret.byteLength !== this.publicKeySize) {
|
|
261
|
+
throw new Error("Invalid length of the key");
|
|
262
|
+
}
|
|
263
|
+
if (!isPublic && ret.byteLength !== this.privateKeySize) {
|
|
264
|
+
throw new Error("Invalid length of the key");
|
|
265
|
+
}
|
|
266
|
+
return new common_1.XCryptoKey(ALG_NAME, ret, isPublic ? "public" : "private", isPublic ? [] : common_1.KEM_USAGES);
|
|
267
|
+
}
|
|
268
|
+
catch (e) {
|
|
269
|
+
throw new common_1.DeserializeError(e);
|
|
270
|
+
}
|
|
247
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* Encapsulates the shared secret and the `ct` (ciphertext) as `enc`.
|
|
274
|
+
* @param params The parameters for encapsulation.
|
|
275
|
+
* @returns {Promise<{ sharedSecret: ArrayBuffer; enc: ArrayBuffer }>} A promise that resolves with the `ss` (shared secret) as `sharedSecret` and the `ct` (ciphertext) as `enc`.
|
|
276
|
+
* @throws {InvalidParamError} Thrown if the length of the `ekm` is not 64 bytes.
|
|
277
|
+
* @throws {EncapError} Thrown if the shared secret cannot be encapsulated.
|
|
278
|
+
*/
|
|
248
279
|
async encap(params) {
|
|
249
280
|
let ekm = undefined;
|
|
250
281
|
if (params.ekm !== undefined && !(0, common_1.isCryptoKeyPair)(params.ekm)) {
|
|
@@ -289,6 +320,15 @@
|
|
|
289
320
|
throw new common_1.EncapError(e);
|
|
290
321
|
}
|
|
291
322
|
}
|
|
323
|
+
/**
|
|
324
|
+
* Decapsulates the `ss` (shared secret) from the `enc` and the recipient's private key.
|
|
325
|
+
* The `enc` is the same as the `ct` (ciphertext) resulting from `X-Wing::Encapsulate(),
|
|
326
|
+
* which is executed under the `encap()`.
|
|
327
|
+
* @param params The parameters for decapsulation.
|
|
328
|
+
* @returns {Promise<ArrayBuffer>} A promise that resolves with the shared secret.
|
|
329
|
+
* @throws {InvalidParamError} Thrown if the length of the `enc` is not 1120 bytes.
|
|
330
|
+
* @throws {DecapError} Thrown if the shared secret cannot be decapsulated.
|
|
331
|
+
*/
|
|
292
332
|
async decap(params) {
|
|
293
333
|
const rSk = (0, common_1.isCryptoKeyPair)(params.recipientKey)
|
|
294
334
|
? params.recipientKey.privateKey
|
|
@@ -390,6 +430,36 @@
|
|
|
390
430
|
resolve(new common_1.XCryptoKey(this.name, new Uint8Array(k), "private", ["deriveBits"]));
|
|
391
431
|
});
|
|
392
432
|
}
|
|
433
|
+
_importJWK(key, isPublic) {
|
|
434
|
+
return new Promise((resolve, reject) => {
|
|
435
|
+
if (typeof key.kty === "undefined" || key.kty !== "AKP") {
|
|
436
|
+
reject(new Error(`Invalid kty: ${key.kty}`));
|
|
437
|
+
}
|
|
438
|
+
if (typeof key.alg === "undefined" || key.alg !== ALG_NAME) {
|
|
439
|
+
reject(new Error(`Invalid alg: ${key.alg}`));
|
|
440
|
+
}
|
|
441
|
+
if (!isPublic) {
|
|
442
|
+
if (typeof key.priv === "undefined") {
|
|
443
|
+
reject(new Error("Invalid key: `priv` not found"));
|
|
444
|
+
}
|
|
445
|
+
if (typeof key.key_ops !== "undefined" &&
|
|
446
|
+
(key.key_ops.length !== 1 || key.key_ops[0] !== "deriveBits")) {
|
|
447
|
+
reject(new Error("Invalid key: `key_ops` should be ['deriveBits']"));
|
|
448
|
+
}
|
|
449
|
+
resolve((0, common_1.base64UrlToBytes)(key.priv));
|
|
450
|
+
}
|
|
451
|
+
if (typeof key.priv !== "undefined") {
|
|
452
|
+
reject(new Error("Invalid key: `priv` should not be set"));
|
|
453
|
+
}
|
|
454
|
+
if (typeof key.pub === "undefined") {
|
|
455
|
+
reject(new Error("Invalid key: `pub` not found"));
|
|
456
|
+
}
|
|
457
|
+
if (typeof key.key_ops !== "undefined" && key.key_ops.length > 0) {
|
|
458
|
+
reject(new Error("Invalid key: `key_ops` should not be set"));
|
|
459
|
+
}
|
|
460
|
+
resolve((0, common_1.base64UrlToBytes)(key.pub));
|
|
461
|
+
});
|
|
462
|
+
}
|
|
393
463
|
}
|
|
394
|
-
exports.
|
|
464
|
+
exports.XWing = XWing;
|
|
395
465
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testVectors.d.ts","sourceRoot":"","sources":["../../src/test/testVectors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"testVectors.d.ts","sourceRoot":"","sources":["../../src/test/testVectors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAkC1C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.3/mod.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hybridkemXWing.d.ts","sourceRoot":"","sources":["../../src/src/hybridkemXWing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAQL,KAAK,EAKN,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAc,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAwCxD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAe,YAAW,YAAY;IACjD,SAAgB,EAAE,EAAE,KAAK,CAAwB;IACjD,SAAgB,IAAI,EAAE,MAAM,CAAY;IACxC,SAAgB,UAAU,EAAE,MAAM,CAAM;IACxC,SAAgB,OAAO,EAAE,MAAM,CAAQ;IACvC,SAAgB,aAAa,EAAE,MAAM,CAAQ;IAC7C,SAAgB,cAAc,EAAE,MAAM,CAAM;IAC5C,SAAgB,IAAI,EAAE,OAAO,CAAS;IACtC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAiC;;IAOhC,kBAAkB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IASxD,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAS1D,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IASzD,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IASxE;;;;OAIG;IACU,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;IAkBtD;;;;;;OAMG;IACU,qBAAqB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAc1E;;;;;;;OAOG;IACU,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAevD,SAAS,CACpB,OAAO,EAAE,KAAK,GAAG,KAAK,EACtB,IAAI,EAAE,WAAW,GAAG,UAAU,EAC9B,SAAS,UAAO,GACf,OAAO,CAAC,SAAS,CAAC;IAcR,KAAK,CAChB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC;QAAE,YAAY,EAAE,WAAW,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,CAAC;IA4C9C,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;IAyBxE;;;;OAIG;YACW,MAAM;IAOpB;;;;OAIG;YACW,sBAAsB;IAOpC;;;;OAIG;YACW,uBAAuB;IAUrC,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,sBAAsB;CAU/B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.3/mod.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hybridkemXWing.d.ts","sourceRoot":"","sources":["../../src/src/hybridkemXWing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAQL,KAAK,EAKN,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAc,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAwCxD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAe,YAAW,YAAY;IACjD,SAAgB,EAAE,EAAE,KAAK,CAAwB;IACjD,SAAgB,IAAI,EAAE,MAAM,CAAY;IACxC,SAAgB,UAAU,EAAE,MAAM,CAAM;IACxC,SAAgB,OAAO,EAAE,MAAM,CAAQ;IACvC,SAAgB,aAAa,EAAE,MAAM,CAAQ;IAC7C,SAAgB,cAAc,EAAE,MAAM,CAAM;IAC5C,SAAgB,IAAI,EAAE,OAAO,CAAS;IACtC,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAiC;;IAOhC,kBAAkB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IASxD,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAS1D,mBAAmB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IASzD,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IASxE;;;;OAIG;IACU,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;IAkBtD;;;;;;OAMG;IACU,qBAAqB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAc1E;;;;;;;OAOG;IACU,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAevD,SAAS,CACpB,OAAO,EAAE,KAAK,GAAG,KAAK,EACtB,IAAI,EAAE,WAAW,GAAG,UAAU,EAC9B,SAAS,UAAO,GACf,OAAO,CAAC,SAAS,CAAC;IAcR,KAAK,CAChB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC;QAAE,YAAY,EAAE,WAAW,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,CAAC;IA4C9C,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;IAyBxE;;;;OAIG;YACW,MAAM;IAOpB;;;;OAIG;YACW,sBAAsB;IAOpC;;;;OAIG;YACW,uBAAuB;IAUrC,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,sBAAsB;CAU/B"}
|