SYNOPSIS

    my $converter = new Convert::ASCII::Armour;

    my $message   = $converter->armour(
                        Object   => "FOO RECORD",
                        Headers  => {
                                      Table   => "FooBar",
                                      Version => "1.23",
                                    },
                        Content  => {
                                      Key  => "0x8738FA7382",
                                      Name => "Zoya Hall",
                                      Pic  => "....",  # gif
                                    },
                        Compress => 1,
                    );

    print $message;


    -----BEGIN COMPRESSED FOO RECORD-----
    Version: 1.23
    Table: FooBar

    eJwzZzA0Z/BNLS5OTE8NycgsVgCiRIVciIAJg6EJg0tiSaqhsYJvYlFy...
    XnpOZl5qYlJySmpaekZmVnZObl5+QWFRcUlpWXlFZRWXAk7g6OTs4urm...
    Fh4VGaWAR5ehkbGJqZm5hSUeNXWKDsoGcWpaGpq68bba0dWxtTVmDOYM...
    NzuZ
    =MxpZvjkrv5XyhkVCuXmsBQ==
    -----END COMPRESSED FOO RECORD-----


    my $decoded   = $converter->unarmour( $message )
                     || die $converter->errstr();

DESCRIPTION

This module converts hashes of binary octets into \s-1ASCII\s0 messages suitable for transfer over 6-bit clean transport channels. The encoded \s-1ASCII\s0 resembles \s-1PGP\s0's armoured messages, but are in no way compatible with \s-1PGP\s0.

METHODS

\fB\fP\f(BInew()\fP\fB\fP

Constructor.

\fB\fP\f(BIarmour()\fP\fB\fP

Converts a hash of binary octets into an \s-1ASCII\s0 encoded message. The encoded message has 4 parts: head and tail strings that act as identifiers and delimiters, a cluster of headers at top of the message, Base64 encoded message body and a Base64 encoded \s-1MD5\s0 digest of the message body. armour() takes a hash as argument with following keys:

Object

An identification string embedded in head and tail strings.

Content

Content is a hashref that contains the binary octets to be encoded. This hash is serialized, compressed (if specified) and encoded into \s-1ASCII\s0 with MIME::Base64. The result is the body of the encoded message.

Headers

Headers is a hashref that contains \s-1ASCII\s0 headers that are placed at top of the encoded message. Headers are encoded as \s-1RFC822\s0 headers.

Compress

A boolean parameter that forces armour() to compress the message body.

\fB\fP\f(BIunarmour()\fP\fB\fP

Decodes an armoured \s-1ASCII\s0 message into the hash provided as argument to armour(). The hash contains Content, Object, and Headers. unarmour() performs several consistency checks and returns a non-true value on failure.

\fB\fP\f(BIerrstr()\fP\fB\fP

Returns the error message set by unarmour() on failure.

AUTHOR

Vipul Ved Prakash, <[email protected]>

LICENSE

Copyright (c) 2001, Vipul Ved Prakash. All rights reserved. This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

RELATED TO Convert::ASCII::Armour…

MIME::Base64\|(3), Compress::Zlib\|(3), Digest::MD5\|(3)