Convert binary octets into ascii armoured messages.
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();
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.
Constructor.
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:
An identification string embedded in head and tail strings.
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 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.
A boolean parameter that forces armour() to compress the message body.
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.
Returns the error message set by unarmour() on failure.
Vipul Ved Prakash, <[email protected]>
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.
MIME::Base64\|(3), Compress::Zlib\|(3), Digest::MD5\|(3)