mirror of
https://github.com/Instadapp/Swap-Aggregator-Subgraph.git
synced 2024-07-29 21:57:12 +00:00
123 lines
2.7 KiB
TypeScript
Executable File
123 lines
2.7 KiB
TypeScript
Executable File
declare type AES_mode = 'ECB' | 'CBC' | 'CFB' | 'OFB' | 'CTR' | 'CCM';
|
|
export class AES_asm {
|
|
constructor(foreign: any, heap: ArrayBuffer);
|
|
|
|
/**
|
|
* @param ks - key size, 4/6/8 (for 128/192/256-bit key correspondingly)
|
|
* @param k0 - key vector components
|
|
* @param k1 - key vector components
|
|
* @param k2 - key vector components
|
|
* @param k3 - key vector components
|
|
* @param k4 - key vector components
|
|
* @param k5 - key vector components
|
|
* @param k6 - key vector components
|
|
* @param k7 - key vector components
|
|
*/
|
|
set_key(
|
|
ks: number,
|
|
k0: number,
|
|
k1: number,
|
|
k2: number,
|
|
k3: number,
|
|
k4: number,
|
|
k5: number,
|
|
k6: number,
|
|
k7: number,
|
|
): void;
|
|
|
|
/**
|
|
* Populate the internal iv of the module
|
|
*/
|
|
set_iv(i0: number, i1: number, i2: number, i3: number): void;
|
|
|
|
/**
|
|
* Set counter mask for CTR-family modes
|
|
*/
|
|
set_mask(m0: number, m1: number, m2: number, m3: number): void;
|
|
|
|
/**
|
|
* Set nonce for CTR-family modes
|
|
*/
|
|
set_nonce(n0: number, n1: number, n2: number, n3: number): void;
|
|
|
|
/**
|
|
* Set counter for CTR-family modes
|
|
*/
|
|
set_counter(c0: number, c1: number, c2: number, c3: number): void;
|
|
|
|
/**
|
|
* Perform ciphering operation on the supplied data
|
|
*
|
|
* @param mode - block cipher mode (see {@link AES_asm} mode constants)
|
|
* @param pos - offset of the data being processed
|
|
* @param len - length of the data being processed
|
|
* @return Actual amount of data have been processed
|
|
*/
|
|
cipher(mode: number, pos: number, len: number): number;
|
|
|
|
/**
|
|
* GCM initialization
|
|
*/
|
|
gcm_init(): void;
|
|
|
|
/**
|
|
* Store the internal iv vector into the heap
|
|
*
|
|
* @returns The number of bytes have been written into the heap, always 16
|
|
*/
|
|
get_iv(pos: number): 16;
|
|
|
|
/**
|
|
* Calculates MAC of the supplied data
|
|
*
|
|
* @param mode - block cipher mode (see {@link AES_asm} mode constants)
|
|
* @param pos - offset of the data being processed
|
|
* @param len - length of the data being processed
|
|
* @return Actual amount of data have been processed
|
|
*/
|
|
mac(mode: number, pos: number, len: number): number;
|
|
|
|
/**
|
|
* Store the internal state vector into the heap.
|
|
*
|
|
* @param pos - offset where to put the data
|
|
* @return The number of bytes have been written into the heap, always 16.
|
|
*/
|
|
get_state(pos: number): 16;
|
|
|
|
/**
|
|
* AES enciphering mode constants
|
|
*/
|
|
static ENC: {
|
|
ECB: 0;
|
|
CBC: 2;
|
|
CFB: 4;
|
|
OFB: 6;
|
|
CTR: 7;
|
|
[key: string]: number;
|
|
};
|
|
|
|
/**
|
|
* AES deciphering mode constants
|
|
*/
|
|
static DEC: {
|
|
ECB: 1;
|
|
CBC: 3;
|
|
CFB: 5;
|
|
OFB: 6;
|
|
CTR: 7;
|
|
[key: string]: number;
|
|
};
|
|
|
|
/**
|
|
* AES MAC mode constants
|
|
*/
|
|
static MAC: {
|
|
CBC: 0;
|
|
GCM: 1;
|
|
[key: string]: number;
|
|
};
|
|
|
|
static HEAP_DATA: number;
|
|
}
|