NAME¶
base32::core - Expanding basic base32 maps
SYNOPSIS¶
package require
Tcl 8.4
package require
base32::core ?0.1?
::base32::core::define map forwvar backwvar
ivar
::base32::core::valid string pattern mvar
DESCRIPTION¶
This package provides generic commands for the construction of full base32
mappings from a basic mapping listing just the codes and associated
characters. The full mappings, regular and inverse, created here map to and
from bit sequences, and also handle the partial mappings at the end of a
string.
This is in essence an internal package to be used by implementors of a base32
en- and decoder. A regular user has no need of this package at all.
API¶
- ::base32::core::define map forwvar backwvar
ivar
- This command computes full forward and backward (inverse) mappings from
the basic map and stores them in the variables named by
forwvar and backwvar resp. It also constructs a regexp
pattern for the detection of invalid characters in supposedly base32
encoded input and stores it in the variable named by ivar.
- ::base32::core::valid string pattern mvar
- This command checks if the input string is a valid base32 encoded
string, based on the pattern of invalid characters as generated by
::base32::core::define, and some other general rules.
The result of the command is a boolean flag. Its value is True for a
valid string, and False otherwise. In the latter case an
error message describing the problem with the input is stored into the
variable named by mvar. The variable is not touched if the input
was found to be valid.
The rules checked by the command, beyond rejection of bad characters,
are:
- [1]
- The length of the input is not a multiple of eight,
- [2]
- The padding appears not at the end of input, but in the middle,
- [3]
- The padding has not of length six, four, three, or one characters,
BUGS, IDEAS, FEEDBACK¶
This document, and the package it describes, will undoubtedly contain bugs and
other problems. Please report such in the category
base32 of the
Tcllib Trackers [
http://core.tcl.tk/tcllib/reportlist]. Please also
report any ideas for enhancements you may have for either package and/or
documentation.
KEYWORDS¶
base32
CATEGORY¶
Text processing
COPYRIGHT¶
Public domain