decodeBigInt function Null safety
- List<
int> bytes
Decode a BigInt from bytes in big-endian encoding. Twos compliment. From pointycastle/src/utils
Implementation
BigInt decodeBigInt(List<int> bytes) {
var negative = bytes.isNotEmpty && bytes[0] & 0x80 == 0x80;
BigInt result;
if (bytes.length == 1) {
result = BigInt.from(bytes[0]);
} else {
result = BigInt.zero;
for (var i = 0; i < bytes.length; i++) {
var item = bytes[bytes.length - i - 1];
result |= (BigInt.from(item) << (8 * i));
}
}
return result != BigInt.zero
? negative
? result.toSigned(result.bitLength)
: result
: BigInt.zero;
}