From: Ian R. <iro...@us...> - 2006-11-13 12:11:09
|
Update of /cvsroot/perl-openssl/Crypt/OpenSSL/RSA/t In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2193/t Modified Files: rsa.t Log Message: *) Methods which say they can croak when called on a public key now actually croak instead of segfaulting. *) check_key is now documented to not work on public keys; it now croaks instead of segfaulting when called on a public key. *) Add an is_private method. Index: rsa.t =================================================================== RCS file: /cvsroot/perl-openssl/Crypt/OpenSSL/RSA/t/rsa.t,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** rsa.t 11 Nov 2006 07:38:16 -0000 1.8 --- rsa.t 13 Nov 2006 12:11:08 -0000 1.9 *************** *** 5,9 **** use Crypt::OpenSSL::RSA; ! BEGIN { plan tests => 39 + (UNIVERSAL::can("Crypt::OpenSSL::RSA", "use_sha512_hash") ? 3*6 : 0) } sub _Test_Encrypt_And_Decrypt --- 5,9 ---- use Crypt::OpenSSL::RSA; ! BEGIN { plan tests => 45 + (UNIVERSAL::can("Crypt::OpenSSL::RSA", "use_sha512_hash") ? 3*6 : 0) } sub _Test_Encrypt_And_Decrypt *************** *** 44,47 **** --- 44,54 ---- } + sub _check_for_croak + { + my ($code, $expected) = @_; + eval { &$code() }; + ok($@, "/$expected/"); + } + # On platforms without a /dev/random, we need to manually seed. In # real life, the following would stink, but for testing purposes, it *************** *** 86,89 **** --- 93,116 ---- ok($plaintext eq $rsa->decrypt($rsa_pub->encrypt($plaintext))); + ok($rsa_priv->is_private()); + ok(!$rsa_pub->is_private()); + + _check_for_croak + (sub { $rsa_pub->decrypt($rsa_pub->encrypt($plaintext)); }, + "Public keys cannot decrypt"); + + _check_for_croak + (sub { $rsa_pub->check_key(); }, + "Public keys cannot be checked"); + + _check_for_croak + (sub { $rsa_pub->private_encrypt("foo"); }, + "Public keys cannot private_encrypt"); + + _check_for_croak + (sub { $rsa_pub->sign("foo"); }, + "Public keys cannot sign messages"); + + $plaintext .= $plaintext x 5; # check signature algorithms |