yescrypt-wasm
Version:
WebAssembly module for Yescrypt
103 lines (101 loc) • 5.68 kB
TypeScript
declare namespace RuntimeExports {
/**
* @param {string|null=} returnType
* @param {Array=} argTypes
* @param {Array=} args
* @param {Object=} opts
*/
function ccall(ident: any, returnType?: (string | null) | undefined, argTypes?: any[] | undefined, args?: any[] | undefined, opts?: Object | undefined): any;
/**
* @param {string=} returnType
* @param {Array=} argTypes
* @param {Object=} opts
*/
function cwrap(ident: any, returnType?: string | undefined, argTypes?: any[] | undefined, opts?: Object | undefined): any;
/**
* Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the
* emscripten HEAP, returns a copy of that string as a Javascript String object.
*
* @param {number} ptr
* @param {number=} maxBytesToRead - An optional length that specifies the
* maximum number of bytes to read. You can omit this parameter to scan the
* string until the first 0 byte. If maxBytesToRead is passed, and the string
* at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the
* string will cut short at that byte index.
* @param {boolean=} ignoreNul - If true, the function will not stop on a NUL character.
* @return {string}
*/
function UTF8ToString(ptr: number, maxBytesToRead?: number | undefined, ignoreNul?: boolean | undefined): string;
let HEAPU8: Uint8Array;
}
export interface WasmModule {
_yescrypt_kdf_full(_0: number, _1: number, _2: number, _3: number, _4: number, _5: BigInt, _6: number, _7: number, _8: number, _9: number, _10: number, _11: number): number;
_scrypt_kdf_wasm(_0: number, _1: number, _2: number, _3: number, _4: BigInt, _5: number, _6: number, _7: number): number;
_malloc(_0: number): number;
_yescrypt_kdf_wasm(_0: number, _1: number, _2: number, _3: number, _4: BigInt, _5: number, _6: number, _7: number): number;
_scrypt_hash(_0: number, _1: number, _2: number, _3: number, _4: BigInt, _5: number, _6: number, _7: number): number;
_scrypt_hash_full(_0: number, _1: number, _2: number, _3: number, _4: number, _5: BigInt, _6: number, _7: number, _8: number, _9: number): number;
_free(_0: number): void;
_yescrypt_hash(_0: number, _1: number, _2: number, _3: number, _4: BigInt, _5: number, _6: number, _7: number): number;
_yescrypt_hash_full_str(_0: number, _1: number, _2: number, _3: number, _4: number, _5: BigInt, _6: number, _7: number, _8: number, _9: number): number;
}
export type MainModule = WasmModule & typeof RuntimeExports;
export declare function bytesToBase64(bytes: Uint8Array): string;
export declare function base64ToBytes(base64: string): Uint8Array;
export declare function bytesToHex(bytes: Uint8Array, prefix?: boolean): string;
export declare function hexToBytes(hexStr: string): Uint8Array;
export type yescrypt_kdf_wasm = (passwd: number, passwdLen: number, salt: number, saltLen: number, N: bigint, r: number, p: number, t: number) => number;
export type yescrypt_kdf_full = (flags: number, passwd: number, passwdLen: number, salt: number, saltLen: number, N: bigint, r: number, p: number, t: number, g: number, output: number, outputLen: number) => number;
export type yescrypt_hash_full_ptr = (flags: number, passwd: number, passwdLen: number, salt: number, saltLen: number, N: bigint, r: number, p: number, t: number, g: number) => number;
/**
* yescrypt flag constants (see yescrypt-c/yescrypt.h). OR these together to
* build a custom `flags` value. YESCRYPT_DEFAULTS is what the yescrypt_* helpers
* use by default; scrypt_* helpers use 0 (classic scrypt).
*/
export declare const YESCRYPT_WORM = 1;
export declare const YESCRYPT_RW = 2;
export declare const YESCRYPT_ROUNDS_3 = 0;
export declare const YESCRYPT_ROUNDS_6 = 4;
export declare const YESCRYPT_GATHER_1 = 0;
export declare const YESCRYPT_GATHER_2 = 8;
export declare const YESCRYPT_GATHER_4 = 16;
export declare const YESCRYPT_GATHER_8 = 24;
export declare const YESCRYPT_SIMPLE_1 = 0;
export declare const YESCRYPT_SIMPLE_2 = 32;
export declare const YESCRYPT_SIMPLE_4 = 64;
export declare const YESCRYPT_SIMPLE_8 = 96;
export declare const YESCRYPT_SBOX_6K = 0;
export declare const YESCRYPT_SBOX_12K = 128;
export declare const YESCRYPT_SBOX_24K = 256;
export declare const YESCRYPT_SBOX_48K = 384;
export declare const YESCRYPT_SBOX_96K = 512;
export declare const YESCRYPT_SBOX_192K = 640;
export declare const YESCRYPT_SBOX_384K = 768;
export declare const YESCRYPT_SBOX_768K = 896;
export declare const YESCRYPT_RW_DEFAULTS: number;
export declare const YESCRYPT_DEFAULTS: number;
export declare class Yescrypt {
nByte: number;
Module: MainModule & {
HEAPU8: Uint8Array;
};
scrypt_kdf_wasm: yescrypt_kdf_wasm;
yescrypt_kdf_wasm: yescrypt_kdf_wasm;
yescrypt_kdf_full_: yescrypt_kdf_full;
yescrypt_hash_full_: yescrypt_hash_full_ptr;
scrypt_hash_full_: yescrypt_hash_full_ptr;
constructor(Module: MainModule & {
HEAPU8: Uint8Array;
});
static init(): Promise<Yescrypt>;
arrayToPtr(array: Uint8Array): number;
ptrToArray(ptr: number, length: number): Uint8Array;
freePtr(ptr: number): void;
private runKdf;
private runHash;
scrypt_kdf(passwd: Uint8Array, salt: Uint8Array, N?: number, r?: number, p?: number, t?: number, flags?: number, g?: number, dklen?: number): Uint8Array;
yescrypt_kdf(passwd: Uint8Array, salt: Uint8Array, N?: number, r?: number, p?: number, t?: number, flags?: number, g?: number, dklen?: number): Uint8Array;
scrypt_hash(passwd: Uint8Array, salt: Uint8Array, N?: number, r?: number, p?: number, t?: number, flags?: number, g?: number): string;
yescrypt_hash(passwd: Uint8Array, salt: Uint8Array, N?: number, r?: number, p?: number, t?: number, flags?: number, g?: number): string;
}
export {};