function decodeLengthValue()

in src/asn1.ts [249:266]


function decodeLengthValue(blockOfLengthValues: Buffer) {
  if (!(blockOfLengthValues[0] & 0b10000000)) {
    return {
      length: blockOfLengthValues[0],
      firstByteOffset: 1,
      lastByteOffset: 1 + blockOfLengthValues[0],
    };
  }
  const nrLengthOctets = blockOfLengthValues[0] & 0b01111111;
  const length = Buffer.from(
    blockOfLengthValues.slice(1, 1 + 1 + nrLengthOctets)
  ).readUIntBE(0, nrLengthOctets);
  return {
    length,
    firstByteOffset: 1 + nrLengthOctets,
    lastByteOffset: 1 + nrLengthOctets + length,
  };
}