UNPKG

@li0ard/crapto1_ts

Version:
86 lines (85 loc) 2.71 kB
/** * 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;