diff --git a/library/x509parse.c b/library/x509parse.c
index d606615..f5e8688 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -4270,7 +4270,6 @@
 #if defined(POLARSSL_CERTS_C) && defined(POLARSSL_MD5_C)
     int ret;
     int flags;
-    size_t i, j;
     x509_cert cacert;
     x509_cert clicert;
     pk_context pkey;
@@ -4305,23 +4304,25 @@
         return( ret );
     }
 
+#if defined(POLARSSL_MD5_C) && defined(POLARSSL_CIPHER_MODE_CBC) &&         \
+    defined(POLARSSL_DES_C) && defined(POLARSSL_AES_C)
     if( verbose != 0 )
         printf( "passed\n  X.509 private key load: " );
 
-    i = strlen( test_ca_key );
-    j = strlen( test_ca_pwd );
-
     pk_init( &pkey );
 
     if( ( ret = x509parse_key( &pkey,
-                    (const unsigned char *) test_ca_key, i,
-                    (const unsigned char *) test_ca_pwd, j ) ) != 0 )
+                               (const unsigned char *) test_ca_key,
+                               strlen( test_ca_key ),
+                               (const unsigned char *) test_ca_pwd,
+                               strlen( test_ca_pwd ) ) ) != 0 )
     {
         if( verbose != 0 )
             printf( "failed\n" );
 
         return( ret );
     }
+#endif
 
     if( verbose != 0 )
         printf( "passed\n  X.509 signature verify: ");
@@ -4341,10 +4342,8 @@
     if( verbose != 0 )
         printf( "passed\n  X.509 DHM parameter load: " );
 
-    i = strlen( test_dhm_params );
-    j = strlen( test_ca_pwd );
-
-    if( ( ret = x509parse_dhm( &dhm, (const unsigned char *) test_dhm_params, i ) ) != 0 )
+    if( ( ret = x509parse_dhm( &dhm, (const unsigned char *) test_dhm_params,
+                                     strlen( test_dhm_params ) ) ) != 0 )
     {
         if( verbose != 0 )
             printf( "failed\n" );
