use strict;
use Test::More;
eval "use Crypt::OpenPGP::CFB; use Crypt::DES_EDE3";
if ( $@ ) {
plan skip_all => 'test requires DES-EDE3 installed';
}
plan tests => 5;
my $KEY = pack "H64", ( "0123456789ABCDEF" x 4 );
my( $des1, $des2 );
$des1 = Crypt::DES_EDE3->new( $KEY );
isa_ok $des1, 'Crypt::DES_EDE3';
is $des1->keysize, 24, 'keysize is 24 bytes';
$des2 = Crypt::DES_EDE3->new( $KEY );
isa_ok $des2, 'Crypt::DES_EDE3';
my( $enc, $dec );
my $check_bytes = _checkbytes();
$enc = $des1->encrypt( $check_bytes );
ok $enc, 'ciphertext is defined';
$dec = $des2->decrypt( $enc );
is $dec, $check_bytes, 'decrypted matches plaintext';
sub _checkbytes {
my( $check1, $check2 ) = ( chr int rand 255, chr int rand 255 );
return "$check1$check2$check1$check2\0\0\0\0";
}