base64UrlCharTo6Bits function
Implementation
List<int> base64UrlCharTo6Bits(String base64UrlChar) {
if (base64UrlChar.length != 1) {
throw ArgumentError('Invalid base64Url character: ' + base64UrlChar);
}
// Define the base64URL character set
const base64UrlCharacterSet =
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
// Find the index of the input character in the base64URL character set
final index = base64UrlCharacterSet.indexOf(base64UrlChar);
if (index == -1) {
throw ArgumentError('Invalid base64Url character: ' + base64UrlChar);
}
// Convert the index to a 6-bit binary string
final binaryString = index.toRadixString(2).padLeft(6, '0');
// Convert the binary string to an array of bits
final bits = binaryString.split("").map((e) => int.parse(e)).toList();
return bits;
}