UNPKG

asn1-ts

Version:

ASN.1 encoding and decoding, including BER, CER, and DER.

17 lines (16 loc) 465 B
import { FALSE_BIT } from "../macros.mjs"; export default function packBits(bits) { const bytesNeeded = Math.ceil(bits.length / 8); const ret = new Uint8Array(bytesNeeded); let byte = -1; for (let bit = 0; bit < bits.length; bit++) { const bitMod8 = bit % 8; if (bitMod8 === 0) { byte++; } if (bits[bit] !== FALSE_BIT) { ret[byte] |= (0x01 << (7 - bitMod8)); } } return ret; }