Fixed const correctness issues in programs and tests
diff --git a/programs/ssl/ssl_client1.c b/programs/ssl/ssl_client1.c
index 78ad43e..a902376 100644
--- a/programs/ssl/ssl_client1.c
+++ b/programs/ssl/ssl_client1.c
@@ -74,7 +74,7 @@
 {
     int ret, len, server_fd;
     unsigned char buf[1024];
-    char *pers = "ssl_client1";
+    const char *pers = "ssl_client1";
 
     entropy_context entropy;
     ctr_drbg_context ctr_drbg;
@@ -95,7 +95,8 @@
 
     entropy_init( &entropy );
     if( ( ret = ctr_drbg_init( &ctr_drbg, entropy_func, &entropy,
-                               (unsigned char *) pers, strlen( pers ) ) ) != 0 )
+                               (const unsigned char *) pers,
+                               strlen( pers ) ) ) != 0 )
     {
         printf( " failed\n  ! ctr_drbg_init returned %d\n", ret );
         goto exit;
@@ -110,7 +111,7 @@
     fflush( stdout );
 
 #if defined(POLARSSL_CERTS_C)
-    ret = x509parse_crt( &cacert, (unsigned char *) test_ca_crt,
+    ret = x509parse_crt( &cacert, (const unsigned char *) test_ca_crt,
                          strlen( test_ca_crt ) );
 #else
     ret = 1;
diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c
index 89820a3..2247d5c 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -63,14 +63,14 @@
  */
 struct options
 {
-    char *server_name;          /* hostname of the server (client only)     */
+    const char *server_name;    /* hostname of the server (client only)     */
     int server_port;            /* port on which the ssl service runs       */
     int debug_level;            /* level of debugging                       */
-    char *request_page;         /* page on server to request                */
-    char *ca_file;              /* the file with the CA certificate(s)      */
-    char *ca_path;              /* the path with the CA certificate(s) reside */
-    char *crt_file;             /* the file with the client certificate     */
-    char *key_file;             /* the file with the client key             */
+    const char *request_page;   /* page on server to request                */
+    const char *ca_file;        /* the file with the CA certificate(s)      */
+    const char *ca_path;        /* the path with the CA certificate(s) reside */
+    const char *crt_file;       /* the file with the client certificate     */
+    const char *key_file;       /* the file with the client key             */
     int force_ciphersuite[2];   /* protocol/ciphersuite to use, or all      */
     int renegotiation;          /* enable / disable renegotiation           */
     int allow_legacy;           /* allow legacy renegotiation               */
@@ -182,7 +182,7 @@
 {
     int ret = 0, len, server_fd;
     unsigned char buf[1024];
-    char *pers = "ssl_client2";
+    const char *pers = "ssl_client2";
 
     entropy_context entropy;
     ctr_drbg_context ctr_drbg;
@@ -365,7 +365,8 @@
 
     entropy_init( &entropy );
     if( ( ret = ctr_drbg_init( &ctr_drbg, entropy_func, &entropy,
-                               (unsigned char *) pers, strlen( pers ) ) ) != 0 )
+                               (const unsigned char *) pers,
+                               strlen( pers ) ) ) != 0 )
     {
         printf( " failed\n  ! ctr_drbg_init returned -0x%x\n", -ret );
         goto exit;
@@ -387,7 +388,7 @@
     else 
 #endif
 #if defined(POLARSSL_CERTS_C)
-        ret = x509parse_crt( &cacert, (unsigned char *) test_ca_crt,
+        ret = x509parse_crt( &cacert, (const unsigned char *) test_ca_crt,
                 strlen( test_ca_crt ) );
 #else
     {
@@ -417,7 +418,7 @@
     else 
 #endif
 #if defined(POLARSSL_CERTS_C)
-        ret = x509parse_crt( &clicert, (unsigned char *) test_cli_crt,
+        ret = x509parse_crt( &clicert, (const unsigned char *) test_cli_crt,
                 strlen( test_cli_crt ) );
 #else
     {
@@ -437,7 +438,7 @@
     else
 #endif
 #if defined(POLARSSL_CERTS_C)
-        ret = x509parse_key( &rsa, (unsigned char *) test_cli_key,
+        ret = x509parse_key( &rsa, (const unsigned char *) test_cli_key,
                 strlen( test_cli_key ), NULL, 0 );
 #else
     {
diff --git a/programs/ssl/ssl_fork_server.c b/programs/ssl/ssl_fork_server.c
index 0242770..9e30451 100644
--- a/programs/ssl/ssl_fork_server.c
+++ b/programs/ssl/ssl_fork_server.c
@@ -96,7 +96,7 @@
     int listen_fd;
     int client_fd;
     unsigned char buf[1024];
-    char *pers = "ssl_fork_server";
+    const char *pers = "ssl_fork_server";
 
     entropy_context entropy;
     ctr_drbg_context ctr_drbg;
@@ -117,7 +117,8 @@
 
     entropy_init( &entropy );
     if( ( ret = ctr_drbg_init( &ctr_drbg, entropy_func, &entropy,
-                    (unsigned char *) pers, strlen( pers ) ) ) != 0 )
+                               (const unsigned char *) pers,
+                               strlen( pers ) ) ) != 0 )
     {
         printf( " failed\n  ! ctr_drbg_init returned %d\n", ret );
         goto exit;
@@ -138,7 +139,7 @@
      * Instead, you may want to use x509parse_crtfile() to read the
      * server and CA certificates, as well as x509parse_keyfile().
      */
-    ret = x509parse_crt( &srvcert, (unsigned char *) test_srv_crt,
+    ret = x509parse_crt( &srvcert, (const unsigned char *) test_srv_crt,
                          strlen( test_srv_crt ) );
     if( ret != 0 )
     {
@@ -146,7 +147,7 @@
         goto exit;
     }
 
-    ret = x509parse_crt( &srvcert, (unsigned char *) test_ca_crt,
+    ret = x509parse_crt( &srvcert, (const unsigned char *) test_ca_crt,
                          strlen( test_ca_crt ) );
     if( ret != 0 )
     {
@@ -155,7 +156,7 @@
     }
 
     rsa_init( &rsa, RSA_PKCS_V15, 0 );
-    ret =  x509parse_key( &rsa, (unsigned char *) test_srv_key,
+    ret =  x509parse_key( &rsa, (const unsigned char *) test_srv_key,
                           strlen( test_srv_key ), NULL, 0 );
     if( ret != 0 )
     {
@@ -218,7 +219,8 @@
         if( pid != 0 )
         {
             if( ( ret = ctr_drbg_reseed( &ctr_drbg,
-                                         (unsigned char* ) "parent", 6 ) ) != 0 )
+                                         (const unsigned char *) "parent",
+                                         6 ) ) != 0 )
             {
                 printf( " failed\n  ! ctr_drbg_reseed returned %d\n", ret );
                 goto exit;
@@ -237,7 +239,8 @@
         fflush( stdout );
 
         if( ( ret = ctr_drbg_reseed( &ctr_drbg,
-                                     (unsigned char *) "child", 5 ) ) != 0 )
+                                     (const unsigned char *) "child",
+                                     5 ) ) != 0 )
         {
             printf( " failed\n  ! ctr_drbg_reseed returned %d\n", ret );
             goto exit;
diff --git a/programs/ssl/ssl_mail_client.c b/programs/ssl/ssl_mail_client.c
index 4eb49e2..86b3548 100644
--- a/programs/ssl/ssl_mail_client.c
+++ b/programs/ssl/ssl_mail_client.c
@@ -77,18 +77,18 @@
  */
 struct options
 {
-    char *server_name;          /* hostname of the server (client only)     */
+    const char *server_name;    /* hostname of the server (client only)     */
     int server_port;            /* port on which the ssl service runs       */
     int debug_level;            /* level of debugging                       */
     int authentication;         /* if authentication is required            */
     int mode;                   /* SSL/TLS (0) or STARTTLS (1)              */
-    char *user_name;            /* username to use for authentication       */
-    char *user_pwd;             /* password to use for authentication       */
-    char *mail_from;            /* E-Mail address to use as sender          */
-    char *mail_to;              /* E-Mail address to use as recipient       */
-    char *ca_file;              /* the file with the CA certificate(s)      */
-    char *crt_file;             /* the file with the client certificate     */
-    char *key_file;             /* the file with the client key             */
+    const char *user_name;      /* username to use for authentication       */
+    const char *user_pwd;       /* password to use for authentication       */
+    const char *mail_from;      /* E-Mail address to use as sender          */
+    const char *mail_to;        /* E-Mail address to use as recipient       */
+    const char *ca_file;        /* the file with the CA certificate(s)      */
+    const char *crt_file;       /* the file with the client certificate     */
+    const char *key_file;       /* the file with the client key             */
     int force_ciphersuite[2];   /* protocol/ciphersuite to use, or all      */
 } opt;
 
@@ -344,7 +344,7 @@
     unsigned char base[1024];
 #endif
     char hostname[32];
-    char *pers = "ssl_mail_client";
+    const char *pers = "ssl_mail_client";
 
     entropy_context entropy;
     ctr_drbg_context ctr_drbg;
@@ -464,7 +464,8 @@
 
     entropy_init( &entropy );
     if( ( ret = ctr_drbg_init( &ctr_drbg, entropy_func, &entropy,
-                               (unsigned char *) pers, strlen( pers ) ) ) != 0 )
+                               (const unsigned char *) pers,
+                               strlen( pers ) ) ) != 0 )
     {
         printf( " failed\n  ! ctr_drbg_init returned %d\n", ret );
         goto exit;
@@ -484,7 +485,7 @@
     else
 #endif
 #if defined(POLARSSL_CERTS_C)
-        ret = x509parse_crt( &cacert, (unsigned char *) test_ca_crt,
+        ret = x509parse_crt( &cacert, (const unsigned char *) test_ca_crt,
                 strlen( test_ca_crt ) );
 #else
     {
@@ -514,7 +515,7 @@
     else 
 #endif
 #if defined(POLARSSL_CERTS_C)
-        ret = x509parse_crt( &clicert, (unsigned char *) test_cli_crt,
+        ret = x509parse_crt( &clicert, (const unsigned char *) test_cli_crt,
                 strlen( test_cli_crt ) );
 #else
     {
@@ -534,7 +535,7 @@
     else
 #endif
 #if defined(POLARSSL_CERTS_C)
-        ret = x509parse_key( &rsa, (unsigned char *) test_cli_key,
+        ret = x509parse_key( &rsa, (const unsigned char *) test_cli_key,
                 strlen( test_cli_key ), NULL, 0 );
 #else
     {
@@ -691,7 +692,8 @@
         fflush( stdout );
 
         n = sizeof( buf );
-        len = base64_encode( base, &n, (unsigned char *) opt.user_name, strlen( opt.user_name ) );
+        len = base64_encode( base, &n, (const unsigned char *) opt.user_name,
+                             strlen( opt.user_name ) );
         len = sprintf( (char *) buf, "%s\n", base );
         ret = write_ssl_and_get_response( &ssl, buf, len );
         if( ret < 300 || ret > 399 )
@@ -705,7 +707,8 @@
         printf( "  > Write password to server: %s", opt.user_pwd );
         fflush( stdout );
 
-        len = base64_encode( base, &n, (unsigned char *) opt.user_pwd, strlen( opt.user_pwd ) );
+        len = base64_encode( base, &n, (const unsigned char *) opt.user_pwd,
+                             strlen( opt.user_pwd ) );
         len = sprintf( (char *) buf, "%s\n", base );
         ret = write_ssl_and_get_response( &ssl, buf, len );
         if( ret < 200 || ret > 399 )
diff --git a/programs/ssl/ssl_server.c b/programs/ssl/ssl_server.c
index fc1f4ed..78d9065 100644
--- a/programs/ssl/ssl_server.c
+++ b/programs/ssl/ssl_server.c
@@ -87,7 +87,7 @@
     int listen_fd;
     int client_fd = -1;
     unsigned char buf[1024];
-    char *pers = "ssl_server";
+    const char *pers = "ssl_server";
 
     entropy_context entropy;
     ctr_drbg_context ctr_drbg;
@@ -118,7 +118,7 @@
      * Instead, you may want to use x509parse_crtfile() to read the
      * server and CA certificates, as well as x509parse_keyfile().
      */
-    ret = x509parse_crt( &srvcert, (unsigned char *) test_srv_crt,
+    ret = x509parse_crt( &srvcert, (const unsigned char *) test_srv_crt,
                          strlen( test_srv_crt ) );
     if( ret != 0 )
     {
@@ -126,7 +126,7 @@
         goto exit;
     }
 
-    ret = x509parse_crt( &srvcert, (unsigned char *) test_ca_crt,
+    ret = x509parse_crt( &srvcert, (const unsigned char *) test_ca_crt,
                          strlen( test_ca_crt ) );
     if( ret != 0 )
     {
@@ -135,7 +135,7 @@
     }
 
     rsa_init( &rsa, RSA_PKCS_V15, 0 );
-    ret =  x509parse_key( &rsa, (unsigned char *) test_srv_key,
+    ret =  x509parse_key( &rsa, (const unsigned char *) test_srv_key,
                           strlen( test_srv_key ), NULL, 0 );
     if( ret != 0 )
     {
@@ -167,7 +167,8 @@
 
     entropy_init( &entropy );
     if( ( ret = ctr_drbg_init( &ctr_drbg, entropy_func, &entropy,
-                               (unsigned char *) pers, strlen( pers ) ) ) != 0 )
+                               (const unsigned char *) pers,
+                               strlen( pers ) ) ) != 0 )
     {
         printf( " failed\n  ! ctr_drbg_init returned %d\n", ret );
         goto exit;
diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index c1b3810..a37a077 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -74,10 +74,10 @@
 {
     int server_port;            /* port on which the ssl service runs       */
     int debug_level;            /* level of debugging                       */
-    char *ca_file;              /* the file with the CA certificate(s)      */
-    char *ca_path;              /* the path with the CA certificate(s) reside */
-    char *crt_file;             /* the file with the client certificate     */
-    char *key_file;             /* the file with the client key             */
+    const char *ca_file;        /* the file with the CA certificate(s)      */
+    const char *ca_path;        /* the path with the CA certificate(s) reside */
+    const char *crt_file;       /* the file with the client certificate     */
+    const char *key_file;       /* the file with the client key             */
     int force_ciphersuite[2];   /* protocol/ciphersuite to use, or all      */
     int renegotiation;          /* enable / disable renegotiation           */
     int allow_legacy;           /* allow legacy renegotiation               */
@@ -236,7 +236,7 @@
     int listen_fd;
     int client_fd = -1;
     unsigned char buf[1024];
-    char *pers = "ssl_server2";
+    const char *pers = "ssl_server2";
 
     entropy_context entropy;
     ctr_drbg_context ctr_drbg;
@@ -380,7 +380,8 @@
 
     entropy_init( &entropy );
     if( ( ret = ctr_drbg_init( &ctr_drbg, entropy_func, &entropy,
-                               (unsigned char *) pers, strlen( pers ) ) ) != 0 )
+                               (const unsigned char *) pers,
+                               strlen( pers ) ) ) != 0 )
     {
         printf( " failed\n  ! ctr_drbg_init returned -0x%x\n", -ret );
         goto exit;
@@ -402,7 +403,7 @@
     else 
 #endif
 #if defined(POLARSSL_CERTS_C)
-        ret = x509parse_crt( &cacert, (unsigned char *) test_ca_crt,
+        ret = x509parse_crt( &cacert, (const unsigned char *) test_ca_crt,
                 strlen( test_ca_crt ) );
 #else
     {
@@ -430,7 +431,7 @@
     else 
 #endif
 #if defined(POLARSSL_CERTS_C)
-        ret = x509parse_crt( &srvcert, (unsigned char *) test_srv_crt,
+        ret = x509parse_crt( &srvcert, (const unsigned char *) test_srv_crt,
                 strlen( test_srv_crt ) );
 #else
     {
@@ -450,7 +451,7 @@
     else
 #endif
 #if defined(POLARSSL_CERTS_C)
-        ret = x509parse_key( &rsa, (unsigned char *) test_srv_key,
+        ret = x509parse_key( &rsa, (const unsigned char *) test_srv_key,
                 strlen( test_srv_key ), NULL, 0 );
 #else
     {