aegis-aead 0.1.1 → 0.2.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 +241 -60
- package/dist/aegis128l-bs.d.ts +162 -0
- package/dist/aegis128l-bs.d.ts.map +1 -0
- package/dist/aegis128l-bs.js +470 -0
- package/dist/aegis128l-bs.js.map +1 -0
- package/dist/aegis128l.d.ts +42 -5
- package/dist/aegis128l.d.ts.map +1 -1
- package/dist/aegis128l.js +79 -5
- package/dist/aegis128l.js.map +1 -1
- package/dist/aegis128x.d.ts +67 -12
- package/dist/aegis128x.d.ts.map +1 -1
- package/dist/aegis128x.js +102 -9
- package/dist/aegis128x.js.map +1 -1
- package/dist/aegis256-bs.d.ts +151 -0
- package/dist/aegis256-bs.d.ts.map +1 -0
- package/dist/aegis256-bs.js +398 -0
- package/dist/aegis256-bs.js.map +1 -0
- package/dist/aegis256.d.ts +42 -5
- package/dist/aegis256.d.ts.map +1 -1
- package/dist/aegis256.js +79 -5
- package/dist/aegis256.js.map +1 -1
- package/dist/aegis256x.d.ts +67 -12
- package/dist/aegis256x.d.ts.map +1 -1
- package/dist/aegis256x.js +102 -9
- package/dist/aegis256x.js.map +1 -1
- package/dist/aes-bs.d.ts +71 -0
- package/dist/aes-bs.d.ts.map +1 -0
- package/dist/aes-bs.js +399 -0
- package/dist/aes-bs.js.map +1 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/random.d.ts +22 -0
- package/dist/random.d.ts.map +1 -0
- package/dist/random.js +36 -0
- package/dist/random.js.map +1 -0
- package/package.json +1 -1
- package/src/aegis128l-bs.ts +602 -0
- package/src/aegis128l.ts +112 -5
- package/src/aegis128x.ts +174 -15
- package/src/aegis256-bs.ts +518 -0
- package/src/aegis256.ts +112 -5
- package/src/aegis256x.ts +174 -15
- package/src/aes-bs.ts +459 -0
- package/src/index.ts +66 -0
- package/src/random.ts +41 -0
- package/README.md~ +0 -154
package/dist/aes-bs.d.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bitsliced AES implementation using 32-bit integers.
|
|
3
|
+
* Processes 8 AES blocks simultaneously for constant-time operation.
|
|
4
|
+
* Based on the barrel-shiftrows representation by Adomnicai and Peyrin.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Bitsliced representation of 8 AES blocks.
|
|
8
|
+
* 32 uint32 words where each bit position corresponds to one of 8 blocks.
|
|
9
|
+
*/
|
|
10
|
+
export type AesBlocks = Uint32Array;
|
|
11
|
+
/**
|
|
12
|
+
* A single AES block as 4 uint32 words (little-endian).
|
|
13
|
+
*/
|
|
14
|
+
export type AesBlock = Uint32Array;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a new bitsliced state for 8 AES blocks.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createAesBlocks(): AesBlocks;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new AES block (4 uint32 words).
|
|
21
|
+
*/
|
|
22
|
+
export declare function createAesBlock(): AesBlock;
|
|
23
|
+
/**
|
|
24
|
+
* Complete AES round (SubBytes + ShiftRows + MixColumns).
|
|
25
|
+
* Note: AddRoundKey is handled separately in AEGIS.
|
|
26
|
+
*/
|
|
27
|
+
export declare function aesRound(st: AesBlocks): void;
|
|
28
|
+
/**
|
|
29
|
+
* Pack 8 AES blocks into bitsliced representation.
|
|
30
|
+
*/
|
|
31
|
+
export declare function pack(st: AesBlocks): void;
|
|
32
|
+
/**
|
|
33
|
+
* Unpack bitsliced representation to 8 AES blocks.
|
|
34
|
+
*/
|
|
35
|
+
export declare function unpack(st: AesBlocks): void;
|
|
36
|
+
/**
|
|
37
|
+
* Pack only blocks 0 and 4 (used for constant inputs in AEGIS-128L).
|
|
38
|
+
*/
|
|
39
|
+
export declare function pack04(st: AesBlocks): void;
|
|
40
|
+
/**
|
|
41
|
+
* Computes the index into the bitsliced state array.
|
|
42
|
+
* @param block - Block index (0-7)
|
|
43
|
+
* @param word - Word index (0-3)
|
|
44
|
+
*/
|
|
45
|
+
export declare function wordIdx(block: number, word: number): number;
|
|
46
|
+
/**
|
|
47
|
+
* Rotate all blocks right by 1 position (for AEGIS state rotation).
|
|
48
|
+
* Performs (st[i] & 0xfefefefe) >> 1 | (st[i] & 0x01010101) << 7
|
|
49
|
+
*/
|
|
50
|
+
export declare function blocksRotr(st: AesBlocks): void;
|
|
51
|
+
/**
|
|
52
|
+
* Put a single AES block into the bitsliced state at the given block position.
|
|
53
|
+
*/
|
|
54
|
+
export declare function blocksPut(st: AesBlocks, s: AesBlock, block: number): void;
|
|
55
|
+
/**
|
|
56
|
+
* Load a 16-byte buffer into an AES block (4 uint32 little-endian).
|
|
57
|
+
*/
|
|
58
|
+
export declare function blockFromBytes(out: AesBlock, src: Uint8Array): void;
|
|
59
|
+
/**
|
|
60
|
+
* Store an AES block to a 16-byte buffer (little-endian).
|
|
61
|
+
*/
|
|
62
|
+
export declare function blockToBytes(out: Uint8Array, src: AesBlock): void;
|
|
63
|
+
/**
|
|
64
|
+
* XOR two AES blocks: out = a ^ b
|
|
65
|
+
*/
|
|
66
|
+
export declare function blockXor(out: AesBlock, a: AesBlock, b: AesBlock): void;
|
|
67
|
+
/**
|
|
68
|
+
* XOR two bitsliced states: a ^= b
|
|
69
|
+
*/
|
|
70
|
+
export declare function blocksXor(a: AesBlocks, b: AesBlocks): void;
|
|
71
|
+
//# sourceMappingURL=aes-bs.d.ts.map
|
|
@@ -0,0 +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;AA4QD;;;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;;;;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,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"}
|
package/dist/aes-bs.js
ADDED
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bitsliced AES implementation using 32-bit integers.
|
|
3
|
+
* Processes 8 AES blocks simultaneously for constant-time operation.
|
|
4
|
+
* Based on the barrel-shiftrows representation by Adomnicai and Peyrin.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new bitsliced state for 8 AES blocks.
|
|
8
|
+
*/
|
|
9
|
+
export function createAesBlocks() {
|
|
10
|
+
return new Uint32Array(32);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new AES block (4 uint32 words).
|
|
14
|
+
*/
|
|
15
|
+
export function createAesBlock() {
|
|
16
|
+
return new Uint32Array(4);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Swap-move operation used in pack/unpack transformations.
|
|
20
|
+
* Swaps bits at positions n between a and b using a mask.
|
|
21
|
+
*/
|
|
22
|
+
function swapmove(st, aIdx, bIdx, mask, n) {
|
|
23
|
+
const tmp = ((st[bIdx] ^ (st[aIdx] >>> n)) & mask) >>> 0;
|
|
24
|
+
st[bIdx] = (st[bIdx] ^ tmp) >>> 0;
|
|
25
|
+
st[aIdx] = (st[aIdx] ^ ((tmp << n) >>> 0)) >>> 0;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* 32-bit left rotation.
|
|
29
|
+
*/
|
|
30
|
+
function rotl32(x, b) {
|
|
31
|
+
return ((x << b) | (x >>> (32 - b))) >>> 0;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* S-box implementation using bitsliced logic gates.
|
|
35
|
+
* Maximov & Ekdahl circuit.
|
|
36
|
+
*/
|
|
37
|
+
function sbox(st, offset) {
|
|
38
|
+
let u0 = st[offset];
|
|
39
|
+
let u1 = st[offset + 1];
|
|
40
|
+
let u2 = st[offset + 2];
|
|
41
|
+
let u3 = st[offset + 3];
|
|
42
|
+
let u4 = st[offset + 4];
|
|
43
|
+
let u5 = st[offset + 5];
|
|
44
|
+
let u6 = st[offset + 6];
|
|
45
|
+
let u7 = st[offset + 7];
|
|
46
|
+
const z24 = (u3 ^ u4) >>> 0;
|
|
47
|
+
const q17 = (u1 ^ u7) >>> 0;
|
|
48
|
+
const q16 = (u5 ^ q17) >>> 0;
|
|
49
|
+
const q0 = (z24 ^ q16) >>> 0;
|
|
50
|
+
const q7 = (z24 ^ u1 ^ u6) >>> 0;
|
|
51
|
+
const q2 = (u2 ^ q0) >>> 0;
|
|
52
|
+
const q1 = (q7 ^ q2) >>> 0;
|
|
53
|
+
const q3 = (u0 ^ q7) >>> 0;
|
|
54
|
+
const q4 = (u0 ^ q2) >>> 0;
|
|
55
|
+
const q5 = (u1 ^ q4) >>> 0;
|
|
56
|
+
const q6 = (u2 ^ u3) >>> 0;
|
|
57
|
+
const q10 = (q6 ^ q7) >>> 0;
|
|
58
|
+
const q8 = (u0 ^ q10) >>> 0;
|
|
59
|
+
const q9 = (q8 ^ q2) >>> 0;
|
|
60
|
+
const q12 = (z24 ^ q17) >>> 0;
|
|
61
|
+
const q15 = (u7 ^ q4) >>> 0;
|
|
62
|
+
const q13 = (z24 ^ q15) >>> 0;
|
|
63
|
+
const q14 = (q15 ^ q0) >>> 0;
|
|
64
|
+
const q11 = u5;
|
|
65
|
+
// NAND(x, y) = ~(x & y)
|
|
66
|
+
// NOR(x, y) = ~(x | y)
|
|
67
|
+
// XNOR(x, y) = ~(x ^ y)
|
|
68
|
+
// MUX(s, x, y) = (x & s) | (y & ~s)
|
|
69
|
+
const nand = (x, y) => ~(x & y) >>> 0;
|
|
70
|
+
const nor = (x, y) => ~(x | y) >>> 0;
|
|
71
|
+
const xnor = (x, y) => ~(x ^ y) >>> 0;
|
|
72
|
+
const mux = (s, x, y) => (((x & s) >>> 0) | ((y & ~s) >>> 0)) >>> 0;
|
|
73
|
+
const t20 = nand(q6, q12);
|
|
74
|
+
const t21 = nand(q3, q14);
|
|
75
|
+
const t22 = nand(q1, q16);
|
|
76
|
+
const x0 = (nor(q3, q14) ^ nand(q0, q7) ^ (t20 ^ t22)) >>> 0;
|
|
77
|
+
const x1 = (nor(q4, q13) ^ nand(q10, q11) ^ (t21 ^ t20)) >>> 0;
|
|
78
|
+
const x2 = (nor(q2, q17) ^ nand(q5, q9) ^ (t21 ^ t22)) >>> 0;
|
|
79
|
+
const x3 = (nor(q8, q15) ^ nand(q2, q17) ^ (t21 ^ nand(q4, q13))) >>> 0;
|
|
80
|
+
const t2 = xnor(nand(x0, x2), nor(x1, x3));
|
|
81
|
+
const y0 = mux(x2, t2, x3);
|
|
82
|
+
const y2 = mux(x0, t2, x1);
|
|
83
|
+
const y1 = mux(t2, x3, mux(x1, x2, 0xffffffff));
|
|
84
|
+
const y3 = mux(t2, x1, mux(x3, x0, 0xffffffff));
|
|
85
|
+
const y02 = (y2 ^ y0) >>> 0;
|
|
86
|
+
const y13 = (y3 ^ y1) >>> 0;
|
|
87
|
+
const y23 = (y3 ^ y2) >>> 0;
|
|
88
|
+
const y01 = (y1 ^ y0) >>> 0;
|
|
89
|
+
const y00 = (y02 ^ y13) >>> 0;
|
|
90
|
+
const n0 = nand(y01, q11);
|
|
91
|
+
const n1 = nand(y0, q12);
|
|
92
|
+
const n2 = nand(y1, q0);
|
|
93
|
+
const n3 = nand(y23, q17);
|
|
94
|
+
const n4 = nand(y2, q5);
|
|
95
|
+
const n5 = nand(y3, q15);
|
|
96
|
+
const n6 = nand(y13, q14);
|
|
97
|
+
const n7 = nand(y00, q16);
|
|
98
|
+
const n8 = nand(y02, q13);
|
|
99
|
+
const n9 = nand(y01, q7);
|
|
100
|
+
const n10 = nand(y0, q10);
|
|
101
|
+
const n11 = nand(y1, q6);
|
|
102
|
+
const n12 = nand(y23, q2);
|
|
103
|
+
const n13 = nand(y2, q9);
|
|
104
|
+
const n14 = nand(y3, q8);
|
|
105
|
+
const n15 = nand(y13, q3);
|
|
106
|
+
const n16 = nand(y00, q1);
|
|
107
|
+
const n17 = nand(y02, q4);
|
|
108
|
+
const h1 = (n4 ^ n1 ^ n5) >>> 0;
|
|
109
|
+
u2 = xnor(n2, h1);
|
|
110
|
+
const h2 = (n9 ^ n15) >>> 0;
|
|
111
|
+
u6 = xnor(h2, (n11 ^ n17) >>> 0);
|
|
112
|
+
const h4 = (n11 ^ n14) >>> 0;
|
|
113
|
+
const h5 = (n9 ^ n12) >>> 0;
|
|
114
|
+
u5 = (h4 ^ h5) >>> 0;
|
|
115
|
+
const h7 = (u2 ^ u6) >>> 0;
|
|
116
|
+
const h8 = (n10 ^ h7) >>> 0;
|
|
117
|
+
u7 = xnor((n16 ^ h2) >>> 0, h8);
|
|
118
|
+
const h9 = (n8 ^ h1) >>> 0;
|
|
119
|
+
const h10 = (n13 ^ h8) >>> 0;
|
|
120
|
+
u3 = (h5 ^ h10) >>> 0;
|
|
121
|
+
const h13 = (h4 ^ n7 ^ h9 ^ h10) >>> 0;
|
|
122
|
+
u4 = (n1 ^ h13) >>> 0;
|
|
123
|
+
const h14 = xnor(n0, u7);
|
|
124
|
+
u1 = xnor(n6, (h7 ^ h9 ^ h14) >>> 0);
|
|
125
|
+
u0 = (h13 ^ n3 ^ n4 ^ h14) >>> 0;
|
|
126
|
+
st[offset] = u0;
|
|
127
|
+
st[offset + 1] = u1;
|
|
128
|
+
st[offset + 2] = u2;
|
|
129
|
+
st[offset + 3] = u3;
|
|
130
|
+
st[offset + 4] = u4;
|
|
131
|
+
st[offset + 5] = u5;
|
|
132
|
+
st[offset + 6] = u6;
|
|
133
|
+
st[offset + 7] = u7;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Apply S-box to all 4 byte positions.
|
|
137
|
+
*/
|
|
138
|
+
function sboxes(st) {
|
|
139
|
+
for (let i = 0; i < 4; i++) {
|
|
140
|
+
sbox(st, 8 * i);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* ShiftRows operation in bitsliced form.
|
|
145
|
+
*/
|
|
146
|
+
function shiftrows(st) {
|
|
147
|
+
for (let i = 8; i < 16; i++) {
|
|
148
|
+
st[i] = rotl32(st[i], 24);
|
|
149
|
+
}
|
|
150
|
+
for (let i = 16; i < 24; i++) {
|
|
151
|
+
st[i] = rotl32(st[i], 16);
|
|
152
|
+
}
|
|
153
|
+
for (let i = 24; i < 32; i++) {
|
|
154
|
+
st[i] = rotl32(st[i], 8);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* MixColumns operation in bitsliced form.
|
|
159
|
+
*/
|
|
160
|
+
function mixcolumns(st) {
|
|
161
|
+
const t2_0 = (st[0] ^ st[8]) >>> 0;
|
|
162
|
+
const t2_1 = (st[8] ^ st[16]) >>> 0;
|
|
163
|
+
const t2_2 = (st[16] ^ st[24]) >>> 0;
|
|
164
|
+
const t2_3 = (st[24] ^ st[0]) >>> 0;
|
|
165
|
+
let t0_0 = (st[7] ^ st[15]) >>> 0;
|
|
166
|
+
let t0_1 = (st[15] ^ st[23]) >>> 0;
|
|
167
|
+
let t0_2 = (st[23] ^ st[31]) >>> 0;
|
|
168
|
+
let t0_3 = (st[31] ^ st[7]) >>> 0;
|
|
169
|
+
let t = st[7];
|
|
170
|
+
st[7] = (t2_0 ^ t0_2 ^ st[15]) >>> 0;
|
|
171
|
+
st[15] = (t2_1 ^ t0_2 ^ t) >>> 0;
|
|
172
|
+
t = st[23];
|
|
173
|
+
st[23] = (t2_2 ^ t0_0 ^ st[31]) >>> 0;
|
|
174
|
+
st[31] = (t2_3 ^ t0_0 ^ t) >>> 0;
|
|
175
|
+
let t1_0 = (st[6] ^ st[14]) >>> 0;
|
|
176
|
+
let t1_1 = (st[14] ^ st[22]) >>> 0;
|
|
177
|
+
let t1_2 = (st[22] ^ st[30]) >>> 0;
|
|
178
|
+
let t1_3 = (st[30] ^ st[6]) >>> 0;
|
|
179
|
+
t = st[6];
|
|
180
|
+
let t_bis = st[14];
|
|
181
|
+
st[6] = (t0_0 ^ t2_0 ^ st[14] ^ t1_2) >>> 0;
|
|
182
|
+
st[14] = (t0_1 ^ t2_1 ^ t1_2 ^ t) >>> 0;
|
|
183
|
+
t = st[22];
|
|
184
|
+
st[22] = (t0_2 ^ t2_2 ^ t1_3 ^ t_bis) >>> 0;
|
|
185
|
+
st[30] = (t0_3 ^ t2_3 ^ t1_0 ^ t) >>> 0;
|
|
186
|
+
t0_0 = (st[5] ^ st[13]) >>> 0;
|
|
187
|
+
t0_1 = (st[13] ^ st[21]) >>> 0;
|
|
188
|
+
t0_2 = (st[21] ^ st[29]) >>> 0;
|
|
189
|
+
t0_3 = (st[29] ^ st[5]) >>> 0;
|
|
190
|
+
t = st[5];
|
|
191
|
+
t_bis = st[13];
|
|
192
|
+
st[5] = (t1_0 ^ t0_1 ^ st[29]) >>> 0;
|
|
193
|
+
st[13] = (t1_1 ^ t0_2 ^ t) >>> 0;
|
|
194
|
+
t = st[21];
|
|
195
|
+
st[21] = (t1_2 ^ t0_3 ^ t_bis) >>> 0;
|
|
196
|
+
st[29] = (t1_3 ^ t0_0 ^ t) >>> 0;
|
|
197
|
+
t1_0 = (st[4] ^ st[12]) >>> 0;
|
|
198
|
+
t1_1 = (st[12] ^ st[20]) >>> 0;
|
|
199
|
+
t1_2 = (st[20] ^ st[28]) >>> 0;
|
|
200
|
+
t1_3 = (st[28] ^ st[4]) >>> 0;
|
|
201
|
+
t = st[4];
|
|
202
|
+
t_bis = st[12];
|
|
203
|
+
st[4] = (t0_0 ^ t2_0 ^ t1_1 ^ st[28]) >>> 0;
|
|
204
|
+
st[12] = (t0_1 ^ t2_1 ^ t1_2 ^ t) >>> 0;
|
|
205
|
+
t = st[20];
|
|
206
|
+
st[20] = (t0_2 ^ t2_2 ^ t1_3 ^ t_bis) >>> 0;
|
|
207
|
+
st[28] = (t0_3 ^ t2_3 ^ t1_0 ^ t) >>> 0;
|
|
208
|
+
t0_0 = (st[3] ^ st[11]) >>> 0;
|
|
209
|
+
t0_1 = (st[11] ^ st[19]) >>> 0;
|
|
210
|
+
t0_2 = (st[19] ^ st[27]) >>> 0;
|
|
211
|
+
t0_3 = (st[27] ^ st[3]) >>> 0;
|
|
212
|
+
t = st[3];
|
|
213
|
+
t_bis = st[11];
|
|
214
|
+
st[3] = (t1_0 ^ t2_0 ^ t0_1 ^ st[27]) >>> 0;
|
|
215
|
+
st[11] = (t1_1 ^ t2_1 ^ t0_2 ^ t) >>> 0;
|
|
216
|
+
t = st[19];
|
|
217
|
+
st[19] = (t1_2 ^ t2_2 ^ t0_3 ^ t_bis) >>> 0;
|
|
218
|
+
st[27] = (t1_3 ^ t2_3 ^ t0_0 ^ t) >>> 0;
|
|
219
|
+
t1_0 = (st[2] ^ st[10]) >>> 0;
|
|
220
|
+
t1_1 = (st[10] ^ st[18]) >>> 0;
|
|
221
|
+
t1_2 = (st[18] ^ st[26]) >>> 0;
|
|
222
|
+
t1_3 = (st[26] ^ st[2]) >>> 0;
|
|
223
|
+
t = st[2];
|
|
224
|
+
t_bis = st[10];
|
|
225
|
+
st[2] = (t0_0 ^ t1_1 ^ st[26]) >>> 0;
|
|
226
|
+
st[10] = (t0_1 ^ t1_2 ^ t) >>> 0;
|
|
227
|
+
t = st[18];
|
|
228
|
+
st[18] = (t0_2 ^ t1_3 ^ t_bis) >>> 0;
|
|
229
|
+
st[26] = (t0_3 ^ t1_0 ^ t) >>> 0;
|
|
230
|
+
t0_0 = (st[1] ^ st[9]) >>> 0;
|
|
231
|
+
t0_1 = (st[9] ^ st[17]) >>> 0;
|
|
232
|
+
t0_2 = (st[17] ^ st[25]) >>> 0;
|
|
233
|
+
t0_3 = (st[25] ^ st[1]) >>> 0;
|
|
234
|
+
t = st[1];
|
|
235
|
+
t_bis = st[9];
|
|
236
|
+
st[1] = (t1_0 ^ t0_1 ^ st[25]) >>> 0;
|
|
237
|
+
st[9] = (t1_1 ^ t0_2 ^ t) >>> 0;
|
|
238
|
+
t = st[17];
|
|
239
|
+
st[17] = (t1_2 ^ t0_3 ^ t_bis) >>> 0;
|
|
240
|
+
st[25] = (t1_3 ^ t0_0 ^ t) >>> 0;
|
|
241
|
+
t = st[0];
|
|
242
|
+
t_bis = st[8];
|
|
243
|
+
st[0] = (t0_0 ^ t2_1 ^ st[24]) >>> 0;
|
|
244
|
+
st[8] = (t0_1 ^ t2_2 ^ t) >>> 0;
|
|
245
|
+
t = st[16];
|
|
246
|
+
st[16] = (t0_2 ^ t2_3 ^ t_bis) >>> 0;
|
|
247
|
+
st[24] = (t0_3 ^ t2_0 ^ t) >>> 0;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Complete AES round (SubBytes + ShiftRows + MixColumns).
|
|
251
|
+
* Note: AddRoundKey is handled separately in AEGIS.
|
|
252
|
+
*/
|
|
253
|
+
export function aesRound(st) {
|
|
254
|
+
sboxes(st);
|
|
255
|
+
shiftrows(st);
|
|
256
|
+
mixcolumns(st);
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Pack 8 AES blocks into bitsliced representation.
|
|
260
|
+
*/
|
|
261
|
+
export function pack(st) {
|
|
262
|
+
for (let i = 0; i < 8; i++) {
|
|
263
|
+
swapmove(st, i, i + 8, 0x00ff00ff, 8);
|
|
264
|
+
swapmove(st, i + 16, i + 24, 0x00ff00ff, 8);
|
|
265
|
+
}
|
|
266
|
+
for (let i = 0; i < 16; i++) {
|
|
267
|
+
swapmove(st, i, i + 16, 0x0000ffff, 16);
|
|
268
|
+
}
|
|
269
|
+
for (let i = 0; i < 32; i += 8) {
|
|
270
|
+
swapmove(st, i + 1, i, 0x55555555, 1);
|
|
271
|
+
swapmove(st, i + 3, i + 2, 0x55555555, 1);
|
|
272
|
+
swapmove(st, i + 5, i + 4, 0x55555555, 1);
|
|
273
|
+
swapmove(st, i + 7, i + 6, 0x55555555, 1);
|
|
274
|
+
swapmove(st, i + 2, i, 0x33333333, 2);
|
|
275
|
+
swapmove(st, i + 3, i + 1, 0x33333333, 2);
|
|
276
|
+
swapmove(st, i + 6, i + 4, 0x33333333, 2);
|
|
277
|
+
swapmove(st, i + 7, i + 5, 0x33333333, 2);
|
|
278
|
+
swapmove(st, i + 4, i, 0x0f0f0f0f, 4);
|
|
279
|
+
swapmove(st, i + 5, i + 1, 0x0f0f0f0f, 4);
|
|
280
|
+
swapmove(st, i + 6, i + 2, 0x0f0f0f0f, 4);
|
|
281
|
+
swapmove(st, i + 7, i + 3, 0x0f0f0f0f, 4);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Unpack bitsliced representation to 8 AES blocks.
|
|
286
|
+
*/
|
|
287
|
+
export function unpack(st) {
|
|
288
|
+
for (let i = 0; i < 32; i += 8) {
|
|
289
|
+
swapmove(st, i + 1, i, 0x55555555, 1);
|
|
290
|
+
swapmove(st, i + 3, i + 2, 0x55555555, 1);
|
|
291
|
+
swapmove(st, i + 5, i + 4, 0x55555555, 1);
|
|
292
|
+
swapmove(st, i + 7, i + 6, 0x55555555, 1);
|
|
293
|
+
swapmove(st, i + 2, i, 0x33333333, 2);
|
|
294
|
+
swapmove(st, i + 3, i + 1, 0x33333333, 2);
|
|
295
|
+
swapmove(st, i + 6, i + 4, 0x33333333, 2);
|
|
296
|
+
swapmove(st, i + 7, i + 5, 0x33333333, 2);
|
|
297
|
+
swapmove(st, i + 4, i, 0x0f0f0f0f, 4);
|
|
298
|
+
swapmove(st, i + 5, i + 1, 0x0f0f0f0f, 4);
|
|
299
|
+
swapmove(st, i + 6, i + 2, 0x0f0f0f0f, 4);
|
|
300
|
+
swapmove(st, i + 7, i + 3, 0x0f0f0f0f, 4);
|
|
301
|
+
}
|
|
302
|
+
for (let i = 0; i < 16; i++) {
|
|
303
|
+
swapmove(st, i, i + 16, 0x0000ffff, 16);
|
|
304
|
+
}
|
|
305
|
+
for (let i = 0; i < 8; i++) {
|
|
306
|
+
swapmove(st, i, i + 8, 0x00ff00ff, 8);
|
|
307
|
+
swapmove(st, i + 16, i + 24, 0x00ff00ff, 8);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Pack only blocks 0 and 4 (used for constant inputs in AEGIS-128L).
|
|
312
|
+
*/
|
|
313
|
+
export function pack04(st) {
|
|
314
|
+
swapmove(st, 0, 0 + 8, 0x00ff00ff, 8);
|
|
315
|
+
swapmove(st, 0 + 16, 0 + 24, 0x00ff00ff, 8);
|
|
316
|
+
swapmove(st, 4, 4 + 8, 0x00ff00ff, 8);
|
|
317
|
+
swapmove(st, 4 + 16, 4 + 24, 0x00ff00ff, 8);
|
|
318
|
+
swapmove(st, 0, 0 + 16, 0x0000ffff, 16);
|
|
319
|
+
swapmove(st, 4, 4 + 16, 0x0000ffff, 16);
|
|
320
|
+
swapmove(st, 8, 8 + 16, 0x0000ffff, 16);
|
|
321
|
+
swapmove(st, 12, 12 + 16, 0x0000ffff, 16);
|
|
322
|
+
for (let i = 0; i < 32; i += 8) {
|
|
323
|
+
swapmove(st, i + 1, i, 0x55555555, 1);
|
|
324
|
+
swapmove(st, i + 5, i + 4, 0x55555555, 1);
|
|
325
|
+
swapmove(st, i + 2, i, 0x33333333, 2);
|
|
326
|
+
swapmove(st, i + 3, i + 1, 0x33333333, 2);
|
|
327
|
+
swapmove(st, i + 6, i + 4, 0x33333333, 2);
|
|
328
|
+
swapmove(st, i + 7, i + 5, 0x33333333, 2);
|
|
329
|
+
swapmove(st, i + 4, i, 0x0f0f0f0f, 4);
|
|
330
|
+
swapmove(st, i + 5, i + 1, 0x0f0f0f0f, 4);
|
|
331
|
+
swapmove(st, i + 6, i + 2, 0x0f0f0f0f, 4);
|
|
332
|
+
swapmove(st, i + 7, i + 3, 0x0f0f0f0f, 4);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Computes the index into the bitsliced state array.
|
|
337
|
+
* @param block - Block index (0-7)
|
|
338
|
+
* @param word - Word index (0-3)
|
|
339
|
+
*/
|
|
340
|
+
export function wordIdx(block, word) {
|
|
341
|
+
return block + word * 8;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Rotate all blocks right by 1 position (for AEGIS state rotation).
|
|
345
|
+
* Performs (st[i] & 0xfefefefe) >> 1 | (st[i] & 0x01010101) << 7
|
|
346
|
+
*/
|
|
347
|
+
export function blocksRotr(st) {
|
|
348
|
+
for (let i = 0; i < 32; i++) {
|
|
349
|
+
st[i] =
|
|
350
|
+
(((st[i] & 0xfefefefe) >>> 1) | ((st[i] & 0x01010101) << 7)) >>> 0;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Put a single AES block into the bitsliced state at the given block position.
|
|
355
|
+
*/
|
|
356
|
+
export function blocksPut(st, s, block) {
|
|
357
|
+
st[wordIdx(block, 0)] = s[0];
|
|
358
|
+
st[wordIdx(block, 1)] = s[1];
|
|
359
|
+
st[wordIdx(block, 2)] = s[2];
|
|
360
|
+
st[wordIdx(block, 3)] = s[3];
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Load a 16-byte buffer into an AES block (4 uint32 little-endian).
|
|
364
|
+
*/
|
|
365
|
+
export function blockFromBytes(out, src) {
|
|
366
|
+
const view = new DataView(src.buffer, src.byteOffset, src.byteLength);
|
|
367
|
+
out[0] = view.getUint32(0, true);
|
|
368
|
+
out[1] = view.getUint32(4, true);
|
|
369
|
+
out[2] = view.getUint32(8, true);
|
|
370
|
+
out[3] = view.getUint32(12, true);
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Store an AES block to a 16-byte buffer (little-endian).
|
|
374
|
+
*/
|
|
375
|
+
export function blockToBytes(out, src) {
|
|
376
|
+
const view = new DataView(out.buffer, out.byteOffset, out.byteLength);
|
|
377
|
+
view.setUint32(0, src[0], true);
|
|
378
|
+
view.setUint32(4, src[1], true);
|
|
379
|
+
view.setUint32(8, src[2], true);
|
|
380
|
+
view.setUint32(12, src[3], true);
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* XOR two AES blocks: out = a ^ b
|
|
384
|
+
*/
|
|
385
|
+
export function blockXor(out, a, b) {
|
|
386
|
+
out[0] = (a[0] ^ b[0]) >>> 0;
|
|
387
|
+
out[1] = (a[1] ^ b[1]) >>> 0;
|
|
388
|
+
out[2] = (a[2] ^ b[2]) >>> 0;
|
|
389
|
+
out[3] = (a[3] ^ b[3]) >>> 0;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* XOR two bitsliced states: a ^= b
|
|
393
|
+
*/
|
|
394
|
+
export function blocksXor(a, b) {
|
|
395
|
+
for (let i = 0; i < 32; i++) {
|
|
396
|
+
a[i] = (a[i] ^ b[i]) >>> 0;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=aes-bs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aes-bs.js","sourceRoot":"","sources":["../src/aes-bs.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export { aegis128LDecrypt, aegis128LEncrypt, aegis128LMac, aegis128LMacVerify, } from "./aegis128l.js";
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
1
|
+
export { AEGIS_128L_KEY_SIZE, AEGIS_128L_NONCE_SIZE, aegis128LCreateKey, aegis128LCreateNonce, aegis128LDecrypt, aegis128LDecryptDetached, aegis128LEncrypt, aegis128LEncryptDetached, aegis128LMac, aegis128LMacVerify, } from "./aegis128l.js";
|
|
2
|
+
export { AEGIS_128L_BS_KEY_SIZE, AEGIS_128L_BS_NONCE_SIZE, Aegis128LBsState, aegis128LBsCreateKey, aegis128LBsCreateNonce, aegis128LBsDecrypt, aegis128LBsDecryptDetached, aegis128LBsEncrypt, aegis128LBsEncryptDetached, aegis128LBsMac, aegis128LBsMacVerify, } from "./aegis128l-bs.js";
|
|
3
|
+
export { AEGIS_128X_KEY_SIZE, AEGIS_128X_NONCE_SIZE, aegis128X2CreateKey, aegis128X2CreateNonce, aegis128X2Decrypt, aegis128X2DecryptDetached, aegis128X2Encrypt, aegis128X2EncryptDetached, aegis128X2Mac, aegis128X2MacVerify, aegis128X4CreateKey, aegis128X4CreateNonce, aegis128X4Decrypt, aegis128X4DecryptDetached, aegis128X4Encrypt, aegis128X4EncryptDetached, aegis128X4Mac, aegis128X4MacVerify, aegis128XCreateKey, aegis128XCreateNonce, aegis128XDecrypt, aegis128XDecryptDetached, aegis128XEncrypt, aegis128XEncryptDetached, aegis128XMac, aegis128XMacVerify, } from "./aegis128x.js";
|
|
4
|
+
export { AEGIS_256_KEY_SIZE, AEGIS_256_NONCE_SIZE, aegis256CreateKey, aegis256CreateNonce, aegis256Decrypt, aegis256DecryptDetached, aegis256Encrypt, aegis256EncryptDetached, aegis256Mac, aegis256MacVerify, } from "./aegis256.js";
|
|
5
|
+
export { AEGIS_256_BS_KEY_SIZE, AEGIS_256_BS_NONCE_SIZE, Aegis256BsState, aegis256BsCreateKey, aegis256BsCreateNonce, aegis256BsDecrypt, aegis256BsDecryptDetached, aegis256BsEncrypt, aegis256BsEncryptDetached, aegis256BsMac, aegis256BsMacVerify, } from "./aegis256-bs.js";
|
|
6
|
+
export { AEGIS_256X_KEY_SIZE, AEGIS_256X_NONCE_SIZE, aegis256X2CreateKey, aegis256X2CreateNonce, aegis256X2Decrypt, aegis256X2DecryptDetached, aegis256X2Encrypt, aegis256X2EncryptDetached, aegis256X2Mac, aegis256X2MacVerify, aegis256X4CreateKey, aegis256X4CreateNonce, aegis256X4Decrypt, aegis256X4DecryptDetached, aegis256X4Encrypt, aegis256X4EncryptDetached, aegis256X4Mac, aegis256X4MacVerify, aegis256XCreateKey, aegis256XCreateNonce, aegis256XDecrypt, aegis256XDecryptDetached, aegis256XEncrypt, aegis256XEncryptDetached, aegis256XMac, aegis256XMacVerify, } from "./aegis256x.js";
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,eAAe,EACf,eAAe,EACf,WAAW,EACX,iBAAiB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,GAClB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,0BAA0B,EAC1B,cAAc,EACd,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,WAAW,EACX,iBAAiB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GAClB,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export { aegis128LDecrypt, aegis128LEncrypt, aegis128LMac, aegis128LMacVerify, } from "./aegis128l.js";
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
1
|
+
export { AEGIS_128L_KEY_SIZE, AEGIS_128L_NONCE_SIZE, aegis128LCreateKey, aegis128LCreateNonce, aegis128LDecrypt, aegis128LDecryptDetached, aegis128LEncrypt, aegis128LEncryptDetached, aegis128LMac, aegis128LMacVerify, } from "./aegis128l.js";
|
|
2
|
+
export { AEGIS_128L_BS_KEY_SIZE, AEGIS_128L_BS_NONCE_SIZE, Aegis128LBsState, aegis128LBsCreateKey, aegis128LBsCreateNonce, aegis128LBsDecrypt, aegis128LBsDecryptDetached, aegis128LBsEncrypt, aegis128LBsEncryptDetached, aegis128LBsMac, aegis128LBsMacVerify, } from "./aegis128l-bs.js";
|
|
3
|
+
export { AEGIS_128X_KEY_SIZE, AEGIS_128X_NONCE_SIZE, aegis128X2CreateKey, aegis128X2CreateNonce, aegis128X2Decrypt, aegis128X2DecryptDetached, aegis128X2Encrypt, aegis128X2EncryptDetached, aegis128X2Mac, aegis128X2MacVerify, aegis128X4CreateKey, aegis128X4CreateNonce, aegis128X4Decrypt, aegis128X4DecryptDetached, aegis128X4Encrypt, aegis128X4EncryptDetached, aegis128X4Mac, aegis128X4MacVerify, aegis128XCreateKey, aegis128XCreateNonce, aegis128XDecrypt, aegis128XDecryptDetached, aegis128XEncrypt, aegis128XEncryptDetached, aegis128XMac, aegis128XMacVerify, } from "./aegis128x.js";
|
|
4
|
+
export { AEGIS_256_KEY_SIZE, AEGIS_256_NONCE_SIZE, aegis256CreateKey, aegis256CreateNonce, aegis256Decrypt, aegis256DecryptDetached, aegis256Encrypt, aegis256EncryptDetached, aegis256Mac, aegis256MacVerify, } from "./aegis256.js";
|
|
5
|
+
export { AEGIS_256_BS_KEY_SIZE, AEGIS_256_BS_NONCE_SIZE, Aegis256BsState, aegis256BsCreateKey, aegis256BsCreateNonce, aegis256BsDecrypt, aegis256BsDecryptDetached, aegis256BsEncrypt, aegis256BsEncryptDetached, aegis256BsMac, aegis256BsMacVerify, } from "./aegis256-bs.js";
|
|
6
|
+
export { AEGIS_256X_KEY_SIZE, AEGIS_256X_NONCE_SIZE, aegis256X2CreateKey, aegis256X2CreateNonce, aegis256X2Decrypt, aegis256X2DecryptDetached, aegis256X2Encrypt, aegis256X2EncryptDetached, aegis256X2Mac, aegis256X2MacVerify, aegis256X4CreateKey, aegis256X4CreateNonce, aegis256X4Decrypt, aegis256X4DecryptDetached, aegis256X4Encrypt, aegis256X4EncryptDetached, aegis256X4Mac, aegis256X4MacVerify, aegis256XCreateKey, aegis256XCreateNonce, aegis256XDecrypt, aegis256XDecryptDetached, aegis256XEncrypt, aegis256XEncryptDetached, aegis256XMac, aegis256XMacVerify, } from "./aegis256x.js";
|
|
5
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,eAAe,EACf,eAAe,EACf,WAAW,EACX,iBAAiB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,GAClB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,0BAA0B,EAC1B,cAAc,EACd,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,WAAW,EACX,iBAAiB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,GAClB,MAAM,gBAAgB,CAAC"}
|
package/dist/random.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-platform cryptographically secure random byte generation.
|
|
3
|
+
*
|
|
4
|
+
* Uses the Web Crypto API (globalThis.crypto.getRandomValues) which is available in:
|
|
5
|
+
* - All modern browsers
|
|
6
|
+
* - Node.js 19+
|
|
7
|
+
* - Deno
|
|
8
|
+
* - Bun
|
|
9
|
+
*
|
|
10
|
+
* For older Node.js versions, you can polyfill:
|
|
11
|
+
* ```
|
|
12
|
+
* globalThis.crypto = require('crypto').webcrypto;
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Generates cryptographically secure random bytes.
|
|
17
|
+
* @param length - Number of random bytes to generate
|
|
18
|
+
* @returns Uint8Array of random bytes
|
|
19
|
+
* @throws Error if no cryptographic random source is available
|
|
20
|
+
*/
|
|
21
|
+
export declare function randomBytes(length: number): Uint8Array;
|
|
22
|
+
//# sourceMappingURL=random.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"random.d.ts","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAgBH;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAKtD"}
|
package/dist/random.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-platform cryptographically secure random byte generation.
|
|
3
|
+
*
|
|
4
|
+
* Uses the Web Crypto API (globalThis.crypto.getRandomValues) which is available in:
|
|
5
|
+
* - All modern browsers
|
|
6
|
+
* - Node.js 19+
|
|
7
|
+
* - Deno
|
|
8
|
+
* - Bun
|
|
9
|
+
*
|
|
10
|
+
* For older Node.js versions, you can polyfill:
|
|
11
|
+
* ```
|
|
12
|
+
* globalThis.crypto = require('crypto').webcrypto;
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
function getCrypto() {
|
|
16
|
+
if (typeof globalThis !== "undefined" &&
|
|
17
|
+
globalThis.crypto &&
|
|
18
|
+
typeof globalThis.crypto.getRandomValues === "function") {
|
|
19
|
+
return globalThis.crypto;
|
|
20
|
+
}
|
|
21
|
+
throw new Error("No cryptographic random source available. " +
|
|
22
|
+
"In older Node.js versions, use: globalThis.crypto = require('crypto').webcrypto");
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Generates cryptographically secure random bytes.
|
|
26
|
+
* @param length - Number of random bytes to generate
|
|
27
|
+
* @returns Uint8Array of random bytes
|
|
28
|
+
* @throws Error if no cryptographic random source is available
|
|
29
|
+
*/
|
|
30
|
+
export function randomBytes(length) {
|
|
31
|
+
const crypto = getCrypto();
|
|
32
|
+
const bytes = new Uint8Array(length);
|
|
33
|
+
crypto.getRandomValues(bytes);
|
|
34
|
+
return bytes;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=random.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"random.js","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,SAAS,SAAS;IACjB,IACC,OAAO,UAAU,KAAK,WAAW;QACjC,UAAU,CAAC,MAAM;QACjB,OAAO,UAAU,CAAC,MAAM,CAAC,eAAe,KAAK,UAAU,EACtD,CAAC;QACF,OAAO,UAAU,CAAC,MAAM,CAAC;IAC1B,CAAC;IACD,MAAM,IAAI,KAAK,CACd,4CAA4C;QAC3C,iFAAiF,CAClF,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACzC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC;AACd,CAAC"}
|