37 lines
615 B
Dart
37 lines
615 B
Dart
library impl.digest.utils;
|
|
|
|
import 'dart:typed_data';
|
|
|
|
class XofUtils {
|
|
static Uint8List leftEncode(int strLen) {
|
|
var n = 1;
|
|
var v = strLen;
|
|
while ((v >>= 8) != 0) {
|
|
n++;
|
|
}
|
|
var b = Uint8List(n + 1);
|
|
b[0] = n;
|
|
for (var i = 1; i <= n; i++) {
|
|
b[i] = strLen >> (8 * (n - i));
|
|
}
|
|
return b;
|
|
}
|
|
|
|
static Uint8List rightEncode(int strLen) {
|
|
var n = 1;
|
|
var v = strLen;
|
|
while ((v >>= 8) != 0) {
|
|
n++;
|
|
}
|
|
|
|
var b = Uint8List(n + 1);
|
|
|
|
b[n] = n;
|
|
|
|
for (var i = 0; i < n; i++) {
|
|
b[i] = strLen >> (8 * (n - i - 1));
|
|
}
|
|
|
|
return b;
|
|
}
|
|
}
|