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,
};
}