Avoid in-out length in base64
diff --git a/programs/ssl/ssl_mail_client.c b/programs/ssl/ssl_mail_client.c
index df25435..9587b7a 100644
--- a/programs/ssl/ssl_mail_client.c
+++ b/programs/ssl/ssl_mail_client.c
@@ -720,8 +720,7 @@
         mbedtls_printf( "  > Write username to server: %s", opt.user_name );
         fflush( stdout );
 
-        n = sizeof( base );
-        ret = mbedtls_base64_encode( base, &n, (const unsigned char *) opt.user_name,
+        ret = mbedtls_base64_encode( base, sizeof( base ), &n, (const unsigned char *) opt.user_name,
                              strlen( opt.user_name ) );
 
         if( ret != 0 ) {
@@ -741,8 +740,7 @@
         mbedtls_printf( "  > Write password to server: %s", opt.user_pwd );
         fflush( stdout );
 
-        n = sizeof( base );
-        ret = mbedtls_base64_encode( base, &n, (const unsigned char *) opt.user_pwd,
+        ret = mbedtls_base64_encode( base, sizeof( base ), &n, (const unsigned char *) opt.user_pwd,
                              strlen( opt.user_pwd ) );
 
         if( ret != 0 ) {
diff --git a/programs/util/pem2der.c b/programs/util/pem2der.c
index c9b511d..d43d446 100644
--- a/programs/util/pem2der.c
+++ b/programs/util/pem2der.c
@@ -96,14 +96,14 @@
     if( s2 <= s1 || s2 > end )
         return( -1 );
 
-    ret = mbedtls_base64_decode( NULL, &len, (const unsigned char *) s1, s2 - s1 );
+    ret = mbedtls_base64_decode( NULL, 0, &len, (const unsigned char *) s1, s2 - s1 );
     if( ret == MBEDTLS_ERR_BASE64_INVALID_CHARACTER )
         return( ret );
 
     if( len > *olen )
         return( -1 );
 
-    if( ( ret = mbedtls_base64_decode( output, &len, (const unsigned char *) s1,
+    if( ( ret = mbedtls_base64_decode( output, len, &len, (const unsigned char *) s1,
                                s2 - s1 ) ) != 0 )
     {
         return( ret );