NAME Mail::Exchange::CRC - implement the CRC algorithm used in RTF compression and the named property to index PPS streams

SYNOPSIS

    use Mail::Exchange::CRC;

    my $crc=Mail::Exchange::CRC::new();
    while (<FILE>) {
	    $crc->append($_);
    }
    print $crc->value;

    print Mail::Exchange::CRC::crc($string);

DESCRIPTION

Mail::Exchange::CRC can be used in function mode or in object oriented mode. In function mode, you pass a string and get back the crc immediately, while in object mode, you initialize an object via new, then append data to the object as needed, and fetch the resulting value at the end.

The crc algorithm is documented in [MS-OXRTFCP], and happens to be the CRC-32 algorithm that is used in a lot of different places as well, for example in the the IEEE 802.3 Ethernet CRC specification.

new()

$crc=Mail::Exchange::CRC::new([string]) - initialize a new CRC value

Initialize a new CRC calculator, and calculate the CRC of string if provided.

append()

$crc->append(string)

Appends another string to a CRC, calculating the CRC of the two strings concatenated to each other

The following are supposed to be equal:

$crc1=Mail::Exchange::CRC::new("hello world");


$crc2=Mail::Exchange::CRC::new("hello");
$crc2->append(" world");

value()

$crcval=$crc->value()

Returns the calculated value of the CRC.

crc()

$crc=Mail::Exchange::CRC::crc($string)

Calculates the CRC of a string in an easy-to-use, non-object-oriented way.