extract-base-iterator
Version:
Base iterator for extract iterators like tar-iterator and zip-iterator
46 lines (45 loc) • 1.6 kB
TypeScript
/**
* CRC32 calculation for archive formats
*
* Uses IEEE polynomial 0xEDB88320 (same as ZIP, 7z, PNG, gzip, etc.)
* All bit operations (>>>, ^, &) work correctly in Node 0.8
*
* This is the standard CRC-32 algorithm used by:
* - ZIP/PKZIP
* - 7-Zip
* - PNG
* - gzip
* - Ethernet
*/
/**
* Calculate CRC32 of a buffer
* @param buf - Buffer to calculate CRC32 for
* @param initial - Optional initial CRC value (for streaming calculation)
* @returns CRC32 value as unsigned 32-bit integer
*/
export declare function crc32(buf: Buffer, initial?: number): number;
/**
* Calculate CRC32 of a buffer region
* @param buf - Buffer containing data
* @param offset - Start offset in buffer
* @param length - Number of bytes to process
* @param initial - Optional initial CRC value
* @returns CRC32 value as unsigned 32-bit integer
*/
export declare function crc32Region(buf: Buffer, offset: number, length: number, initial?: number): number;
/**
* Verify CRC32 matches expected value
* @param buf - Buffer to verify
* @param expected - Expected CRC32 value
* @returns true if CRC matches, false otherwise
*/
export declare function verifyCrc32(buf: Buffer, expected: number): boolean;
/**
* Verify CRC32 of a buffer region matches expected value
* @param buf - Buffer containing data
* @param offset - Start offset in buffer
* @param length - Number of bytes to verify
* @param expected - Expected CRC32 value
* @returns true if CRC matches, false otherwise
*/
export declare function verifyCrc32Region(buf: Buffer, offset: number, length: number, expected: number): boolean;