|
3 | 3 | #define CHARPAD '=' |
4 | 4 | #define BADCHAR 0xff |
5 | 5 |
|
6 | | -// rfc4648 version of base32 |
7 | | -static const char *e = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567="; |
| 6 | +/* rfc4648 std version of base32 */ |
| 7 | +static const char *std_encode_table = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567="; |
8 | 8 |
|
9 | | -static const char d[256] = { |
| 9 | +static const char std_decode_table[256] = { |
10 | 10 | BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
11 | 11 | BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
12 | 12 | BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
@@ -40,3 +40,44 @@ static const char d[256] = { |
40 | 40 | BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
41 | 41 | BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
42 | 42 | }; |
| 43 | + |
| 44 | + |
| 45 | +/* "Extended Hex Alphabet" version of base32, |
| 46 | + * https://tools.ietf.org/html/rfc4648#section-7 |
| 47 | + */ |
| 48 | +static const char *hex_encode_table = "0123456789ABCDEFGHIJKLMNOPQRSTUV="; |
| 49 | + |
| 50 | +static const char hex_decode_table[256] = { |
| 51 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 52 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 53 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 54 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 55 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 56 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 57 | + 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, |
| 58 | + 0x8, 0x9, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 59 | + BADCHAR, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, |
| 60 | + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, |
| 61 | + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, BADCHAR, |
| 62 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 63 | + BADCHAR, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, |
| 64 | + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, |
| 65 | + 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, BADCHAR, |
| 66 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 67 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 68 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 69 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 70 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 71 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 72 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 73 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 74 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 75 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 76 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 77 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 78 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 79 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 80 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 81 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 82 | + BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, BADCHAR, |
| 83 | +}; |
0 commit comments