SYNOPSIS

  use Convert::Base32;

  $encoded = encode_base32("\x3a\x27\x0f\x93");
  $decoded = decode_base32($encoded);

DESCRIPTION

This module provides functions to convert string from / to Base32 encoding, specified in \s-1RACE\s0 internet-draft. The Base32 encoding is designed to encode non-ASCII characters in DNS-compatible host name parts.

See http://tools.ietf.org/html/draft-ietf-idn-race-03 for more details.

FUNCTIONS

Following functions are provided; like \*(C`MIME::Base64\*(C', they are in @EXPORT array. See Exporter for details.

encode_base32($str)

Encode data by calling the encode_base32() function. This function takes a string of bytes to encode and returns the encoded base32 string.

decode_base32($str)

Decode a base32 string by calling the decode_base32() function. This function takes a string to decode and returns the decoded string. This function might throw the exceptions such as \*(L"Data contains non-base32 characters\*(R", \*(L"Length of data invalid\*(R" and \*(L"Padding bits at the end of output buffer are not all zero\*(R". decode_base32 differs from the specification in that upper case letters are treated as their lower case equivalent rather than producing an error.

AUTHOR

Tatsuhiko Miyagawa <[email protected]>

Eric Brine <[email protected]>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

RELATED TO Convert::Base32…

http://www.ietf.org/internet-drafts/draft-ietf-idn-race-03.txt, MIME::Base64, Convert::RACE.