@li0ard/crapto1_ts
Version:
Crapto1 TypeScript implement
86 lines (85 loc) • 2.71 kB
TypeScript
/**
* Get bit of `num` at position `index`
* @param num Number
* @param index Index
* @returns {number}
*/
export declare const bit: (num: number, index: number) => number;
/**
* Get bit of reversed endian 32-bit `num` at position `index`
* @param num Word
* @param index Index
* @returns {number}
*/
export declare const bebit: (num: number, index: number) => number;
/**
* Filter function of Crypto1. Compute one bit of keystream from LFSR bits
* @param x LFSR bits
* @returns {number}
*/
export declare const filter: (x: number) => number;
/**
* Get parity from number
* @param x Number
* @returns {number}
*/
export declare const parity: (x: number) => number;
/**
* Binary search for the first occurence of stop's MSB in sorted
*/
export declare const binsearch: (data: number[], start: number, stop: number) => number;
export declare const quicksort: (data: number[], start: number, stop: number) => void;
/**
* Helper, calculates the partial linear feedback contributions and puts in MSB
* @param data Input number
* @param item Input index
* @param mask1
* @param mask2
* @returns {void}
*/
export declare const update_contribution: (data: number[], item: number, mask1: number, mask2: number) => void;
/**
* Using a bit of the keystream extend the table of possible lfsr states (complex version)
* @param data Result table
* @param tbl Array of even/odd bits of lfsr
* @param size Size of array
* @param bit Bit of keystream
* @param m1 mask1
* @param m2 mask2
* @param input Value that was fed into lfsr at time keystream was generated
* @returns {number}
*/
export declare const extend_table: (data: number[], tbl: number, size: number, bit: number, m1: number, m2: number, input: number) => number;
/**
* Using a bit of the keystream extend the table of possible lfsr states (simple version)
* @param tbl Array of even/odd bits of lfsr
* @param size Size of array
* @param bit Bit of keystream
* @returns {number}
*/
export declare const extend_table_simple: (tbl: number[], size: number, bit: number) => number;
export declare const oddByteParity: number[];
/**
* Return odd parity of unsigned 8-bit `x`
* @param x Number
* @returns {number}
*/
export declare const oddParity8: (x: number) => number;
/**
* Return even parity of unsigned 8-bit `x`
* @param x Number
* @returns {number}
*/
export declare const evenParity8: (x: number) => number;
/**
* Return even parity of unsigned 32-bit `x`
* @param x Number
* @returns {number}
*/
export declare const evenParity32: (x: number) => number;
/**
* Swaps endianness of given number
* @param x Number to swap
* @returns {number}
*/
export declare const swapendian: (x: number) => number;