123456789101112131415161718192021222324252627282930313233 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.crc32cToString = exports.crc32c = void 0;
- function makeCRCTable(poly) {
- let c;
- const crcTable = [];
- for (let n = 0; n < 256; n++) {
- c = n;
- for (let k = 0; k < 8; k++) {
- c = c & 1 ? poly ^ (c >>> 1) : c >>> 1;
- }
- crcTable[n] = c;
- }
- return crcTable;
- }
- const CRC32C_TABLE = makeCRCTable(0x82f63b78);
- function crc32c(bytes) {
- let crc = 0 ^ -1;
- for (let i = 0; i < bytes.length; i++) {
- const byte = bytes[i];
- const nLookupIndex = (crc ^ byte) & 0xff;
- crc = (crc >>> 8) ^ CRC32C_TABLE[nLookupIndex];
- }
- return (crc ^ -1) >>> 0;
- }
- exports.crc32c = crc32c;
- function crc32cToString(crc32cValue) {
- const value = typeof crc32cValue === "string" ? Number.parseInt(crc32cValue) : crc32cValue;
- const buffer = Buffer.alloc(4);
- buffer.writeUint32BE(value);
- return buffer.toString("base64");
- }
- exports.crc32cToString = crc32cToString;
|