diff --git a/programs/test/ssl_cert_test.c b/programs/test/ssl_cert_test.c
index 74d2356..7ec3370 100644
--- a/programs/test/ssl_cert_test.c
+++ b/programs/test/ssl_cert_test.c
@@ -40,10 +40,21 @@
 	"cert_sha512.crt"
 };
 
+char *client_private_keys[MAX_CLIENT_CERTS] =
+{
+	"client1.key",
+	"client2.key",
+	"cert_sha224.key",
+	"cert_sha256.key",
+	"cert_sha384.key",
+	"cert_sha512.key"
+};
+
 int main( void )
 {
     int ret, i;
     x509_cert cacert, clicert;
+    rsa_context	rsa;
 
     /*
      * 1.1. Load the trusted CA
@@ -69,7 +80,7 @@
     for( i = 0; i < MAX_CLIENT_CERTS; i++ )
     {
         /*
-         * 1.2. Load own certificate and private key
+         * 1.2. Load own certificate
          */
 	char	name[512];
 	snprintf(name, 512, "ssl/test-ca/%s", client_certificates[i]);
@@ -89,9 +100,9 @@
 	printf( " ok\n" );
 
 	/*
-	 * 1.3. Verify certificate validity
+	 * 1.3. Verify certificate validity with CA certificate
 	 */
-	printf( "  . Verify the client certificate..." );
+	printf( "  . Verify the client certificate with CA certificate..." );
 	fflush( stdout );
 
 	int flags;
@@ -104,6 +115,54 @@
 	}
 
 	printf( " ok\n" );
+
+        /*
+         * 1.4. Load own private key
+         */
+	snprintf(name, 512, "ssl/test-ca/%s", client_private_keys[i]);
+
+        printf( "  . Loading the client private key %s...", name );
+        fflush( stdout );
+
+	memset( &rsa, 0, sizeof( rsa_context ) );
+
+	ret = x509parse_keyfile( &rsa, name, NULL );
+	if( ret != 0 )
+	{
+		printf( " failed\n  !  x509parse_key returned %d\n\n", ret );
+		goto exit;
+	}
+
+	printf( " ok\n" );
+
+	/*
+	 * 1.4. Verify certificate validity with private key
+	 */
+	printf( "  . Verify the client certificate with private key..." );
+	fflush( stdout );
+
+	ret = mpi_cmp_mpi(&rsa.N, &clicert.rsa.N);
+	if( ret != 0 )
+	{
+		printf( " failed\n  !  mpi_cmp_mpi for N returned %d\n\n", ret );
+		goto exit;
+	}
+
+	ret = mpi_cmp_mpi(&rsa.E, &clicert.rsa.E);
+	if( ret != 0 )
+	{
+		printf( " failed\n  !  mpi_cmp_mpi for E returned %d\n\n", ret );
+		goto exit;
+	}
+
+	ret = rsa_check_privkey( &rsa );
+	if( ret != 0 )
+	{
+		printf( " failed\n  !  rsa_check_privkey returned %d\n\n", ret );
+		goto exit;
+	}
+
+	printf( " ok\n" );
     }
 
 exit:
