aegis-aead 0.2.1 → 0.2.2
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 +4 -2
- package/dist/aegis128l-bs.d.ts +13 -70
- package/dist/aegis128l-bs.d.ts.map +1 -1
- package/dist/aegis128l-bs.js +67 -174
- package/dist/aegis128l-bs.js.map +1 -1
- package/dist/aegis256-bs.d.ts +15 -119
- package/dist/aegis256-bs.d.ts.map +1 -1
- package/dist/aegis256-bs.js +73 -184
- package/dist/aegis256-bs.js.map +1 -1
- package/dist/aes-bs.d.ts +16 -0
- package/dist/aes-bs.d.ts.map +1 -1
- package/dist/aes-bs.js +173 -99
- package/dist/aes-bs.js.map +1 -1
- package/package.json +3 -2
- package/src/aegis128l-bs.ts +69 -178
- package/src/aegis256-bs.ts +79 -185
- package/src/aes-bs.ts +187 -106
package/dist/aegis256-bs.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Provides constant-time operation by processing state blocks simultaneously.
|
|
4
4
|
*/
|
|
5
5
|
import { constantTimeEqual, zeroPad } from "./aes.js";
|
|
6
|
-
import { aesRound, blockFromBytes, blocksPut, blockToBytes, blockXor, createAesBlock, createAesBlocks, pack, unpack, wordIdx, } from "./aes-bs.js";
|
|
6
|
+
import { aesRound, blockFromBytes, blocksPut, blocksRotr6, blocksXor, blockToBytes, blockXor, createAesBlock, createAesBlocks, pack, pack04_6, unpack, unpack04_6, wordIdx, } from "./aes-bs.js";
|
|
7
7
|
import { randomBytes } from "./random.js";
|
|
8
8
|
const RATE = 16;
|
|
9
9
|
const C0 = new Uint32Array([
|
|
@@ -14,49 +14,58 @@ const C1 = new Uint32Array([
|
|
|
14
14
|
]);
|
|
15
15
|
/**
|
|
16
16
|
* Bitsliced AEGIS-256 cipher state.
|
|
17
|
-
* Uses 6 AES blocks
|
|
17
|
+
* Uses 6 AES blocks stored in packed bitsliced form throughout the lifetime
|
|
18
|
+
* of the state.
|
|
18
19
|
*/
|
|
19
20
|
export class Aegis256BsState {
|
|
20
21
|
constructor() {
|
|
21
22
|
this.st = createAesBlocks();
|
|
22
23
|
this.st1 = createAesBlocks();
|
|
24
|
+
this.constantInput = createAesBlocks();
|
|
23
25
|
this.tmp = createAesBlock();
|
|
26
|
+
this.z = createAesBlock();
|
|
24
27
|
}
|
|
25
|
-
|
|
26
|
-
* AEGIS round function: applies AES round to all blocks and rotates.
|
|
27
|
-
* st[i] = AES(st[i]) ^ st[(i+5) mod 6]
|
|
28
|
-
*/
|
|
29
|
-
aegisRound() {
|
|
28
|
+
aegisRoundPacked() {
|
|
30
29
|
const st = this.st;
|
|
31
30
|
const st1 = this.st1;
|
|
32
31
|
st1.set(st);
|
|
33
|
-
pack(st1);
|
|
34
32
|
aesRound(st1);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
st[wordIdx(i, 0)] = (st[wordIdx(i, 0)] ^ st1[wordIdx(prev, 0)]) >>> 0;
|
|
39
|
-
st[wordIdx(i, 1)] = (st[wordIdx(i, 1)] ^ st1[wordIdx(prev, 1)]) >>> 0;
|
|
40
|
-
st[wordIdx(i, 2)] = (st[wordIdx(i, 2)] ^ st1[wordIdx(prev, 2)]) >>> 0;
|
|
41
|
-
st[wordIdx(i, 3)] = (st[wordIdx(i, 3)] ^ st1[wordIdx(prev, 3)]) >>> 0;
|
|
42
|
-
}
|
|
33
|
+
blocksRotr6(st1);
|
|
34
|
+
blocksXor(st, st1);
|
|
35
|
+
blocksXor(st, this.constantInput);
|
|
43
36
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
st[wordIdx(0, 0)] = (st[wordIdx(0, 0)] ^ m[0]) >>> 0;
|
|
50
|
-
st[wordIdx(0, 1)] = (st[wordIdx(0, 1)] ^ m[1]) >>> 0;
|
|
51
|
-
st[wordIdx(0, 2)] = (st[wordIdx(0, 2)] ^ m[2]) >>> 0;
|
|
52
|
-
st[wordIdx(0, 3)] = (st[wordIdx(0, 3)] ^ m[3]) >>> 0;
|
|
37
|
+
packConstantInput(m) {
|
|
38
|
+
const out = this.constantInput;
|
|
39
|
+
out.fill(0);
|
|
40
|
+
blocksPut(out, m, 0);
|
|
41
|
+
pack04_6(out);
|
|
53
42
|
}
|
|
54
43
|
/**
|
|
55
|
-
*
|
|
44
|
+
* Extract the keystream block z directly from the packed state.
|
|
45
|
+
*
|
|
46
|
+
* z = S1 ^ S4 ^ S5 ^ (S2 & S3)
|
|
47
|
+
*
|
|
48
|
+
* In the packed layout, logical block j lives at bit position (7 - j) of
|
|
49
|
+
* every byte, so S1 = bit 6, S4 = bit 3, S5 = bit 2, S2 = bit 5,
|
|
50
|
+
* S3 = bit 4. The combination is computed lane-wise into bit position 7
|
|
51
|
+
* and unpack04_6 then extracts the AES block at logical index 0.
|
|
56
52
|
*/
|
|
57
|
-
|
|
58
|
-
this.
|
|
59
|
-
this.
|
|
53
|
+
keystreamPacked() {
|
|
54
|
+
const st = this.st;
|
|
55
|
+
const zPacked = this.st1;
|
|
56
|
+
for (let i = 0; i < 32; i++) {
|
|
57
|
+
const x = st[i];
|
|
58
|
+
zPacked[i] =
|
|
59
|
+
((x & 0x40404040) << 1) ^
|
|
60
|
+
((x & 0x08080808) << 4) ^
|
|
61
|
+
((x & 0x04040404) << 5) ^
|
|
62
|
+
((x & (x >>> 1) & 0x10101010) << 3);
|
|
63
|
+
}
|
|
64
|
+
unpack04_6(zPacked);
|
|
65
|
+
const z = this.z;
|
|
66
|
+
for (let i = 0; i < 4; i++) {
|
|
67
|
+
z[i] = zPacked[wordIdx(0, i)];
|
|
68
|
+
}
|
|
60
69
|
}
|
|
61
70
|
/**
|
|
62
71
|
* Initializes the state with a key and nonce.
|
|
@@ -87,50 +96,39 @@ export class Aegis256BsState {
|
|
|
87
96
|
blocksPut(this.st, C0, 3);
|
|
88
97
|
blocksPut(this.st, k0c0, 4);
|
|
89
98
|
blocksPut(this.st, k1c1, 5);
|
|
99
|
+
pack(this.st);
|
|
90
100
|
for (let i = 0; i < 4; i++) {
|
|
91
|
-
this.
|
|
92
|
-
this.
|
|
93
|
-
this.
|
|
94
|
-
this.
|
|
101
|
+
this.packConstantInput(k0);
|
|
102
|
+
this.aegisRoundPacked();
|
|
103
|
+
this.packConstantInput(k1);
|
|
104
|
+
this.aegisRoundPacked();
|
|
105
|
+
this.packConstantInput(k0n0);
|
|
106
|
+
this.aegisRoundPacked();
|
|
107
|
+
this.packConstantInput(k1n1);
|
|
108
|
+
this.aegisRoundPacked();
|
|
95
109
|
}
|
|
96
110
|
}
|
|
97
111
|
/**
|
|
98
112
|
* Absorbs a 16-byte associated data block into the state.
|
|
99
|
-
* @param ai - 16-byte associated data block
|
|
100
113
|
*/
|
|
101
114
|
absorb(ai) {
|
|
102
115
|
const msg = this.tmp;
|
|
103
116
|
blockFromBytes(msg, ai);
|
|
104
|
-
this.
|
|
117
|
+
this.packConstantInput(msg);
|
|
118
|
+
this.aegisRoundPacked();
|
|
105
119
|
}
|
|
106
120
|
/**
|
|
107
121
|
* Encrypts a 16-byte plaintext block and writes to output buffer.
|
|
108
|
-
* @param xi - 16-byte plaintext block
|
|
109
|
-
* @param out - 16-byte output buffer
|
|
110
122
|
*/
|
|
111
123
|
encTo(xi, out) {
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
const t = createAesBlock();
|
|
115
|
-
for (let i = 0; i < 4; i++) {
|
|
116
|
-
z[i] =
|
|
117
|
-
(st[wordIdx(1, i)] ^
|
|
118
|
-
st[wordIdx(4, i)] ^
|
|
119
|
-
st[wordIdx(5, i)] ^
|
|
120
|
-
(st[wordIdx(2, i)] & st[wordIdx(3, i)])) >>>
|
|
121
|
-
0;
|
|
122
|
-
}
|
|
124
|
+
const t = this.tmp;
|
|
125
|
+
this.keystreamPacked();
|
|
123
126
|
blockFromBytes(t, xi);
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
127
|
+
this.packConstantInput(t);
|
|
128
|
+
this.aegisRoundPacked();
|
|
129
|
+
blockXor(t, t, this.z);
|
|
130
|
+
blockToBytes(out, t);
|
|
128
131
|
}
|
|
129
|
-
/**
|
|
130
|
-
* Encrypts a 16-byte plaintext block.
|
|
131
|
-
* @param xi - 16-byte plaintext block
|
|
132
|
-
* @returns 16-byte ciphertext block
|
|
133
|
-
*/
|
|
134
132
|
enc(xi) {
|
|
135
133
|
const out = new Uint8Array(16);
|
|
136
134
|
this.encTo(xi, out);
|
|
@@ -138,83 +136,44 @@ export class Aegis256BsState {
|
|
|
138
136
|
}
|
|
139
137
|
/**
|
|
140
138
|
* Decrypts a 16-byte ciphertext block and writes to output buffer.
|
|
141
|
-
* @param ci - 16-byte ciphertext block
|
|
142
|
-
* @param out - 16-byte output buffer
|
|
143
139
|
*/
|
|
144
140
|
decTo(ci, out) {
|
|
145
|
-
const st = this.st;
|
|
146
141
|
const msg = this.tmp;
|
|
147
142
|
blockFromBytes(msg, ci);
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
st[wordIdx(4, i)] ^
|
|
153
|
-
st[wordIdx(5, i)] ^
|
|
154
|
-
(st[wordIdx(2, i)] & st[wordIdx(3, i)])) >>>
|
|
155
|
-
0;
|
|
156
|
-
}
|
|
157
|
-
this.update(msg);
|
|
143
|
+
this.keystreamPacked();
|
|
144
|
+
blockXor(msg, msg, this.z);
|
|
145
|
+
this.packConstantInput(msg);
|
|
146
|
+
this.aegisRoundPacked();
|
|
158
147
|
blockToBytes(out, msg);
|
|
159
148
|
}
|
|
160
|
-
/**
|
|
161
|
-
* Decrypts a 16-byte ciphertext block.
|
|
162
|
-
* @param ci - 16-byte ciphertext block
|
|
163
|
-
* @returns 16-byte plaintext block
|
|
164
|
-
*/
|
|
165
149
|
dec(ci) {
|
|
166
150
|
const out = new Uint8Array(16);
|
|
167
151
|
this.decTo(ci, out);
|
|
168
152
|
return out;
|
|
169
153
|
}
|
|
170
|
-
/**
|
|
171
|
-
* Encrypts a 16-byte plaintext block in-place.
|
|
172
|
-
* @param block - 16-byte buffer (plaintext in, ciphertext out)
|
|
173
|
-
*/
|
|
174
154
|
encInPlace(block) {
|
|
175
155
|
this.encTo(block, block);
|
|
176
156
|
}
|
|
177
|
-
/**
|
|
178
|
-
* Decrypts a 16-byte ciphertext block in-place.
|
|
179
|
-
* @param block - 16-byte buffer (ciphertext in, plaintext out)
|
|
180
|
-
*/
|
|
181
157
|
decInPlace(block) {
|
|
182
158
|
this.decTo(block, block);
|
|
183
159
|
}
|
|
184
|
-
/**
|
|
185
|
-
* Decrypts a partial (final) ciphertext block smaller than 16 bytes.
|
|
186
|
-
* @param cn - Partial ciphertext block (1-15 bytes)
|
|
187
|
-
* @returns Decrypted plaintext of the same length
|
|
188
|
-
*/
|
|
189
160
|
decPartial(cn) {
|
|
190
|
-
const st = this.st;
|
|
191
161
|
const msg = this.tmp;
|
|
192
162
|
const padded = zeroPad(cn, RATE);
|
|
193
163
|
blockFromBytes(msg, padded);
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
(msg[i] ^
|
|
197
|
-
st[wordIdx(1, i)] ^
|
|
198
|
-
st[wordIdx(4, i)] ^
|
|
199
|
-
st[wordIdx(5, i)] ^
|
|
200
|
-
(st[wordIdx(2, i)] & st[wordIdx(3, i)])) >>>
|
|
201
|
-
0;
|
|
202
|
-
}
|
|
164
|
+
this.keystreamPacked();
|
|
165
|
+
blockXor(msg, msg, this.z);
|
|
203
166
|
const pad = new Uint8Array(RATE);
|
|
204
167
|
blockToBytes(pad, msg);
|
|
205
168
|
const xn = new Uint8Array(pad.subarray(0, cn.length));
|
|
206
169
|
pad.fill(0, cn.length);
|
|
207
170
|
blockFromBytes(msg, pad);
|
|
208
|
-
this.
|
|
209
|
-
this.
|
|
171
|
+
this.packConstantInput(msg);
|
|
172
|
+
this.aegisRoundPacked();
|
|
210
173
|
return xn;
|
|
211
174
|
}
|
|
212
175
|
/**
|
|
213
176
|
* Finalizes encryption/decryption and produces an authentication tag.
|
|
214
|
-
* @param adLen - Associated data length in bytes
|
|
215
|
-
* @param msgLen - Message length in bytes
|
|
216
|
-
* @param tagLen - Tag length (16 or 32 bytes)
|
|
217
|
-
* @returns Authentication tag
|
|
218
177
|
*/
|
|
219
178
|
finalize(adLen, msgLen, tagLen = 16) {
|
|
220
179
|
const st = this.st;
|
|
@@ -223,13 +182,18 @@ export class Aegis256BsState {
|
|
|
223
182
|
tmp[1] = Math.floor((adLen * 8) / 0x100000000) >>> 0;
|
|
224
183
|
tmp[2] = ((msgLen * 8) & 0xffffffff) >>> 0;
|
|
225
184
|
tmp[3] = Math.floor((msgLen * 8) / 0x100000000) >>> 0;
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
tmp[
|
|
185
|
+
const unpacked = this.st1;
|
|
186
|
+
unpacked.set(st);
|
|
187
|
+
unpack(unpacked);
|
|
188
|
+
tmp[0] = (tmp[0] ^ unpacked[wordIdx(3, 0)]) >>> 0;
|
|
189
|
+
tmp[1] = (tmp[1] ^ unpacked[wordIdx(3, 1)]) >>> 0;
|
|
190
|
+
tmp[2] = (tmp[2] ^ unpacked[wordIdx(3, 2)]) >>> 0;
|
|
191
|
+
tmp[3] = (tmp[3] ^ unpacked[wordIdx(3, 3)]) >>> 0;
|
|
192
|
+
this.packConstantInput(tmp);
|
|
230
193
|
for (let i = 0; i < 7; i++) {
|
|
231
|
-
this.
|
|
194
|
+
this.aegisRoundPacked();
|
|
232
195
|
}
|
|
196
|
+
unpack(st);
|
|
233
197
|
if (tagLen === 16) {
|
|
234
198
|
const tag = new Uint8Array(16);
|
|
235
199
|
const tagBlock = createAesBlock();
|
|
@@ -266,12 +230,6 @@ export class Aegis256BsState {
|
|
|
266
230
|
}
|
|
267
231
|
/**
|
|
268
232
|
* Encrypts a message using bitsliced AEGIS-256 (detached mode).
|
|
269
|
-
* @param msg - Plaintext message
|
|
270
|
-
* @param ad - Associated data (authenticated but not encrypted)
|
|
271
|
-
* @param key - 32-byte encryption key
|
|
272
|
-
* @param nonce - 32-byte nonce (must be unique per message with the same key)
|
|
273
|
-
* @param tagLen - Authentication tag length: 16 or 32 bytes (default: 16)
|
|
274
|
-
* @returns Object containing ciphertext and authentication tag separately
|
|
275
233
|
*/
|
|
276
234
|
export function aegis256BsEncryptDetached(msg, ad, key, nonce, tagLen = 16) {
|
|
277
235
|
const state = new Aegis256BsState();
|
|
@@ -295,12 +253,6 @@ export function aegis256BsEncryptDetached(msg, ad, key, nonce, tagLen = 16) {
|
|
|
295
253
|
}
|
|
296
254
|
/**
|
|
297
255
|
* Decrypts a message using bitsliced AEGIS-256 (detached mode).
|
|
298
|
-
* @param ct - Ciphertext
|
|
299
|
-
* @param tag - Authentication tag (16 or 32 bytes)
|
|
300
|
-
* @param ad - Associated data (must match what was used during encryption)
|
|
301
|
-
* @param key - 32-byte encryption key
|
|
302
|
-
* @param nonce - 32-byte nonce (must match what was used during encryption)
|
|
303
|
-
* @returns Decrypted plaintext, or null if authentication fails
|
|
304
256
|
*/
|
|
305
257
|
export function aegis256BsDecryptDetached(ct, tag, ad, key, nonce) {
|
|
306
258
|
const tagLen = tag.length;
|
|
@@ -325,16 +277,6 @@ export function aegis256BsDecryptDetached(ct, tag, ad, key, nonce) {
|
|
|
325
277
|
}
|
|
326
278
|
return msg;
|
|
327
279
|
}
|
|
328
|
-
/**
|
|
329
|
-
* Encrypts a message in-place using bitsliced AEGIS-256 (detached mode).
|
|
330
|
-
* The input buffer is modified to contain the ciphertext.
|
|
331
|
-
* @param data - Buffer containing plaintext (will be overwritten with ciphertext)
|
|
332
|
-
* @param ad - Associated data (authenticated but not encrypted)
|
|
333
|
-
* @param key - 32-byte encryption key
|
|
334
|
-
* @param nonce - 32-byte nonce (must be unique per message with the same key)
|
|
335
|
-
* @param tagLen - Authentication tag length: 16 or 32 bytes (default: 16)
|
|
336
|
-
* @returns Authentication tag
|
|
337
|
-
*/
|
|
338
280
|
export function aegis256BsEncryptDetachedInPlace(data, ad, key, nonce, tagLen = 16) {
|
|
339
281
|
const state = new Aegis256BsState();
|
|
340
282
|
state.init(key, nonce);
|
|
@@ -355,16 +297,6 @@ export function aegis256BsEncryptDetachedInPlace(data, ad, key, nonce, tagLen =
|
|
|
355
297
|
}
|
|
356
298
|
return state.finalize(ad.length, msgLen, tagLen);
|
|
357
299
|
}
|
|
358
|
-
/**
|
|
359
|
-
* Decrypts a message in-place using bitsliced AEGIS-256 (detached mode).
|
|
360
|
-
* The input buffer is modified to contain the plaintext (or zeroed on failure).
|
|
361
|
-
* @param data - Buffer containing ciphertext (will be overwritten with plaintext)
|
|
362
|
-
* @param tag - Authentication tag (16 or 32 bytes)
|
|
363
|
-
* @param ad - Associated data (must match what was used during encryption)
|
|
364
|
-
* @param key - 32-byte encryption key
|
|
365
|
-
* @param nonce - 32-byte nonce (must match what was used during encryption)
|
|
366
|
-
* @returns True if authentication succeeds, false otherwise
|
|
367
|
-
*/
|
|
368
300
|
export function aegis256BsDecryptDetachedInPlace(data, tag, ad, key, nonce) {
|
|
369
301
|
const tagLen = tag.length;
|
|
370
302
|
const state = new Aegis256BsState();
|
|
@@ -392,16 +324,6 @@ export function aegis256BsDecryptDetachedInPlace(data, tag, ad, key, nonce) {
|
|
|
392
324
|
}
|
|
393
325
|
export const AEGIS_256_BS_NONCE_SIZE = 32;
|
|
394
326
|
export const AEGIS_256_BS_KEY_SIZE = 32;
|
|
395
|
-
/**
|
|
396
|
-
* Encrypts a message using bitsliced AEGIS-256.
|
|
397
|
-
* Returns a single buffer containing nonce || ciphertext || tag.
|
|
398
|
-
* @param msg - Plaintext message
|
|
399
|
-
* @param ad - Associated data (authenticated but not encrypted)
|
|
400
|
-
* @param key - 32-byte encryption key
|
|
401
|
-
* @param nonce - 32-byte nonce (optional, generates random nonce if not provided)
|
|
402
|
-
* @param tagLen - Authentication tag length: 16 or 32 bytes (default: 16)
|
|
403
|
-
* @returns Concatenated nonce || ciphertext || tag
|
|
404
|
-
*/
|
|
405
327
|
export function aegis256BsEncrypt(msg, ad, key, nonce = null, tagLen = 16) {
|
|
406
328
|
const actualNonce = nonce ?? randomBytes(AEGIS_256_BS_NONCE_SIZE);
|
|
407
329
|
const { ciphertext, tag } = aegis256BsEncryptDetached(msg, ad, key, actualNonce, tagLen);
|
|
@@ -411,15 +333,6 @@ export function aegis256BsEncrypt(msg, ad, key, nonce = null, tagLen = 16) {
|
|
|
411
333
|
result.set(tag, AEGIS_256_BS_NONCE_SIZE + ciphertext.length);
|
|
412
334
|
return result;
|
|
413
335
|
}
|
|
414
|
-
/**
|
|
415
|
-
* Decrypts a message using bitsliced AEGIS-256.
|
|
416
|
-
* Expects input as nonce || ciphertext || tag.
|
|
417
|
-
* @param sealed - Concatenated nonce || ciphertext || tag
|
|
418
|
-
* @param ad - Associated data (must match what was used during encryption)
|
|
419
|
-
* @param key - 32-byte encryption key
|
|
420
|
-
* @param tagLen - Authentication tag length: 16 or 32 bytes (default: 16)
|
|
421
|
-
* @returns Decrypted plaintext, or null if authentication fails
|
|
422
|
-
*/
|
|
423
336
|
export function aegis256BsDecrypt(sealed, ad, key, tagLen = 16) {
|
|
424
337
|
const nonceSize = AEGIS_256_BS_NONCE_SIZE;
|
|
425
338
|
if (sealed.length < nonceSize + tagLen) {
|
|
@@ -430,14 +343,6 @@ export function aegis256BsDecrypt(sealed, ad, key, tagLen = 16) {
|
|
|
430
343
|
const tag = sealed.subarray(sealed.length - tagLen);
|
|
431
344
|
return aegis256BsDecryptDetached(ct, tag, ad, key, nonce);
|
|
432
345
|
}
|
|
433
|
-
/**
|
|
434
|
-
* Computes a MAC (Message Authentication Code) using bitsliced AEGIS-256.
|
|
435
|
-
* @param data - Data to authenticate
|
|
436
|
-
* @param key - 32-byte key
|
|
437
|
-
* @param nonce - 32-byte nonce (optional, uses zero nonce if null)
|
|
438
|
-
* @param tagLen - Tag length: 16 or 32 bytes (default: 16)
|
|
439
|
-
* @returns Authentication tag
|
|
440
|
-
*/
|
|
441
346
|
export function aegis256BsMac(data, key, nonce = null, tagLen = 16) {
|
|
442
347
|
const state = new Aegis256BsState();
|
|
443
348
|
state.init(key, nonce ?? new Uint8Array(32));
|
|
@@ -447,30 +352,14 @@ export function aegis256BsMac(data, key, nonce = null, tagLen = 16) {
|
|
|
447
352
|
}
|
|
448
353
|
return state.finalize(data.length, tagLen, tagLen);
|
|
449
354
|
}
|
|
450
|
-
/**
|
|
451
|
-
* Verifies a MAC computed using bitsliced AEGIS-256.
|
|
452
|
-
* @param data - Data to verify
|
|
453
|
-
* @param tag - Expected authentication tag (16 or 32 bytes)
|
|
454
|
-
* @param key - 32-byte key
|
|
455
|
-
* @param nonce - 32-byte nonce (optional, uses zero nonce if null)
|
|
456
|
-
* @returns True if the tag is valid, false otherwise
|
|
457
|
-
*/
|
|
458
355
|
export function aegis256BsMacVerify(data, tag, key, nonce = null) {
|
|
459
356
|
const tagLen = tag.length;
|
|
460
357
|
const expectedTag = aegis256BsMac(data, key, nonce, tagLen);
|
|
461
358
|
return constantTimeEqual(tag, expectedTag);
|
|
462
359
|
}
|
|
463
|
-
/**
|
|
464
|
-
* Generates a random 32-byte key for bitsliced AEGIS-256.
|
|
465
|
-
* @returns 32-byte encryption key
|
|
466
|
-
*/
|
|
467
360
|
export function aegis256BsCreateKey() {
|
|
468
361
|
return randomBytes(AEGIS_256_BS_KEY_SIZE);
|
|
469
362
|
}
|
|
470
|
-
/**
|
|
471
|
-
* Generates a random 32-byte nonce for bitsliced AEGIS-256.
|
|
472
|
-
* @returns 32-byte nonce
|
|
473
|
-
*/
|
|
474
363
|
export function aegis256BsCreateNonce() {
|
|
475
364
|
return randomBytes(AEGIS_256_BS_NONCE_SIZE);
|
|
476
365
|
}
|
package/dist/aegis256-bs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aegis256-bs.js","sourceRoot":"","sources":["../src/aegis256-bs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aegis256-bs.js","sourceRoot":"","sources":["../src/aegis256-bs.ts"],"names":[],"mappings":"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"}
|
package/dist/aes-bs.d.ts
CHANGED
|
@@ -37,6 +37,18 @@ export declare function unpack(st: AesBlocks): void;
|
|
|
37
37
|
* Pack only blocks 0 and 4 (used for constant inputs in AEGIS-128L).
|
|
38
38
|
*/
|
|
39
39
|
export declare function pack04(st: AesBlocks): void;
|
|
40
|
+
/**
|
|
41
|
+
* Inverse of pack04: unpack only blocks 0 and 4.
|
|
42
|
+
*/
|
|
43
|
+
export declare function unpack04(st: AesBlocks): void;
|
|
44
|
+
/**
|
|
45
|
+
* Pack only block 0 (used for constant inputs in AEGIS-256).
|
|
46
|
+
*/
|
|
47
|
+
export declare function pack04_6(st: AesBlocks): void;
|
|
48
|
+
/**
|
|
49
|
+
* Inverse of pack04_6: unpack only block 0.
|
|
50
|
+
*/
|
|
51
|
+
export declare function unpack04_6(st: AesBlocks): void;
|
|
40
52
|
/**
|
|
41
53
|
* Computes the index into the bitsliced state array.
|
|
42
54
|
* @param block - Block index (0-7)
|
|
@@ -48,6 +60,10 @@ export declare function wordIdx(block: number, word: number): number;
|
|
|
48
60
|
* Performs (st[i] & 0xfefefefe) >> 1 | (st[i] & 0x01010101) << 7
|
|
49
61
|
*/
|
|
50
62
|
export declare function blocksRotr(st: AesBlocks): void;
|
|
63
|
+
/**
|
|
64
|
+
* Rotate within the bottom 6 lanes (for AEGIS-256, 6 blocks).
|
|
65
|
+
*/
|
|
66
|
+
export declare function blocksRotr6(st: AesBlocks): void;
|
|
51
67
|
/**
|
|
52
68
|
* Put a single AES block into the bitsliced state at the given block position.
|
|
53
69
|
*/
|
package/dist/aes-bs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aes-bs.d.ts","sourceRoot":"","sources":["../src/aes-bs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC;AAEnC;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAE3C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAEzC;
|
|
1
|
+
{"version":3,"file":"aes-bs.d.ts","sourceRoot":"","sources":["../src/aes-bs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC;AAEnC;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAE3C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAEzC;AA6QD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAI5C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAsBxC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAsB1C;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAuB1C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAuB5C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAgB5C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAgB9C;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAK9C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAK/C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAKzE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAMnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CAMjE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAKtE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,IAAI,CAI1D"}
|