bytesToBase32 static method

String bytesToBase32(
  1. Uint8List bytes
)

Implementation

static String bytesToBase32(Uint8List bytes) {
  final buffer = StringBuffer();
  int bufferBits = 0;
  int bufferValue = 0;

  for (final byte in bytes) {
    bufferValue = (bufferValue << 8) | byte;
    bufferBits += 8;

    while (bufferBits >= 5) {
      final index = (bufferValue >> (bufferBits - 5)) & 0x1F;
      bufferBits -= 5;
      buffer.write(_base32Alphabet[index]);
    }
  }

  if (bufferBits > 0) {
    final index = (bufferValue << (5 - bufferBits)) & 0x1F;
    buffer.write(_base32Alphabet[index]);
  }

  return buffer.toString();
}