Crypt::OpenPGP::Words - Create English-word encodings


Crypt::OpenPGP::Words - Create English-word encodings


    use Crypt::OpenPGP::Words;
    my @words = Crypt::OpenPGP::Words->encode( $cert->fingerprint );


Crypt::OpenPGP::Words provides routines to convert either octet or hexadecimal strings into a list of English words, using the same algorithm and biometric word lists as used in PGP (see AUTHOR & COPYRIGHTS for source of word lists).

In PGP this is often used for creating memorable fingerprints, the idea being that it is easier to associate a list of words with one's key than a string of hex digits. See the fingerprint_words method in Crypt::OpenPGP::Certificate for an interface to word fingerprints.


Crypt::OpenPGP::Words->encode( $octet_str )

Given an octet string $octet_str, encodes that string into a list of English words.

The encoding is performed by splitting the string into octets; the list of octets is then iterated over. There are two lists of words, 256 words each. Two-syllable words are used for encoding odd iterations through the loop; three-syllable words for even iterations. The word list is formed by treating each octet as an index into the appropriate word list (two- or three-syllable), then adding the word at that index to the list.

Returns the list of words.

Crypt::OpenPGP::Words->encode_hex( $hex_str )

Performs the exact same encoding as encode; $hex_str, a string of hexadecimal digits, is first transformed into a string of octets, then passed to encode.

Returns the list of words.


Based on by Mike Dillon. Biometric word lists as defined in manual for PGPFreeware for Windows 6.5.1, Appendix D

Please see the Crypt::OpenPGP manpage for author, copyright, and license information.

 Crypt::OpenPGP::Words - Create English-word encodings