base32alpha2vals   [plain text]


#!/usr/bin/perl

# Quick & dirty, gennerate the Base32XVals for a given alphabet

use strict qw(vars);

if (1 != @ARGV) {
	die "usage: $0 base32alphabet\n";
}
my $alphabet = $ARGV[0];
if (32 != length($alphabet)) {
	die "alphabet needs exactly 32 charactors";
}

my @vals = (0xff) x 256;
$vals[ord('=')] = 0xee;

for(my $i = 0; $i < length($alphabet); $i++) {
	my $ch = substr($alphabet, $i, 1);
	my $v = ord($ch);
	print "$i: $ch $v\n";

	$vals[$v] = $i;
}

for(my $i = 0; $i < @vals; $i++) {
	printf "0x%02x, ", $vals[$i];
	print "\n" unless (($i-2) % 11);
}