diff --git a/t/format.t b/t/format.t index ec3cbda..2973893 100644 --- a/t/format.t +++ b/t/format.t @@ -1,5 +1,5 @@ use strict; -use Test; +use Test::More; use Crypt::OpenSSL::RSA; @@ -65,26 +65,26 @@ EOF my ( $private_key, $public_key, $private_key2 ); -ok( $private_key = Crypt::OpenSSL::RSA->new_private_key($PRIVATE_KEY_STRING) ); -ok( $PRIVATE_KEY_STRING eq $private_key->get_private_key_string() ); -ok( $PUBLIC_KEY_PKCS1_STRING eq $private_key->get_public_key_string() ); -ok( $PUBLIC_KEY_X509_STRING eq $private_key->get_public_key_x509_string() ); +ok( $private_key = Crypt::OpenSSL::RSA->new_private_key($PRIVATE_KEY_STRING), "load private key from string" ); +is( $private_key->get_private_key_string(), $PRIVATE_KEY_STRING, "private key round-trips" ); +is( $private_key->get_public_key_string(), $PUBLIC_KEY_PKCS1_STRING, "PKCS1 public key matches expected" ); +is( $private_key->get_public_key_x509_string(), $PUBLIC_KEY_X509_STRING, "X509 public key matches expected" ); -ok( $public_key = Crypt::OpenSSL::RSA->new_public_key($PUBLIC_KEY_PKCS1_STRING) ); -ok( $PUBLIC_KEY_PKCS1_STRING eq $public_key->get_public_key_string() ); -ok( $PUBLIC_KEY_X509_STRING eq $public_key->get_public_key_x509_string() ); +ok( $public_key = Crypt::OpenSSL::RSA->new_public_key($PUBLIC_KEY_PKCS1_STRING), "load PKCS1 public key" ); +is( $public_key->get_public_key_string(), $PUBLIC_KEY_PKCS1_STRING, "PKCS1 public key round-trips" ); +is( $public_key->get_public_key_x509_string(), $PUBLIC_KEY_X509_STRING, "PKCS1 key exports to X509 correctly" ); -ok( $public_key = Crypt::OpenSSL::RSA->new_public_key($PUBLIC_KEY_X509_STRING) ); -ok( $PUBLIC_KEY_PKCS1_STRING eq $public_key->get_public_key_string() ); -ok( $PUBLIC_KEY_X509_STRING eq $public_key->get_public_key_x509_string() ); +ok( $public_key = Crypt::OpenSSL::RSA->new_public_key($PUBLIC_KEY_X509_STRING), "load X509 public key" ); +is( $public_key->get_public_key_string(), $PUBLIC_KEY_PKCS1_STRING, "X509 key exports to PKCS1 correctly" ); +is( $public_key->get_public_key_x509_string(), $PUBLIC_KEY_X509_STRING, "X509 public key round-trips" ); my $passphase = '123456'; -ok( $private_key = Crypt::OpenSSL::RSA->new_private_key( $ENCRYPT_PRIVATE_KEY_STRING, $passphase ) ); -ok( $DECRYPT_PRIVATE_KEY_STRING eq $private_key->get_private_key_string() ); -ok( $private_key = Crypt::OpenSSL::RSA->new_private_key($DECRYPT_PRIVATE_KEY_STRING) ); -ok( $private_key2 = Crypt::OpenSSL::RSA->new_private_key( $private_key->get_private_key_string($passphase), $passphase ) ); -ok( $DECRYPT_PRIVATE_KEY_STRING eq $private_key2->get_private_key_string() ); -ok( $private_key2 = Crypt::OpenSSL::RSA->new_private_key( $private_key->get_private_key_string( $passphase, 'des3' ), $passphase ) ); -ok( $DECRYPT_PRIVATE_KEY_STRING eq $private_key2->get_private_key_string() ); -ok( $private_key2 = Crypt::OpenSSL::RSA->new_private_key( $private_key->get_private_key_string( $passphase, 'aes-128-cbc' ), $passphase ) ); -ok( $DECRYPT_PRIVATE_KEY_STRING eq $private_key2->get_private_key_string() ); +ok( $private_key = Crypt::OpenSSL::RSA->new_private_key( $ENCRYPT_PRIVATE_KEY_STRING, $passphase ), "load encrypted private key" ); +is( $private_key->get_private_key_string(), $DECRYPT_PRIVATE_KEY_STRING, "encrypted key decrypts to expected private key" ); +ok( $private_key = Crypt::OpenSSL::RSA->new_private_key($DECRYPT_PRIVATE_KEY_STRING), "load decrypted private key" ); +ok( $private_key2 = Crypt::OpenSSL::RSA->new_private_key( $private_key->get_private_key_string($passphase), $passphase ), "re-encrypt and reload with passphrase" ); +is( $private_key2->get_private_key_string(), $DECRYPT_PRIVATE_KEY_STRING, "re-encrypted key round-trips" ); +ok( $private_key2 = Crypt::OpenSSL::RSA->new_private_key( $private_key->get_private_key_string( $passphase, 'des3' ), $passphase ), "encrypt with des3 and reload" ); +is( $private_key2->get_private_key_string(), $DECRYPT_PRIVATE_KEY_STRING, "des3-encrypted key round-trips" ); +ok( $private_key2 = Crypt::OpenSSL::RSA->new_private_key( $private_key->get_private_key_string( $passphase, 'aes-128-cbc' ), $passphase ), "encrypt with aes-128-cbc and reload" ); +is( $private_key2->get_private_key_string(), $DECRYPT_PRIVATE_KEY_STRING, "aes-128-cbc-encrypted key round-trips" ); diff --git a/t/padding.t b/t/padding.t index 092f50c..c04e059 100644 --- a/t/padding.t +++ b/t/padding.t @@ -24,12 +24,12 @@ sub _Test_Encrypt_And_Decrypt { ); ok( $ciphertext = $p_rsa->encrypt($plaintext), "Padding method $padding is valid for encrypting with $hash" ); ok( $decoded_text = $p_rsa->decrypt($ciphertext), "Padding method $padding is valid for decrypting with $hash" ); - ok( $decoded_text eq $plaintext ); + is( $decoded_text, $plaintext, "decrypted text matches plaintext with $padding/$hash" ); if ($p_check_private_encrypt) { ok( $ciphertext = $p_rsa->private_encrypt($plaintext), "Padding method $padding is valid for private_encrypt with $hash" ); ok( $decoded_text = $p_rsa->public_decrypt($ciphertext), "Padding method $padding is valid for private_decrypt with $hash" ); - ok( $decoded_text eq $plaintext ); + is( $decoded_text, $plaintext, "public_decrypt(private_encrypt(plaintext)) round-trips with $padding/$hash" ); } } @@ -67,17 +67,17 @@ Crypt::OpenSSL::Random::random_seed("OpenSSL needs at least 32 bytes."); Crypt::OpenSSL::RSA->import_random_seed(); my $rsa = Crypt::OpenSSL::RSA->generate_key(2048); -ok( $rsa->size() * 8 == 2048); +is( $rsa->size() * 8, 2048, "2048-bit key has correct size" ); ok( $rsa->check_key() ); my $private_key_string = $rsa->get_private_key_string(); my $public_key_string = $rsa->get_public_key_string(); -ok( $private_key_string and $public_key_string ); +ok( $private_key_string and $public_key_string, "key strings are non-empty" ); my $plaintext = "The quick brown fox jumped over the lazy dog"; my $rsa_priv = Crypt::OpenSSL::RSA->new_private_key($private_key_string); -ok( $plaintext eq $rsa_priv->decrypt( $rsa_priv->encrypt($plaintext) ) ); +is( $rsa_priv->decrypt( $rsa_priv->encrypt($plaintext) ), $plaintext, "private key round-trips encrypt/decrypt" ); my $rsa_pub = Crypt::OpenSSL::RSA->new_public_key($public_key_string);