diff --git a/ChangeLog b/ChangeLog index 0d40eb8d5..7c8466866 100644 --- a/ChangeLog +++ b/ChangeLog @@ -35,6 +35,8 @@ Features a compatible enough libc (eg uClibc). * Add ssl_set_arc4_support() to make it easier to disable RC4 at runtime while using the default ciphersuite list. + * Added new error codes and debug messages about selection of + ciphersuite/certificate. Bugfix * Stack buffer overflow if ctr_drbg_update() is called with too large @@ -49,6 +51,9 @@ Bugfix multiple of 8 (found by Gergely Budai). * Fix unchecked return code in x509_crt_parse_path() on Windows (found by Peter Vaskovic). + * Fix assembly selection for MIPS64 (thanks to James Cowgill). + * ssl_get_verify_result() now works even if the handshake was aborted due + to a failed verification (found by Fredrik Axelsson). Changes * Use deterministic nonces for AEAD ciphers in TLS by default (possible to @@ -66,6 +71,7 @@ Changes at runtime with ssl_set_truncated_hmac(). * Example programs for SSL client and server now disable SSLv3 by default. * Example programs for SSL client and server now disable RC4 by default. + * Use platform.h in all test suites and programs. = PolarSSL 1.3.9 released 2014-10-20 Security diff --git a/include/polarssl/bignum.h b/include/polarssl/bignum.h index 180743945..7794ef25b 100644 --- a/include/polarssl/bignum.h +++ b/include/polarssl/bignum.h @@ -24,7 +24,6 @@ #ifndef POLARSSL_BIGNUM_H #define POLARSSL_BIGNUM_H -#include #include #if !defined(POLARSSL_CONFIG_FILE) @@ -33,6 +32,10 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_FS_IO) +#include +#endif + #if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include #if (_MSC_VER <= 1200) @@ -145,7 +148,7 @@ typedef uint32_t t_udbl; defined(__ppc64__) || defined(__powerpc64__) || \ defined(__ia64__) || defined(__alpha__) || \ (defined(__sparc__) && defined(__arch64__)) || \ - defined(__s390x__) ) ) + defined(__s390x__) || defined(__mips64) ) ) #define POLARSSL_HAVE_INT64 typedef int64_t t_sint; typedef uint64_t t_uint; diff --git a/include/polarssl/bn_mul.h b/include/polarssl/bn_mul.h index f7199ef97..0179b9797 100644 --- a/include/polarssl/bn_mul.h +++ b/include/polarssl/bn_mul.h @@ -680,7 +680,7 @@ ); #endif /* Alpha */ -#if defined(__mips__) && !defined(__mips64__) +#if defined(__mips__) && !defined(__mips64) #define MULADDC_INIT \ asm( \ diff --git a/include/polarssl/ssl.h b/include/polarssl/ssl.h index efeece59d..4fd1a5cf8 100644 --- a/include/polarssl/ssl.h +++ b/include/polarssl/ssl.h @@ -149,7 +149,7 @@ #define POLARSSL_ERR_SSL_INTERNAL_ERROR -0x6C00 /**< Internal error (eg, unexpected failure in lower-level module) */ #define POLARSSL_ERR_SSL_COUNTER_WRAPPING -0x6B80 /**< A counter would wrap (eg, too many messages exchanged). */ #define POLARSSL_ERR_SSL_WAITING_SERVER_HELLO_RENEGO -0x6B00 /**< Unexpected message at ServerHello in renegotiation. */ -#define POLARSSL_ERR_SSL_NO_USABLE_CIPHERSUITE -0x6A80 /**< None of the common ciphersuites is usable (eg, no suitable certificate) */ +#define POLARSSL_ERR_SSL_NO_USABLE_CIPHERSUITE -0x6A80 /**< None of the common ciphersuites is usable (eg, no suitable certificate, see debug messages). */ /* * Various constants @@ -1710,11 +1710,11 @@ size_t ssl_get_bytes_avail( const ssl_context *ssl ); * * \param ssl SSL context * - * \return 0 if successful, or a combination of: - * BADCERT_EXPIRED - * BADCERT_REVOKED - * BADCERT_CN_MISMATCH - * BADCERT_NOT_TRUSTED + * \return 0 if successful, + * -1 if result is not available (eg because the handshake was + * aborted too early), or + * a combination of BADCERT_xxx and BADCRL_xxx flags, see + * x509.h */ int ssl_get_verify_result( const ssl_context *ssl ); diff --git a/library/aes.c b/library/aes.c index 07eaca925..38683ee33 100644 --- a/library/aes.c +++ b/library/aes.c @@ -69,12 +69,12 @@ static void polarssl_zeroize( void *v, size_t n ) { #endif #ifndef PUT_UINT32_LE -#define PUT_UINT32_LE(n,b,i) \ -{ \ - (b)[(i) ] = (unsigned char) ( (n) ); \ - (b)[(i) + 1] = (unsigned char) ( (n) >> 8 ); \ - (b)[(i) + 2] = (unsigned char) ( (n) >> 16 ); \ - (b)[(i) + 3] = (unsigned char) ( (n) >> 24 ); \ +#define PUT_UINT32_LE(n,b,i) \ +{ \ + (b)[(i) ] = (unsigned char) ( ( (n) ) & 0xFF ); \ + (b)[(i) + 1] = (unsigned char) ( ( (n) >> 8 ) & 0xFF ); \ + (b)[(i) + 2] = (unsigned char) ( ( (n) >> 16 ) & 0xFF ); \ + (b)[(i) + 3] = (unsigned char) ( ( (n) >> 24 ) & 0xFF ); \ } #endif diff --git a/library/debug.c b/library/debug.c index e014c0379..d08ecfbaf 100644 --- a/library/debug.c +++ b/library/debug.c @@ -32,10 +32,7 @@ #include #include - -#if defined(EFIX64) || defined(EFI32) #include -#endif #if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #if !defined snprintf diff --git a/library/error.c b/library/error.c index 60fec1165..44b11426b 100644 --- a/library/error.c +++ b/library/error.c @@ -172,7 +172,7 @@ #include "polarssl/xtea.h" #endif - +#include #include #if defined(_MSC_VER) && !defined snprintf && !defined(EFIX64) && \ @@ -450,7 +450,7 @@ void polarssl_strerror( int ret, char *buf, size_t buflen ) if( use_ret == -(POLARSSL_ERR_SSL_WAITING_SERVER_HELLO_RENEGO) ) snprintf( buf, buflen, "SSL - Unexpected message at ServerHello in renegotiation" ); if( use_ret == -(POLARSSL_ERR_SSL_NO_USABLE_CIPHERSUITE) ) - snprintf( buf, buflen, "SSL - None of the common ciphersuites is usable (eg, no suitable certificate)" ); + snprintf( buf, buflen, "SSL - None of the common ciphersuites is usable (eg, no suitable certificate, see debug messages)" ); #endif /* POLARSSL_SSL_TLS_C */ #if defined(POLARSSL_X509_USE_C) || defined(POLARSSL_X509_CREATE_C) diff --git a/library/md4.c b/library/md4.c index 842420b2b..cf5f9a97b 100644 --- a/library/md4.c +++ b/library/md4.c @@ -67,12 +67,12 @@ static void polarssl_zeroize( void *v, size_t n ) { #endif #ifndef PUT_UINT32_LE -#define PUT_UINT32_LE(n,b,i) \ -{ \ - (b)[(i) ] = (unsigned char) ( (n) ); \ - (b)[(i) + 1] = (unsigned char) ( (n) >> 8 ); \ - (b)[(i) + 2] = (unsigned char) ( (n) >> 16 ); \ - (b)[(i) + 3] = (unsigned char) ( (n) >> 24 ); \ +#define PUT_UINT32_LE(n,b,i) \ +{ \ + (b)[(i) ] = (unsigned char) ( ( (n) ) & 0xFF ); \ + (b)[(i) + 1] = (unsigned char) ( ( (n) >> 8 ) & 0xFF ); \ + (b)[(i) + 2] = (unsigned char) ( ( (n) >> 16 ) & 0xFF ); \ + (b)[(i) + 3] = (unsigned char) ( ( (n) >> 24 ) & 0xFF ); \ } #endif diff --git a/library/md5.c b/library/md5.c index fc8644922..a09bba3e6 100644 --- a/library/md5.c +++ b/library/md5.c @@ -66,12 +66,12 @@ static void polarssl_zeroize( void *v, size_t n ) { #endif #ifndef PUT_UINT32_LE -#define PUT_UINT32_LE(n,b,i) \ -{ \ - (b)[(i) ] = (unsigned char) ( (n) ); \ - (b)[(i) + 1] = (unsigned char) ( (n) >> 8 ); \ - (b)[(i) + 2] = (unsigned char) ( (n) >> 16 ); \ - (b)[(i) + 3] = (unsigned char) ( (n) >> 24 ); \ +#define PUT_UINT32_LE(n,b,i) \ +{ \ + (b)[(i) ] = (unsigned char) ( ( (n) ) & 0xFF ); \ + (b)[(i) + 1] = (unsigned char) ( ( (n) >> 8 ) & 0xFF ); \ + (b)[(i) + 2] = (unsigned char) ( ( (n) >> 16 ) & 0xFF ); \ + (b)[(i) + 3] = (unsigned char) ( ( (n) >> 24 ) & 0xFF ); \ } #endif diff --git a/library/ripemd160.c b/library/ripemd160.c index c8433e736..a909cf7e7 100644 --- a/library/ripemd160.c +++ b/library/ripemd160.c @@ -64,12 +64,12 @@ #endif #ifndef PUT_UINT32_LE -#define PUT_UINT32_LE(n,b,i) \ -{ \ - (b)[(i) ] = (unsigned char) ( (n) ); \ - (b)[(i) + 1] = (unsigned char) ( (n) >> 8 ); \ - (b)[(i) + 2] = (unsigned char) ( (n) >> 16 ); \ - (b)[(i) + 3] = (unsigned char) ( (n) >> 24 ); \ +#define PUT_UINT32_LE(n,b,i) \ +{ \ + (b)[(i) ] = (unsigned char) ( ( (n) ) & 0xFF ); \ + (b)[(i) + 1] = (unsigned char) ( ( (n) >> 8 ) & 0xFF ); \ + (b)[(i) + 2] = (unsigned char) ( ( (n) >> 16 ) & 0xFF ); \ + (b)[(i) + 3] = (unsigned char) ( ( (n) >> 24 ) & 0xFF ); \ } #endif diff --git a/library/ssl_srv.c b/library/ssl_srv.c index be17b58a9..359f57f2a 100644 --- a/library/ssl_srv.c +++ b/library/ssl_srv.c @@ -839,10 +839,18 @@ static int ssl_pick_cert( ssl_context *ssl, if( pk_alg == POLARSSL_PK_NONE ) return( 0 ); + SSL_DEBUG_MSG( 3, ( "ciphersuite requires certificate" ) ); + for( cur = list; cur != NULL; cur = cur->next ) { + SSL_DEBUG_CRT( 3, "candidate certificate chain, certificate", + cur->cert ); + if( ! pk_can_do( cur->key, pk_alg ) ) + { + SSL_DEBUG_MSG( 3, ( "certificate mismatch: key type" ) ); continue; + } /* * This avoids sending the client a cert it'll reject based on @@ -855,13 +863,18 @@ static int ssl_pick_cert( ssl_context *ssl, if( ssl_check_cert_usage( cur->cert, ciphersuite_info, SSL_IS_SERVER ) != 0 ) { + SSL_DEBUG_MSG( 3, ( "certificate mismatch: " + "(extended) key usage extension" ) ); continue; } #if defined(POLARSSL_ECDSA_C) if( pk_alg == POLARSSL_PK_ECDSA && ssl_check_key_curve( cur->key, ssl->handshake->curves ) != 0 ) + { + SSL_DEBUG_MSG( 3, ( "certificate mismatch: elliptic curve" ) ); continue; + } #endif /* @@ -874,22 +887,27 @@ static int ssl_pick_cert( ssl_context *ssl, { if( fallback == NULL ) fallback = cur; + { + SSL_DEBUG_MSG( 3, ( "certificate not preferred: " + "sha-2 with pre-TLS 1.2 client" ) ); continue; + } } /* If we get there, we got a winner */ break; } + if( cur == NULL ) + cur = fallback; + + + /* Do not update ssl->handshake->key_cert unless the is a match */ if( cur != NULL ) { ssl->handshake->key_cert = cur; - return( 0 ); - } - - if( fallback != NULL ) - { - ssl->handshake->key_cert = fallback; + SSL_DEBUG_CRT( 3, "selected certificate chain, certificate", + ssl->handshake->key_cert->cert ); return( 0 ); } @@ -913,19 +931,31 @@ static int ssl_ciphersuite_match( ssl_context *ssl, int suite_id, return( POLARSSL_ERR_SSL_INTERNAL_ERROR ); } + SSL_DEBUG_MSG( 3, ( "trying ciphersuite: %s", suite_info->name ) ); + if( suite_info->min_minor_ver > ssl->minor_ver || suite_info->max_minor_ver < ssl->minor_ver ) + { + SSL_DEBUG_MSG( 3, ( "ciphersuite mismatch: version" ) ); return( 0 ); + } if( ssl->arc4_disabled == SSL_ARC4_DISABLED && suite_info->cipher == POLARSSL_CIPHER_ARC4_128 ) + { + SSL_DEBUG_MSG( 3, ( "ciphersuite mismatch: rc4" ) ); return( 0 ); + } #if defined(POLARSSL_ECDH_C) || defined(POLARSSL_ECDSA_C) if( ssl_ciphersuite_uses_ec( suite_info ) && ( ssl->handshake->curves == NULL || ssl->handshake->curves[0] == NULL ) ) + { + SSL_DEBUG_MSG( 3, ( "ciphersuite mismatch: " + "no common elliptic curve" ) ); return( 0 ); + } #endif #if defined(POLARSSL_KEY_EXCHANGE__SOME__PSK_ENABLED) @@ -935,7 +965,10 @@ static int ssl_ciphersuite_match( ssl_context *ssl, int suite_id, ssl->f_psk == NULL && ( ssl->psk == NULL || ssl->psk_identity == NULL || ssl->psk_identity_len == 0 || ssl->psk_len == 0 ) ) + { + SSL_DEBUG_MSG( 3, ( "ciphersuite mismatch: no pre-shared key" ) ); return( 0 ); + } #endif #if defined(POLARSSL_X509_CRT_PARSE_C) @@ -947,7 +980,11 @@ static int ssl_ciphersuite_match( ssl_context *ssl, int suite_id, * This must be done last since we modify the key_cert list. */ if( ssl_pick_cert( ssl, suite_info ) != 0 ) + { + SSL_DEBUG_MSG( 3, ( "ciphersuite mismatch: " + "no suitable certificate" ) ); return( 0 ); + } #endif *ciphersuite_info = suite_info; @@ -1197,6 +1234,8 @@ static int ssl_parse_client_hello_v2( ssl_context *ssl ) } have_ciphersuite_v2: + SSL_DEBUG_MSG( 2, ( "selected ciphersuite: %s", ciphersuite_info->name ) ); + ssl->session_negotiate->ciphersuite = ciphersuites[i]; ssl->transform_negotiate->ciphersuite_info = ciphersuite_info; ssl_optimize_checksum( ssl, ssl->transform_negotiate->ciphersuite_info ); @@ -1755,6 +1794,8 @@ static int ssl_parse_client_hello( ssl_context *ssl ) } have_ciphersuite: + SSL_DEBUG_MSG( 2, ( "selected ciphersuite: %s", ciphersuite_info->name ) ); + ssl->session_negotiate->ciphersuite = ciphersuites[i]; ssl->transform_negotiate->ciphersuite_info = ciphersuite_info; ssl_optimize_checksum( ssl, ssl->transform_negotiate->ciphersuite_info ); diff --git a/library/ssl_tls.c b/library/ssl_tls.c index fceb9b805..7383e1c3b 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -4336,7 +4336,13 @@ size_t ssl_get_bytes_avail( const ssl_context *ssl ) int ssl_get_verify_result( const ssl_context *ssl ) { - return( ssl->session->verify_result ); + if( ssl->session != NULL ) + return( ssl->session->verify_result ); + + if( ssl->session_negotiate != NULL ) + return( ssl->session_negotiate->verify_result ); + + return( -1 ); } const char *ssl_get_ciphersuite( const ssl_context *ssl ) diff --git a/library/x509.c b/library/x509.c index bf45d5b8f..7ddeb2f37 100644 --- a/library/x509.c +++ b/library/x509.c @@ -61,12 +61,9 @@ #include #endif -#if defined(EFIX64) || defined(EFI32) #include -#endif #if defined(POLARSSL_FS_IO) -#include #if !defined(_WIN32) #include #include diff --git a/library/x509_crt.c b/library/x509_crt.c index 31e3bc43d..ec5469b8b 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -63,12 +63,9 @@ #include #endif -#if defined(EFIX64) || defined(EFI32) #include -#endif #if defined(POLARSSL_FS_IO) -#include #if !defined(_WIN32) || defined(EFIX64) || defined(EFI32) #include #include diff --git a/programs/aes/aescrypt2.c b/programs/aes/aescrypt2.c index a82e45719..63ea51c61 100644 --- a/programs/aes/aescrypt2.c +++ b/programs/aes/aescrypt2.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #if defined(_WIN32) #include #if !defined(_WIN32_WCE) @@ -58,7 +65,7 @@ int main( int argc, char *argv[] ) { ((void) argc); ((void) argv); - printf("POLARSSL_AES_C and/or POLARSSL_SHA256_C not defined.\n"); + polarssl_printf("POLARSSL_AES_C and/or POLARSSL_SHA256_C not defined.\n"); return( 0 ); } #else @@ -98,10 +105,10 @@ int main( int argc, char *argv[] ) */ if( argc != 5 ) { - printf( USAGE ); + polarssl_printf( USAGE ); #if defined(_WIN32) - printf( "\n Press Enter to exit this program.\n" ); + polarssl_printf( "\n Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif @@ -109,28 +116,32 @@ int main( int argc, char *argv[] ) } mode = atoi( argv[1] ); + memset(IV, 0, sizeof(IV)); + memset(key, 0, sizeof(key)); + memset(digest, 0, sizeof(digest)); + memset(buffer, 0, sizeof(buffer)); if( mode != MODE_ENCRYPT && mode != MODE_DECRYPT ) { - fprintf( stderr, "invalide operation mode\n" ); + polarssl_fprintf( stderr, "invalide operation mode\n" ); goto exit; } if( strcmp( argv[2], argv[3] ) == 0 ) { - fprintf( stderr, "input and output filenames must differ\n" ); + polarssl_fprintf( stderr, "input and output filenames must differ\n" ); goto exit; } if( ( fin = fopen( argv[2], "rb" ) ) == NULL ) { - fprintf( stderr, "fopen(%s,rb) failed\n", argv[2] ); + polarssl_fprintf( stderr, "fopen(%s,rb) failed\n", argv[2] ); goto exit; } if( ( fout = fopen( argv[3], "wb+" ) ) == NULL ) { - fprintf( stderr, "fopen(%s,wb+) failed\n", argv[3] ); + polarssl_fprintf( stderr, "fopen(%s,wb+) failed\n", argv[3] ); goto exit; } @@ -183,7 +194,7 @@ int main( int argc, char *argv[] ) if( li_size.LowPart == 0xFFFFFFFF && GetLastError() != NO_ERROR ) { - fprintf( stderr, "SetFilePointer(0,FILE_END) failed\n" ); + polarssl_fprintf( stderr, "SetFilePointer(0,FILE_END) failed\n" ); goto exit; } @@ -199,7 +210,7 @@ int main( int argc, char *argv[] ) if( fseek( fin, 0, SEEK_SET ) < 0 ) { - fprintf( stderr, "fseek(0,SEEK_SET) failed\n" ); + polarssl_fprintf( stderr, "fseek(0,SEEK_SET) failed\n" ); goto exit; } @@ -235,7 +246,7 @@ int main( int argc, char *argv[] ) */ if( fwrite( IV, 1, 16, fout ) != 16 ) { - fprintf( stderr, "fwrite(%d bytes) failed\n", 16 ); + polarssl_fprintf( stderr, "fwrite(%d bytes) failed\n", 16 ); goto exit; } @@ -268,7 +279,7 @@ int main( int argc, char *argv[] ) if( fread( buffer, 1, n, fin ) != (size_t) n ) { - fprintf( stderr, "fread(%d bytes) failed\n", n ); + polarssl_fprintf( stderr, "fread(%d bytes) failed\n", n ); goto exit; } @@ -280,7 +291,7 @@ int main( int argc, char *argv[] ) if( fwrite( buffer, 1, 16, fout ) != 16 ) { - fprintf( stderr, "fwrite(%d bytes) failed\n", 16 ); + polarssl_fprintf( stderr, "fwrite(%d bytes) failed\n", 16 ); goto exit; } @@ -294,7 +305,7 @@ int main( int argc, char *argv[] ) if( fwrite( digest, 1, 32, fout ) != 32 ) { - fprintf( stderr, "fwrite(%d bytes) failed\n", 16 ); + polarssl_fprintf( stderr, "fwrite(%d bytes) failed\n", 16 ); goto exit; } } @@ -314,13 +325,13 @@ int main( int argc, char *argv[] ) */ if( filesize < 48 ) { - fprintf( stderr, "File too short to be encrypted.\n" ); + polarssl_fprintf( stderr, "File too short to be encrypted.\n" ); goto exit; } if( ( filesize & 0x0F ) != 0 ) { - fprintf( stderr, "File size not a multiple of 16.\n" ); + polarssl_fprintf( stderr, "File size not a multiple of 16.\n" ); goto exit; } @@ -334,7 +345,7 @@ int main( int argc, char *argv[] ) */ if( fread( buffer, 1, 16, fin ) != 16 ) { - fprintf( stderr, "fread(%d bytes) failed\n", 16 ); + polarssl_fprintf( stderr, "fread(%d bytes) failed\n", 16 ); goto exit; } @@ -367,7 +378,7 @@ int main( int argc, char *argv[] ) { if( fread( buffer, 1, 16, fin ) != 16 ) { - fprintf( stderr, "fread(%d bytes) failed\n", 16 ); + polarssl_fprintf( stderr, "fread(%d bytes) failed\n", 16 ); goto exit; } @@ -386,7 +397,7 @@ int main( int argc, char *argv[] ) if( fwrite( buffer, 1, n, fout ) != (size_t) n ) { - fprintf( stderr, "fwrite(%d bytes) failed\n", n ); + polarssl_fprintf( stderr, "fwrite(%d bytes) failed\n", n ); goto exit; } } @@ -398,7 +409,7 @@ int main( int argc, char *argv[] ) if( fread( buffer, 1, 32, fin ) != 32 ) { - fprintf( stderr, "fread(%d bytes) failed\n", 32 ); + polarssl_fprintf( stderr, "fread(%d bytes) failed\n", 32 ); goto exit; } @@ -409,7 +420,7 @@ int main( int argc, char *argv[] ) if( diff != 0 ) { - fprintf( stderr, "HMAC check failed: wrong key, " + polarssl_fprintf( stderr, "HMAC check failed: wrong key, " "or file corrupted.\n" ); goto exit; } diff --git a/programs/aes/crypt_and_hash.c b/programs/aes/crypt_and_hash.c index a904bdeae..9e4f6967e 100644 --- a/programs/aes/crypt_and_hash.c +++ b/programs/aes/crypt_and_hash.c @@ -27,6 +27,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #if defined(_WIN32) #include #if !defined(_WIN32_WCE) @@ -60,7 +67,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_CIPHER_C and/or POLARSSL_MD_C not defined.\n"); + polarssl_printf("POLARSSL_CIPHER_C and/or POLARSSL_MD_C not defined.\n"); return( 0 ); } #else @@ -102,28 +109,28 @@ int main( int argc, char *argv[] ) { const int *list; - printf( USAGE ); + polarssl_printf( USAGE ); - printf( "Available ciphers:\n" ); + polarssl_printf( "Available ciphers:\n" ); list = cipher_list(); while( *list ) { cipher_info = cipher_info_from_type( *list ); - printf( " %s\n", cipher_info->name ); + polarssl_printf( " %s\n", cipher_info->name ); list++; } - printf( "\nAvailable message digests:\n" ); + polarssl_printf( "\nAvailable message digests:\n" ); list = md_list(); while( *list ) { md_info = md_info_from_type( *list ); - printf( " %s\n", md_info->name ); + polarssl_printf( " %s\n", md_info->name ); list++; } #if defined(_WIN32) - printf( "\n Press Enter to exit this program.\n" ); + polarssl_printf( "\n Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif @@ -134,25 +141,25 @@ int main( int argc, char *argv[] ) if( mode != MODE_ENCRYPT && mode != MODE_DECRYPT ) { - fprintf( stderr, "invalid operation mode\n" ); + polarssl_fprintf( stderr, "invalid operation mode\n" ); goto exit; } if( strcmp( argv[2], argv[3] ) == 0 ) { - fprintf( stderr, "input and output filenames must differ\n" ); + polarssl_fprintf( stderr, "input and output filenames must differ\n" ); goto exit; } if( ( fin = fopen( argv[2], "rb" ) ) == NULL ) { - fprintf( stderr, "fopen(%s,rb) failed\n", argv[2] ); + polarssl_fprintf( stderr, "fopen(%s,rb) failed\n", argv[2] ); goto exit; } if( ( fout = fopen( argv[3], "wb+" ) ) == NULL ) { - fprintf( stderr, "fopen(%s,wb+) failed\n", argv[3] ); + polarssl_fprintf( stderr, "fopen(%s,wb+) failed\n", argv[3] ); goto exit; } @@ -162,19 +169,19 @@ int main( int argc, char *argv[] ) cipher_info = cipher_info_from_string( argv[4] ); if( cipher_info == NULL ) { - fprintf( stderr, "Cipher '%s' not found\n", argv[4] ); + polarssl_fprintf( stderr, "Cipher '%s' not found\n", argv[4] ); goto exit; } if( ( ret = cipher_init_ctx( &cipher_ctx, cipher_info) ) != 0 ) { - fprintf( stderr, "cipher_init_ctx failed\n" ); + polarssl_fprintf( stderr, "cipher_init_ctx failed\n" ); goto exit; } md_info = md_info_from_string( argv[5] ); if( md_info == NULL ) { - fprintf( stderr, "Message Digest '%s' not found\n", argv[5] ); + polarssl_fprintf( stderr, "Message Digest '%s' not found\n", argv[5] ); goto exit; } md_init_ctx( &md_ctx, md_info); @@ -228,7 +235,7 @@ int main( int argc, char *argv[] ) if( li_size.LowPart == 0xFFFFFFFF && GetLastError() != NO_ERROR ) { - fprintf( stderr, "SetFilePointer(0,FILE_END) failed\n" ); + polarssl_fprintf( stderr, "SetFilePointer(0,FILE_END) failed\n" ); goto exit; } @@ -244,7 +251,7 @@ int main( int argc, char *argv[] ) if( fseek( fin, 0, SEEK_SET ) < 0 ) { - fprintf( stderr, "fseek(0,SEEK_SET) failed\n" ); + polarssl_fprintf( stderr, "fseek(0,SEEK_SET) failed\n" ); goto exit; } @@ -280,7 +287,7 @@ int main( int argc, char *argv[] ) */ if( fwrite( IV, 1, 16, fout ) != 16 ) { - fprintf( stderr, "fwrite(%d bytes) failed\n", 16 ); + polarssl_fprintf( stderr, "fwrite(%d bytes) failed\n", 16 ); goto exit; } @@ -305,17 +312,17 @@ int main( int argc, char *argv[] ) if( cipher_setkey( &cipher_ctx, digest, cipher_info->key_length, POLARSSL_ENCRYPT ) != 0 ) { - fprintf( stderr, "cipher_setkey() returned error\n"); + polarssl_fprintf( stderr, "cipher_setkey() returned error\n"); goto exit; } if( cipher_set_iv( &cipher_ctx, IV, 16 ) != 0 ) { - fprintf( stderr, "cipher_set_iv() returned error\n"); + polarssl_fprintf( stderr, "cipher_set_iv() returned error\n"); goto exit; } if( cipher_reset( &cipher_ctx ) != 0 ) { - fprintf( stderr, "cipher_reset() returned error\n"); + polarssl_fprintf( stderr, "cipher_reset() returned error\n"); goto exit; } @@ -331,13 +338,13 @@ int main( int argc, char *argv[] ) if( fread( buffer, 1, ilen, fin ) != ilen ) { - fprintf( stderr, "fread(%ld bytes) failed\n", (long) ilen ); + polarssl_fprintf( stderr, "fread(%ld bytes) failed\n", (long) ilen ); goto exit; } if( cipher_update( &cipher_ctx, buffer, ilen, output, &olen ) != 0 ) { - fprintf( stderr, "cipher_update() returned error\n"); + polarssl_fprintf( stderr, "cipher_update() returned error\n"); goto exit; } @@ -345,21 +352,21 @@ int main( int argc, char *argv[] ) if( fwrite( output, 1, olen, fout ) != olen ) { - fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen ); + polarssl_fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen ); goto exit; } } if( cipher_finish( &cipher_ctx, output, &olen ) != 0 ) { - fprintf( stderr, "cipher_finish() returned error\n" ); + polarssl_fprintf( stderr, "cipher_finish() returned error\n" ); goto exit; } md_hmac_update( &md_ctx, output, olen ); if( fwrite( output, 1, olen, fout ) != olen ) { - fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen ); + polarssl_fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen ); goto exit; } @@ -370,7 +377,7 @@ int main( int argc, char *argv[] ) if( fwrite( digest, 1, md_get_size( md_info ), fout ) != md_get_size( md_info ) ) { - fprintf( stderr, "fwrite(%d bytes) failed\n", md_get_size( md_info ) ); + polarssl_fprintf( stderr, "fwrite(%d bytes) failed\n", md_get_size( md_info ) ); goto exit; } } @@ -388,14 +395,14 @@ int main( int argc, char *argv[] ) */ if( filesize < 16 + md_get_size( md_info ) ) { - fprintf( stderr, "File too short to be encrypted.\n" ); + polarssl_fprintf( stderr, "File too short to be encrypted.\n" ); goto exit; } if( ( ( filesize - md_get_size( md_info ) ) % cipher_get_block_size( &cipher_ctx ) ) != 0 ) { - fprintf( stderr, "File content not a multiple of the block size (%d).\n", + polarssl_fprintf( stderr, "File content not a multiple of the block size (%d).\n", cipher_get_block_size( &cipher_ctx )); goto exit; } @@ -410,7 +417,7 @@ int main( int argc, char *argv[] ) */ if( fread( buffer, 1, 16, fin ) != 16 ) { - fprintf( stderr, "fread(%d bytes) failed\n", 16 ); + polarssl_fprintf( stderr, "fread(%d bytes) failed\n", 16 ); goto exit; } @@ -437,19 +444,19 @@ int main( int argc, char *argv[] ) if( cipher_setkey( &cipher_ctx, digest, cipher_info->key_length, POLARSSL_DECRYPT ) != 0 ) { - fprintf( stderr, "cipher_setkey() returned error\n" ); + polarssl_fprintf( stderr, "cipher_setkey() returned error\n" ); goto exit; } if( cipher_set_iv( &cipher_ctx, IV, 16 ) != 0 ) { - fprintf( stderr, "cipher_set_iv() returned error\n" ); + polarssl_fprintf( stderr, "cipher_set_iv() returned error\n" ); goto exit; } if( cipher_reset( &cipher_ctx ) != 0 ) { - fprintf( stderr, "cipher_reset() returned error\n" ); + polarssl_fprintf( stderr, "cipher_reset() returned error\n" ); goto exit; } @@ -463,7 +470,7 @@ int main( int argc, char *argv[] ) if( fread( buffer, 1, cipher_get_block_size( &cipher_ctx ), fin ) != (size_t) cipher_get_block_size( &cipher_ctx ) ) { - fprintf( stderr, "fread(%d bytes) failed\n", + polarssl_fprintf( stderr, "fread(%d bytes) failed\n", cipher_get_block_size( &cipher_ctx ) ); goto exit; } @@ -473,13 +480,13 @@ int main( int argc, char *argv[] ) cipher_get_block_size( &cipher_ctx ), output, &olen ) != 0 ) { - fprintf( stderr, "cipher_update() returned error\n" ); + polarssl_fprintf( stderr, "cipher_update() returned error\n" ); goto exit; } if( fwrite( output, 1, olen, fout ) != olen ) { - fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen ); + polarssl_fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen ); goto exit; } } @@ -491,7 +498,7 @@ int main( int argc, char *argv[] ) if( fread( buffer, 1, md_get_size( md_info ), fin ) != md_get_size( md_info ) ) { - fprintf( stderr, "fread(%d bytes) failed\n", md_get_size( md_info ) ); + polarssl_fprintf( stderr, "fread(%d bytes) failed\n", md_get_size( md_info ) ); goto exit; } @@ -502,7 +509,7 @@ int main( int argc, char *argv[] ) if( diff != 0 ) { - fprintf( stderr, "HMAC check failed: wrong key, " + polarssl_fprintf( stderr, "HMAC check failed: wrong key, " "or file corrupted.\n" ); goto exit; } @@ -514,7 +521,7 @@ int main( int argc, char *argv[] ) if( fwrite( output, 1, olen, fout ) != olen ) { - fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen ); + polarssl_fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen ); goto exit; } } diff --git a/programs/hash/generic_sum.c b/programs/hash/generic_sum.c index 34814d5db..d8c626c8f 100644 --- a/programs/hash/generic_sum.c +++ b/programs/hash/generic_sum.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #include #include @@ -37,7 +44,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_MD_C not defined.\n"); + polarssl_printf("POLARSSL_MD_C not defined.\n"); return( 0 ); } #else @@ -46,10 +53,10 @@ static int generic_wrapper( const md_info_t *md_info, char *filename, unsigned c int ret = md_file( md_info, filename, sum ); if( ret == 1 ) - fprintf( stderr, "failed to open: %s\n", filename ); + polarssl_fprintf( stderr, "failed to open: %s\n", filename ); if( ret == 2 ) - fprintf( stderr, "failed to read: %s\n", filename ); + polarssl_fprintf( stderr, "failed to read: %s\n", filename ); return( ret ); } @@ -63,9 +70,9 @@ static int generic_print( const md_info_t *md_info, char *filename ) return( 1 ); for( i = 0; i < md_info->size; i++ ) - printf( "%02x", sum[i] ); + polarssl_printf( "%02x", sum[i] ); - printf( " %s\n", filename ); + polarssl_printf( " %s\n", filename ); return( 0 ); } @@ -82,7 +89,7 @@ static int generic_check( const md_info_t *md_info, char *filename ) if( ( f = fopen( filename, "rb" ) ) == NULL ) { - printf( "failed to open: %s\n", filename ); + polarssl_printf( "failed to open: %s\n", filename ); return( 1 ); } @@ -99,13 +106,13 @@ static int generic_check( const md_info_t *md_info, char *filename ) if( n < (size_t) 2 * md_info->size + 4 ) { - printf("No '%s' hash found on line.\n", md_info->name); + polarssl_printf("No '%s' hash found on line.\n", md_info->name); continue; } if( line[2 * md_info->size] != ' ' || line[2 * md_info->size + 1] != ' ' ) { - printf("No '%s' hash found on line.\n", md_info->name); + polarssl_printf("No '%s' hash found on line.\n", md_info->name); continue; } @@ -133,7 +140,7 @@ static int generic_check( const md_info_t *md_info, char *filename ) if( diff != 0 ) { nb_err2++; - fprintf( stderr, "wrong checksum: %s\n", line + 66 ); + polarssl_fprintf( stderr, "wrong checksum: %s\n", line + 66 ); } n = sizeof( line ); @@ -141,13 +148,13 @@ static int generic_check( const md_info_t *md_info, char *filename ) if( nb_err1 != 0 ) { - printf( "WARNING: %d (out of %d) input files could " + polarssl_printf( "WARNING: %d (out of %d) input files could " "not be read\n", nb_err1, nb_tot1 ); } if( nb_err2 != 0 ) { - printf( "WARNING: %d (out of %d) computed checksums did " + polarssl_printf( "WARNING: %d (out of %d) computed checksums did " "not match\n", nb_err2, nb_tot2 ); } @@ -168,20 +175,20 @@ int main( int argc, char *argv[] ) { const int *list; - printf( "print mode: generic_sum ...\n" ); - printf( "check mode: generic_sum -c \n" ); + polarssl_printf( "print mode: generic_sum ...\n" ); + polarssl_printf( "check mode: generic_sum -c \n" ); - printf( "\nAvailable message digests:\n" ); + polarssl_printf( "\nAvailable message digests:\n" ); list = md_list(); while( *list ) { md_info = md_info_from_type( *list ); - printf( " %s\n", md_info->name ); + polarssl_printf( " %s\n", md_info->name ); list++; } #if defined(_WIN32) - printf( "\n Press Enter to exit this program.\n" ); + polarssl_printf( "\n Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif @@ -194,12 +201,12 @@ int main( int argc, char *argv[] ) md_info = md_info_from_string( argv[1] ); if( md_info == NULL ) { - fprintf( stderr, "Message Digest '%s' not found\n", argv[1] ); + polarssl_fprintf( stderr, "Message Digest '%s' not found\n", argv[1] ); return( 1 ); } if( md_init_ctx( &md_ctx, md_info) ) { - fprintf( stderr, "Failed to initialize context.\n" ); + polarssl_fprintf( stderr, "Failed to initialize context.\n" ); return( 1 ); } diff --git a/programs/hash/hello.c b/programs/hash/hello.c index 743b66a62..c6edf3330 100644 --- a/programs/hash/hello.c +++ b/programs/hash/hello.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include "polarssl/md5.h" @@ -36,7 +42,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_MD5_C not defined.\n"); + polarssl_printf("POLARSSL_MD5_C not defined.\n"); return( 0 ); } #else @@ -49,17 +55,17 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf( "\n MD5('%s') = ", str ); + polarssl_printf( "\n MD5('%s') = ", str ); md5( (unsigned char *) str, 13, digest ); for( i = 0; i < 16; i++ ) - printf( "%02x", digest[i] ); + polarssl_printf( "%02x", digest[i] ); - printf( "\n\n" ); + polarssl_printf( "\n\n" ); #if defined(_WIN32) - printf( " Press Enter to exit this program.\n" ); + polarssl_printf( " Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/hash/md5sum.c b/programs/hash/md5sum.c index 49dddd4ad..7dc5fdbe4 100644 --- a/programs/hash/md5sum.c +++ b/programs/hash/md5sum.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #include #include @@ -37,7 +44,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_MD5_C and/or POLARSSL_FS_IO not defined.\n"); + polarssl_printf("POLARSSL_MD5_C and/or POLARSSL_FS_IO not defined.\n"); return( 0 ); } #else @@ -46,10 +53,10 @@ static int md5_wrapper( char *filename, unsigned char *sum ) int ret = md5_file( filename, sum ); if( ret == 1 ) - fprintf( stderr, "failed to open: %s\n", filename ); + polarssl_fprintf( stderr, "failed to open: %s\n", filename ); if( ret == 2 ) - fprintf( stderr, "failed to read: %s\n", filename ); + polarssl_fprintf( stderr, "failed to read: %s\n", filename ); return( ret ); } @@ -63,9 +70,9 @@ static int md5_print( char *filename ) return( 1 ); for( i = 0; i < 16; i++ ) - printf( "%02x", sum[i] ); + polarssl_printf( "%02x", sum[i] ); - printf( " %s\n", filename ); + polarssl_printf( " %s\n", filename ); return( 0 ); } @@ -82,7 +89,7 @@ static int md5_check( char *filename ) if( ( f = fopen( filename, "rb" ) ) == NULL ) { - printf( "failed to open: %s\n", filename ); + polarssl_printf( "failed to open: %s\n", filename ); return( 1 ); } @@ -127,7 +134,7 @@ static int md5_check( char *filename ) if( diff != 0 ) { nb_err2++; - fprintf( stderr, "wrong checksum: %s\n", line + 34 ); + polarssl_fprintf( stderr, "wrong checksum: %s\n", line + 34 ); } n = sizeof( line ); @@ -137,13 +144,13 @@ static int md5_check( char *filename ) if( nb_err1 != 0 ) { - printf( "WARNING: %d (out of %d) input files could " + polarssl_printf( "WARNING: %d (out of %d) input files could " "not be read\n", nb_err1, nb_tot1 ); } if( nb_err2 != 0 ) { - printf( "WARNING: %d (out of %d) computed checksums did " + polarssl_printf( "WARNING: %d (out of %d) computed checksums did " "not match\n", nb_err2, nb_tot2 ); } @@ -156,11 +163,11 @@ int main( int argc, char *argv[] ) if( argc == 1 ) { - printf( "print mode: md5sum ...\n" ); - printf( "check mode: md5sum -c \n" ); + polarssl_printf( "print mode: md5sum ...\n" ); + polarssl_printf( "check mode: md5sum -c \n" ); #if defined(_WIN32) - printf( "\n Press Enter to exit this program.\n" ); + polarssl_printf( "\n Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/hash/sha1sum.c b/programs/hash/sha1sum.c index 1fc1b0048..cc5b42ef3 100644 --- a/programs/hash/sha1sum.c +++ b/programs/hash/sha1sum.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #include #include @@ -37,7 +44,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_SHA1_C and/or POLARSSL_FS_IO not defined.\n"); + polarssl_printf("POLARSSL_SHA1_C and/or POLARSSL_FS_IO not defined.\n"); return( 0 ); } #else @@ -46,10 +53,10 @@ static int sha1_wrapper( char *filename, unsigned char *sum ) int ret = sha1_file( filename, sum ); if( ret == 1 ) - fprintf( stderr, "failed to open: %s\n", filename ); + polarssl_fprintf( stderr, "failed to open: %s\n", filename ); if( ret == 2 ) - fprintf( stderr, "failed to read: %s\n", filename ); + polarssl_fprintf( stderr, "failed to read: %s\n", filename ); return( ret ); } @@ -63,9 +70,9 @@ static int sha1_print( char *filename ) return( 1 ); for( i = 0; i < 20; i++ ) - printf( "%02x", sum[i] ); + polarssl_printf( "%02x", sum[i] ); - printf( " %s\n", filename ); + polarssl_printf( " %s\n", filename ); return( 0 ); } @@ -82,7 +89,7 @@ static int sha1_check( char *filename ) if( ( f = fopen( filename, "rb" ) ) == NULL ) { - printf( "failed to open: %s\n", filename ); + polarssl_printf( "failed to open: %s\n", filename ); return( 1 ); } @@ -127,7 +134,7 @@ static int sha1_check( char *filename ) if( diff != 0 ) { nb_err2++; - fprintf( stderr, "wrong checksum: %s\n", line + 42 ); + polarssl_fprintf( stderr, "wrong checksum: %s\n", line + 42 ); } n = sizeof( line ); @@ -137,13 +144,13 @@ static int sha1_check( char *filename ) if( nb_err1 != 0 ) { - printf( "WARNING: %d (out of %d) input files could " + polarssl_printf( "WARNING: %d (out of %d) input files could " "not be read\n", nb_err1, nb_tot1 ); } if( nb_err2 != 0 ) { - printf( "WARNING: %d (out of %d) computed checksums did " + polarssl_printf( "WARNING: %d (out of %d) computed checksums did " "not match\n", nb_err2, nb_tot2 ); } @@ -156,11 +163,11 @@ int main( int argc, char *argv[] ) if( argc == 1 ) { - printf( "print mode: sha1sum ...\n" ); - printf( "check mode: sha1sum -c \n" ); + polarssl_printf( "print mode: sha1sum ...\n" ); + polarssl_printf( "check mode: sha1sum -c \n" ); #if defined(_WIN32) - printf( "\n Press Enter to exit this program.\n" ); + polarssl_printf( "\n Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/hash/sha2sum.c b/programs/hash/sha2sum.c index 72e17c94d..659c2717a 100644 --- a/programs/hash/sha2sum.c +++ b/programs/hash/sha2sum.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #include #include @@ -37,7 +44,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_SHA256_C and/or POLARSSL_FS_IO not defined.\n"); + polarssl_printf("POLARSSL_SHA256_C and/or POLARSSL_FS_IO not defined.\n"); return( 0 ); } #else @@ -46,10 +53,10 @@ static int sha256_wrapper( char *filename, unsigned char *sum ) int ret = sha256_file( filename, sum, 0 ); if( ret == 1 ) - fprintf( stderr, "failed to open: %s\n", filename ); + polarssl_fprintf( stderr, "failed to open: %s\n", filename ); if( ret == 2 ) - fprintf( stderr, "failed to read: %s\n", filename ); + polarssl_fprintf( stderr, "failed to read: %s\n", filename ); return( ret ); } @@ -63,9 +70,9 @@ static int sha256_print( char *filename ) return( 1 ); for( i = 0; i < 32; i++ ) - printf( "%02x", sum[i] ); + polarssl_printf( "%02x", sum[i] ); - printf( " %s\n", filename ); + polarssl_printf( " %s\n", filename ); return( 0 ); } @@ -82,7 +89,7 @@ static int sha256_check( char *filename ) if( ( f = fopen( filename, "rb" ) ) == NULL ) { - printf( "failed to open: %s\n", filename ); + polarssl_printf( "failed to open: %s\n", filename ); return( 1 ); } @@ -127,7 +134,7 @@ static int sha256_check( char *filename ) if( diff != 0 ) { nb_err2++; - fprintf( stderr, "wrong checksum: %s\n", line + 66 ); + polarssl_fprintf( stderr, "wrong checksum: %s\n", line + 66 ); } n = sizeof( line ); @@ -137,13 +144,13 @@ static int sha256_check( char *filename ) if( nb_err1 != 0 ) { - printf( "WARNING: %d (out of %d) input files could " + polarssl_printf( "WARNING: %d (out of %d) input files could " "not be read\n", nb_err1, nb_tot1 ); } if( nb_err2 != 0 ) { - printf( "WARNING: %d (out of %d) computed checksums did " + polarssl_printf( "WARNING: %d (out of %d) computed checksums did " "not match\n", nb_err2, nb_tot2 ); } @@ -156,11 +163,11 @@ int main( int argc, char *argv[] ) if( argc == 1 ) { - printf( "print mode: sha256sum ...\n" ); - printf( "check mode: sha256sum -c \n" ); + polarssl_printf( "print mode: sha256sum ...\n" ); + polarssl_printf( "check mode: sha256sum -c \n" ); #if defined(_WIN32) - printf( "\n Press Enter to exit this program.\n" ); + polarssl_printf( "\n Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/dh_client.c b/programs/pkey/dh_client.c index 73a59a96e..31250bd1e 100644 --- a/programs/pkey/dh_client.c +++ b/programs/pkey/dh_client.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include @@ -49,7 +55,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_AES_C and/or POLARSSL_DHM_C and/or POLARSSL_ENTROPY_C " + polarssl_printf("POLARSSL_AES_C and/or POLARSSL_DHM_C and/or POLARSSL_ENTROPY_C " "and/or POLARSSL_NET_C and/or POLARSSL_RSA_C and/or " "POLARSSL_SHA1_C and/or POLARSSL_FS_IO and/or " "POLARSSL_CTR_DRBG_C not defined.\n"); @@ -85,7 +91,7 @@ int main( int argc, char *argv[] ) /* * 1. Setup the RNG */ - printf( "\n . Seeding the random number generator" ); + polarssl_printf( "\n . Seeding the random number generator" ); fflush( stdout ); entropy_init( &entropy ); @@ -93,20 +99,20 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } /* * 2. Read the server's public RSA key */ - printf( "\n . Reading public key from rsa_pub.txt" ); + polarssl_printf( "\n . Reading public key from rsa_pub.txt" ); fflush( stdout ); if( ( f = fopen( "rsa_pub.txt", "rb" ) ) == NULL ) { ret = 1; - printf( " failed\n ! Could not open rsa_pub.txt\n" \ + polarssl_printf( " failed\n ! Could not open rsa_pub.txt\n" \ " ! Please run rsa_genkey first\n\n" ); goto exit; } @@ -116,7 +122,7 @@ int main( int argc, char *argv[] ) if( ( ret = mpi_read_file( &rsa.N, 16, f ) ) != 0 || ( ret = mpi_read_file( &rsa.E, 16, f ) ) != 0 ) { - printf( " failed\n ! mpi_read_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_read_file returned %d\n\n", ret ); goto exit; } @@ -127,35 +133,35 @@ int main( int argc, char *argv[] ) /* * 3. Initiate the connection */ - printf( "\n . Connecting to tcp/%s/%d", SERVER_NAME, + polarssl_printf( "\n . Connecting to tcp/%s/%d", SERVER_NAME, SERVER_PORT ); fflush( stdout ); if( ( ret = net_connect( &server_fd, SERVER_NAME, SERVER_PORT ) ) != 0 ) { - printf( " failed\n ! net_connect returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_connect returned %d\n\n", ret ); goto exit; } /* * 4a. First get the buffer length */ - printf( "\n . Receiving the server's DH parameters" ); + polarssl_printf( "\n . Receiving the server's DH parameters" ); fflush( stdout ); memset( buf, 0, sizeof( buf ) ); if( ( ret = net_recv( &server_fd, buf, 2 ) ) != 2 ) { - printf( " failed\n ! net_recv returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_recv returned %d\n\n", ret ); goto exit; } n = buflen = ( buf[0] << 8 ) | buf[1]; if( buflen < 1 || buflen > sizeof( buf ) ) { - printf( " failed\n ! Got an invalid buffer length\n\n" ); + polarssl_printf( " failed\n ! Got an invalid buffer length\n\n" ); goto exit; } @@ -166,7 +172,7 @@ int main( int argc, char *argv[] ) if( ( ret = net_recv( &server_fd, buf, n ) ) != (int) n ) { - printf( " failed\n ! net_recv returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_recv returned %d\n\n", ret ); goto exit; } @@ -174,14 +180,14 @@ int main( int argc, char *argv[] ) if( ( ret = dhm_read_params( &dhm, &p, end ) ) != 0 ) { - printf( " failed\n ! dhm_read_params returned %d\n\n", ret ); + polarssl_printf( " failed\n ! dhm_read_params returned %d\n\n", ret ); goto exit; } if( dhm.len < 64 || dhm.len > 512 ) { ret = 1; - printf( " failed\n ! Invalid DHM modulus size\n\n" ); + polarssl_printf( " failed\n ! Invalid DHM modulus size\n\n" ); goto exit; } @@ -189,7 +195,7 @@ int main( int argc, char *argv[] ) * 5. Check that the server's RSA signature matches * the SHA-1 hash of (P,G,Ys) */ - printf( "\n . Verifying the server's RSA signature" ); + polarssl_printf( "\n . Verifying the server's RSA signature" ); fflush( stdout ); p += 2; @@ -197,7 +203,7 @@ int main( int argc, char *argv[] ) if( ( n = (size_t) ( end - p ) ) != rsa.len ) { ret = 1; - printf( " failed\n ! Invalid RSA signature size\n\n" ); + polarssl_printf( " failed\n ! Invalid RSA signature size\n\n" ); goto exit; } @@ -206,46 +212,46 @@ int main( int argc, char *argv[] ) if( ( ret = rsa_pkcs1_verify( &rsa, NULL, NULL, RSA_PUBLIC, POLARSSL_MD_SHA1, 0, hash, p ) ) != 0 ) { - printf( " failed\n ! rsa_pkcs1_verify returned %d\n\n", ret ); + polarssl_printf( " failed\n ! rsa_pkcs1_verify returned %d\n\n", ret ); goto exit; } /* * 6. Send our public value: Yc = G ^ Xc mod P */ - printf( "\n . Sending own public value to server" ); + polarssl_printf( "\n . Sending own public value to server" ); fflush( stdout ); n = dhm.len; if( ( ret = dhm_make_public( &dhm, (int) dhm.len, buf, n, ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - printf( " failed\n ! dhm_make_public returned %d\n\n", ret ); + polarssl_printf( " failed\n ! dhm_make_public returned %d\n\n", ret ); goto exit; } if( ( ret = net_send( &server_fd, buf, n ) ) != (int) n ) { - printf( " failed\n ! net_send returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_send returned %d\n\n", ret ); goto exit; } /* * 7. Derive the shared secret: K = Ys ^ Xc mod P */ - printf( "\n . Shared secret: " ); + polarssl_printf( "\n . Shared secret: " ); fflush( stdout ); n = dhm.len; if( ( ret = dhm_calc_secret( &dhm, buf, &n, ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - printf( " failed\n ! dhm_calc_secret returned %d\n\n", ret ); + polarssl_printf( " failed\n ! dhm_calc_secret returned %d\n\n", ret ); goto exit; } for( n = 0; n < 16; n++ ) - printf( "%02x", buf[n] ); + polarssl_printf( "%02x", buf[n] ); /* * 8. Setup the AES-256 decryption key @@ -255,7 +261,7 @@ int main( int argc, char *argv[] ) * the keying material for the encryption/decryption keys, * IVs and MACs. */ - printf( "...\n . Receiving and decrypting the ciphertext" ); + polarssl_printf( "...\n . Receiving and decrypting the ciphertext" ); fflush( stdout ); aes_setkey_dec( &aes, buf, 256 ); @@ -264,13 +270,13 @@ int main( int argc, char *argv[] ) if( ( ret = net_recv( &server_fd, buf, 16 ) ) != 16 ) { - printf( " failed\n ! net_recv returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_recv returned %d\n\n", ret ); goto exit; } aes_crypt_ecb( &aes, AES_DECRYPT, buf, buf ); buf[16] = '\0'; - printf( "\n . Plaintext is \"%s\"\n\n", (char *) buf ); + polarssl_printf( "\n . Plaintext is \"%s\"\n\n", (char *) buf ); exit: @@ -284,7 +290,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/dh_genprime.c b/programs/pkey/dh_genprime.c index 978e48af6..8aabeedac 100644 --- a/programs/pkey/dh_genprime.c +++ b/programs/pkey/dh_genprime.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include "polarssl/bignum.h" @@ -47,7 +53,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " "POLARSSL_FS_IO and/or POLARSSL_CTR_DRBG_C and/or " "POLARSSL_GENPRIME not defined.\n"); return( 0 ); @@ -70,31 +76,31 @@ int main( int argc, char *argv[] ) if( ( ret = mpi_read_string( &G, 10, GENERATOR ) ) != 0 ) { - printf( " failed\n ! mpi_read_string returned %d\n", ret ); + polarssl_printf( " failed\n ! mpi_read_string returned %d\n", ret ); goto exit; } - printf( "\nWARNING: You should not generate and use your own DHM primes\n" ); - printf( " unless you are very certain of what you are doing!\n" ); - printf( " Failing to follow this instruction may result in\n" ); - printf( " weak security for your connections! Use the\n" ); - printf( " predefined DHM parameters from dhm.h instead!\n\n" ); - printf( "============================================================\n\n" ); + polarssl_printf( "\nWARNING: You should not generate and use your own DHM primes\n" ); + polarssl_printf( " unless you are very certain of what you are doing!\n" ); + polarssl_printf( " Failing to follow this instruction may result in\n" ); + polarssl_printf( " weak security for your connections! Use the\n" ); + polarssl_printf( " predefined DHM parameters from dhm.h instead!\n\n" ); + polarssl_printf( "============================================================\n\n" ); - printf( " ! Generating large primes may take minutes!\n" ); + polarssl_printf( " ! Generating large primes may take minutes!\n" ); - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); if( ( ret = ctr_drbg_init( &ctr_drbg, entropy_func, &entropy, (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } - printf( " ok\n . Generating the modulus, please wait..." ); + polarssl_printf( " ok\n . Generating the modulus, please wait..." ); fflush( stdout ); /* @@ -103,49 +109,49 @@ int main( int argc, char *argv[] ) if( ( ret = mpi_gen_prime( &P, DH_P_SIZE, 1, ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - printf( " failed\n ! mpi_gen_prime returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_gen_prime returned %d\n\n", ret ); goto exit; } - printf( " ok\n . Verifying that Q = (P-1)/2 is prime..." ); + polarssl_printf( " ok\n . Verifying that Q = (P-1)/2 is prime..." ); fflush( stdout ); if( ( ret = mpi_sub_int( &Q, &P, 1 ) ) != 0 ) { - printf( " failed\n ! mpi_sub_int returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_sub_int returned %d\n\n", ret ); goto exit; } if( ( ret = mpi_div_int( &Q, NULL, &Q, 2 ) ) != 0 ) { - printf( " failed\n ! mpi_div_int returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_div_int returned %d\n\n", ret ); goto exit; } if( ( ret = mpi_is_prime( &Q, ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - printf( " failed\n ! mpi_is_prime returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_is_prime returned %d\n\n", ret ); goto exit; } - printf( " ok\n . Exporting the value in dh_prime.txt..." ); + polarssl_printf( " ok\n . Exporting the value in dh_prime.txt..." ); fflush( stdout ); if( ( fout = fopen( "dh_prime.txt", "wb+" ) ) == NULL ) { ret = 1; - printf( " failed\n ! Could not create dh_prime.txt\n\n" ); + polarssl_printf( " failed\n ! Could not create dh_prime.txt\n\n" ); goto exit; } if( ( ret = mpi_write_file( "P = ", &P, 16, fout ) != 0 ) || ( ret = mpi_write_file( "G = ", &G, 16, fout ) != 0 ) ) { - printf( " failed\n ! mpi_write_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_write_file returned %d\n\n", ret ); goto exit; } - printf( " ok\n\n" ); + polarssl_printf( " ok\n\n" ); fclose( fout ); exit: @@ -155,7 +161,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " Press Enter to exit this program.\n" ); + polarssl_printf( " Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/dh_server.c b/programs/pkey/dh_server.c index bd8f0e8be..8c93ba1e1 100644 --- a/programs/pkey/dh_server.c +++ b/programs/pkey/dh_server.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include @@ -49,7 +55,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_AES_C and/or POLARSSL_DHM_C and/or POLARSSL_ENTROPY_C " + polarssl_printf("POLARSSL_AES_C and/or POLARSSL_DHM_C and/or POLARSSL_ENTROPY_C " "and/or POLARSSL_NET_C and/or POLARSSL_RSA_C and/or " "POLARSSL_SHA1_C and/or POLARSSL_FS_IO and/or " "POLARSSL_CTR_DBRG_C not defined.\n"); @@ -86,7 +92,7 @@ int main( int argc, char *argv[] ) /* * 1. Setup the RNG */ - printf( "\n . Seeding the random number generator" ); + polarssl_printf( "\n . Seeding the random number generator" ); fflush( stdout ); entropy_init( &entropy ); @@ -94,20 +100,20 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } /* * 2a. Read the server's private RSA key */ - printf( "\n . Reading private key from rsa_priv.txt" ); + polarssl_printf( "\n . Reading private key from rsa_priv.txt" ); fflush( stdout ); if( ( f = fopen( "rsa_priv.txt", "rb" ) ) == NULL ) { ret = 1; - printf( " failed\n ! Could not open rsa_priv.txt\n" \ + polarssl_printf( " failed\n ! Could not open rsa_priv.txt\n" \ " ! Please run rsa_genkey first\n\n" ); goto exit; } @@ -123,7 +129,7 @@ int main( int argc, char *argv[] ) ( ret = mpi_read_file( &rsa.DQ, 16, f ) ) != 0 || ( ret = mpi_read_file( &rsa.QP, 16, f ) ) != 0 ) { - printf( " failed\n ! mpi_read_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_read_file returned %d\n\n", ret ); goto exit; } @@ -134,13 +140,13 @@ int main( int argc, char *argv[] ) /* * 2b. Get the DHM modulus and generator */ - printf( "\n . Reading DH parameters from dh_prime.txt" ); + polarssl_printf( "\n . Reading DH parameters from dh_prime.txt" ); fflush( stdout ); if( ( f = fopen( "dh_prime.txt", "rb" ) ) == NULL ) { ret = 1; - printf( " failed\n ! Could not open dh_prime.txt\n" \ + polarssl_printf( " failed\n ! Could not open dh_prime.txt\n" \ " ! Please run dh_genprime first\n\n" ); goto exit; } @@ -148,7 +154,7 @@ int main( int argc, char *argv[] ) if( mpi_read_file( &dhm.P, 16, f ) != 0 || mpi_read_file( &dhm.G, 16, f ) != 0 ) { - printf( " failed\n ! Invalid DH parameter file\n\n" ); + polarssl_printf( " failed\n ! Invalid DH parameter file\n\n" ); goto exit; } @@ -157,25 +163,25 @@ int main( int argc, char *argv[] ) /* * 3. Wait for a client to connect */ - printf( "\n . Waiting for a remote connection" ); + polarssl_printf( "\n . Waiting for a remote connection" ); fflush( stdout ); if( ( ret = net_bind( &listen_fd, NULL, SERVER_PORT ) ) != 0 ) { - printf( " failed\n ! net_bind returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_bind returned %d\n\n", ret ); goto exit; } if( ( ret = net_accept( listen_fd, &client_fd, NULL ) ) != 0 ) { - printf( " failed\n ! net_accept returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_accept returned %d\n\n", ret ); goto exit; } /* * 4. Setup the DH parameters (P,G,Ys) */ - printf( "\n . Sending the server's DH parameters" ); + polarssl_printf( "\n . Sending the server's DH parameters" ); fflush( stdout ); memset( buf, 0, sizeof( buf ) ); @@ -183,7 +189,7 @@ int main( int argc, char *argv[] ) if( ( ret = dhm_make_params( &dhm, (int) mpi_size( &dhm.P ), buf, &n, ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - printf( " failed\n ! dhm_make_params returned %d\n\n", ret ); + polarssl_printf( " failed\n ! dhm_make_params returned %d\n\n", ret ); goto exit; } @@ -198,7 +204,7 @@ int main( int argc, char *argv[] ) if( ( ret = rsa_pkcs1_sign( &rsa, NULL, NULL, RSA_PRIVATE, POLARSSL_MD_SHA1, 0, hash, buf + n + 2 ) ) != 0 ) { - printf( " failed\n ! rsa_pkcs1_sign returned %d\n\n", ret ); + polarssl_printf( " failed\n ! rsa_pkcs1_sign returned %d\n\n", ret ); goto exit; } @@ -209,14 +215,14 @@ int main( int argc, char *argv[] ) if( ( ret = net_send( &client_fd, buf2, 2 ) ) != 2 || ( ret = net_send( &client_fd, buf, buflen ) ) != (int) buflen ) { - printf( " failed\n ! net_send returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_send returned %d\n\n", ret ); goto exit; } /* * 6. Get the client's public value: Yc = G ^ Xc mod P */ - printf( "\n . Receiving the client's public value" ); + polarssl_printf( "\n . Receiving the client's public value" ); fflush( stdout ); memset( buf, 0, sizeof( buf ) ); @@ -224,31 +230,31 @@ int main( int argc, char *argv[] ) if( ( ret = net_recv( &client_fd, buf, n ) ) != (int) n ) { - printf( " failed\n ! net_recv returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_recv returned %d\n\n", ret ); goto exit; } if( ( ret = dhm_read_public( &dhm, buf, dhm.len ) ) != 0 ) { - printf( " failed\n ! dhm_read_public returned %d\n\n", ret ); + polarssl_printf( " failed\n ! dhm_read_public returned %d\n\n", ret ); goto exit; } /* * 7. Derive the shared secret: K = Ys ^ Xc mod P */ - printf( "\n . Shared secret: " ); + polarssl_printf( "\n . Shared secret: " ); fflush( stdout ); if( ( ret = dhm_calc_secret( &dhm, buf, &n, ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - printf( " failed\n ! dhm_calc_secret returned %d\n\n", ret ); + polarssl_printf( " failed\n ! dhm_calc_secret returned %d\n\n", ret ); goto exit; } for( n = 0; n < 16; n++ ) - printf( "%02x", buf[n] ); + polarssl_printf( "%02x", buf[n] ); /* * 8. Setup the AES-256 encryption key @@ -258,7 +264,7 @@ int main( int argc, char *argv[] ) * the keying material for the encryption/decryption keys * and MACs. */ - printf( "...\n . Encrypting and sending the ciphertext" ); + polarssl_printf( "...\n . Encrypting and sending the ciphertext" ); fflush( stdout ); aes_setkey_enc( &aes, buf, 256 ); @@ -267,11 +273,11 @@ int main( int argc, char *argv[] ) if( ( ret = net_send( &client_fd, buf, 16 ) ) != 16 ) { - printf( " failed\n ! net_send returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_send returned %d\n\n", ret ); goto exit; } - printf( "\n\n" ); + polarssl_printf( "\n\n" ); exit: @@ -285,7 +291,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/ecdsa.c b/programs/pkey/ecdsa.c index 72c8c4dc2..f30ec487f 100644 --- a/programs/pkey/ecdsa.c +++ b/programs/pkey/ecdsa.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include "polarssl/entropy.h" #include "polarssl/ctr_drbg.h" #include "polarssl/ecdsa.h" @@ -54,7 +60,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_ECDSA_C and/or " + polarssl_printf("POLARSSL_ECDSA_C and/or " "POLARSSL_ENTROPY_C and/or POLARSSL_CTR_DRBG_C not defined\n"); return( 0 ); } @@ -65,11 +71,11 @@ static void dump_buf( const char *title, unsigned char *buf, size_t len ) { size_t i; - printf( "%s", title ); + polarssl_printf( "%s", title ); for( i = 0; i < len; i++ ) - printf("%c%c", "0123456789ABCDEF" [buf[i] / 16], + polarssl_printf("%c%c", "0123456789ABCDEF" [buf[i] / 16], "0123456789ABCDEF" [buf[i] % 16] ); - printf( "\n" ); + polarssl_printf( "\n" ); } static void dump_pubkey( const char *title, ecdsa_context *key ) @@ -80,7 +86,7 @@ static void dump_pubkey( const char *title, ecdsa_context *key ) if( ecp_point_write_binary( &key->grp, &key->Q, POLARSSL_ECP_PF_UNCOMPRESSED, &len, buf, sizeof buf ) != 0 ) { - printf("internal error\n"); + polarssl_printf("internal error\n"); return; } @@ -111,10 +117,10 @@ int main( int argc, char *argv[] ) if( argc != 1 ) { - printf( "usage: ecdsa\n" ); + polarssl_printf( "usage: ecdsa\n" ); #if defined(_WIN32) - printf( "\n" ); + polarssl_printf( "\n" ); #endif goto exit; @@ -123,7 +129,7 @@ int main( int argc, char *argv[] ) /* * Generate a key pair for signing */ - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -131,28 +137,28 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } - printf( " ok\n . Generating key pair..." ); + polarssl_printf( " ok\n . Generating key pair..." ); fflush( stdout ); if( ( ret = ecdsa_genkey( &ctx_sign, ECPARAMS, ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - printf( " failed\n ! ecdsa_genkey returned %d\n", ret ); + polarssl_printf( " failed\n ! ecdsa_genkey returned %d\n", ret ); goto exit; } - printf( " ok (key size: %d bits)\n", (int) ctx_sign.grp.pbits ); + polarssl_printf( " ok (key size: %d bits)\n", (int) ctx_sign.grp.pbits ); dump_pubkey( " + Public key: ", &ctx_sign ); /* * Sign some message hash */ - printf( " . Signing message..." ); + polarssl_printf( " . Signing message..." ); fflush( stdout ); if( ( ret = ecdsa_write_signature( &ctx_sign, @@ -160,10 +166,10 @@ int main( int argc, char *argv[] ) sig, &sig_len, ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - printf( " failed\n ! ecdsa_genkey returned %d\n", ret ); + polarssl_printf( " failed\n ! ecdsa_genkey returned %d\n", ret ); goto exit; } - printf( " ok (signature length = %u)\n", (unsigned int) sig_len ); + polarssl_printf( " ok (signature length = %u)\n", (unsigned int) sig_len ); dump_buf( " + Hash: ", hash, sizeof hash ); dump_buf( " + Signature: ", sig, sig_len ); @@ -184,18 +190,18 @@ int main( int argc, char *argv[] ) * chose to use a new one in order to make it clear that the verifying * context only needs the public key (Q), and not the private key (d). */ - printf( " . Preparing verification context..." ); + polarssl_printf( " . Preparing verification context..." ); fflush( stdout ); if( ( ret = ecp_group_copy( &ctx_verify.grp, &ctx_sign.grp ) ) != 0 ) { - printf( " failed\n ! ecp_group_copy returned %d\n", ret ); + polarssl_printf( " failed\n ! ecp_group_copy returned %d\n", ret ); goto exit; } if( ( ret = ecp_copy( &ctx_verify.Q, &ctx_sign.Q ) ) != 0 ) { - printf( " failed\n ! ecp_copy returned %d\n", ret ); + polarssl_printf( " failed\n ! ecp_copy returned %d\n", ret ); goto exit; } @@ -204,23 +210,23 @@ int main( int argc, char *argv[] ) /* * Verify signature */ - printf( " ok\n . Verifying signature..." ); + polarssl_printf( " ok\n . Verifying signature..." ); fflush( stdout ); if( ( ret = ecdsa_read_signature( &ctx_verify, hash, sizeof( hash ), sig, sig_len ) ) != 0 ) { - printf( " failed\n ! ecdsa_read_signature returned %d\n", ret ); + polarssl_printf( " failed\n ! ecdsa_read_signature returned %d\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); exit: #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/gen_key.c b/programs/pkey/gen_key.c index 5470b5737..2fd60d47c 100644 --- a/programs/pkey/gen_key.c +++ b/programs/pkey/gen_key.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include #include @@ -49,7 +55,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf( "POLARSSL_PK_WRITE_C and/or POLARSSL_FS_IO and/or " + polarssl_printf( "POLARSSL_PK_WRITE_C and/or POLARSSL_FS_IO and/or " "POLARSSL_ENTROPY_C and/or POLARSSL_CTR_DRBG_C " "not defined.\n" ); return( 0 ); @@ -204,13 +210,13 @@ int main( int argc, char *argv[] ) { usage: ret = 1; - printf( USAGE ); + polarssl_printf( USAGE ); #if defined(POLARSSL_ECP_C) - printf( " availabled ec_curve values:\n" ); + polarssl_printf( " availabled ec_curve values:\n" ); curve_info = ecp_curve_list(); - printf( " %s (default)\n", curve_info->name ); + polarssl_printf( " %s (default)\n", curve_info->name ); while( ( ++curve_info )->name != NULL ) - printf( " %s\n", curve_info->name ); + polarssl_printf( " %s\n", curve_info->name ); #endif goto exit; } @@ -274,7 +280,7 @@ int main( int argc, char *argv[] ) goto usage; } - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -284,11 +290,11 @@ int main( int argc, char *argv[] ) if( ( ret = entropy_add_source( &entropy, dev_random_entropy_poll, NULL, DEV_RANDOM_THRESHOLD ) ) != 0 ) { - printf( " failed\n ! entropy_add_source returned -0x%04x\n", -ret ); + polarssl_printf( " failed\n ! entropy_add_source returned -0x%04x\n", -ret ); goto exit; } - printf("\n Using /dev/random, so can take a long time! " ); + polarssl_printf("\n Using /dev/random, so can take a long time! " ); fflush( stdout ); } #endif /* !_WIN32 && POLARSSL_FS_IO */ @@ -297,19 +303,19 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned -0x%04x\n", -ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned -0x%04x\n", -ret ); goto exit; } /* * 1.1. Generate the key */ - printf( "\n . Generating the private key ..." ); + polarssl_printf( "\n . Generating the private key ..." ); fflush( stdout ); if( ( ret = pk_init_ctx( &key, pk_info_from_type( opt.type ) ) ) != 0 ) { - printf( " failed\n ! pk_init_ctx returned -0x%04x", -ret ); + polarssl_printf( " failed\n ! pk_init_ctx returned -0x%04x", -ret ); goto exit; } @@ -320,7 +326,7 @@ int main( int argc, char *argv[] ) opt.rsa_keysize, 65537 ); if( ret != 0 ) { - printf( " failed\n ! rsa_gen_key returned -0x%04x", -ret ); + polarssl_printf( " failed\n ! rsa_gen_key returned -0x%04x", -ret ); goto exit; } } @@ -333,21 +339,21 @@ int main( int argc, char *argv[] ) ctr_drbg_random, &ctr_drbg ); if( ret != 0 ) { - printf( " failed\n ! rsa_gen_key returned -0x%04x", -ret ); + polarssl_printf( " failed\n ! rsa_gen_key returned -0x%04x", -ret ); goto exit; } } else #endif /* POLARSSL_ECP_C */ { - printf( " failed\n ! key type not supported\n" ); + polarssl_printf( " failed\n ! key type not supported\n" ); goto exit; } /* * 1.2 Print the key */ - printf( " ok\n . Key information:\n" ); + polarssl_printf( " ok\n . Key information:\n" ); #if defined(POLARSSL_RSA_C) if( pk_get_type( &key ) == POLARSSL_PK_RSA ) @@ -368,7 +374,7 @@ int main( int argc, char *argv[] ) if( pk_get_type( &key ) == POLARSSL_PK_ECKEY ) { ecp_keypair *ecp = pk_ec( key ); - printf( "curve: %s\n", + polarssl_printf( "curve: %s\n", ecp_curve_info_from_grp_id( ecp->grp.id )->name ); mpi_write_file( "X_Q: ", &ecp->Q.X, 16, NULL ); mpi_write_file( "Y_Q: ", &ecp->Q.Y, 16, NULL ); @@ -376,20 +382,20 @@ int main( int argc, char *argv[] ) } else #endif - printf(" ! key type not supported\n"); + polarssl_printf(" ! key type not supported\n"); /* * 1.3 Export key */ - printf( " . Writing key to file..." ); + polarssl_printf( " . Writing key to file..." ); if( ( ret = write_private_key( &key, opt.filename ) ) != 0 ) { - printf( " failed\n" ); + polarssl_printf( " failed\n" ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); exit: @@ -397,9 +403,9 @@ exit: { #ifdef POLARSSL_ERROR_C polarssl_strerror( ret, buf, sizeof( buf ) ); - printf( " - %s\n", buf ); + polarssl_printf( " - %s\n", buf ); #else - printf("\n"); + polarssl_printf("\n"); #endif } @@ -408,7 +414,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/key_app.c b/programs/pkey/key_app.c index 3637d6d5b..418653cce 100644 --- a/programs/pkey/key_app.c +++ b/programs/pkey/key_app.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include #include @@ -41,7 +47,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or " "POLARSSL_PK_PARSE_C and/or POLARSSL_FS_IO not defined.\n"); return( 0 ); } @@ -94,7 +100,7 @@ int main( int argc, char *argv[] ) if( argc == 0 ) { usage: - printf( USAGE ); + polarssl_printf( USAGE ); goto exit; } @@ -133,7 +139,7 @@ int main( int argc, char *argv[] ) { if( strlen( opt.password ) && strlen( opt.password_file ) ) { - printf( "Error: cannot have both password and password_file\n" ); + polarssl_printf( "Error: cannot have both password and password_file\n" ); goto usage; } @@ -141,16 +147,16 @@ int main( int argc, char *argv[] ) { FILE *f; - printf( "\n . Loading the password file ..." ); + polarssl_printf( "\n . Loading the password file ..." ); if( ( f = fopen( opt.password_file, "rb" ) ) == NULL ) { - printf( " failed\n ! fopen returned NULL\n" ); + polarssl_printf( " failed\n ! fopen returned NULL\n" ); goto exit; } if( fgets( buf, sizeof(buf), f ) == NULL ) { fclose( f ); - printf( "Error: fgets() failed to retrieve password\n" ); + polarssl_printf( "Error: fgets() failed to retrieve password\n" ); goto exit; } fclose( f ); @@ -164,23 +170,23 @@ int main( int argc, char *argv[] ) /* * 1.1. Load the key */ - printf( "\n . Loading the private key ..." ); + polarssl_printf( "\n . Loading the private key ..." ); fflush( stdout ); ret = pk_parse_keyfile( &pk, opt.filename, opt.password ); if( ret != 0 ) { - printf( " failed\n ! pk_parse_keyfile returned -0x%04x\n", -ret ); + polarssl_printf( " failed\n ! pk_parse_keyfile returned -0x%04x\n", -ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.2 Print the key */ - printf( " . Key information ...\n" ); + polarssl_printf( " . Key information ...\n" ); #if defined(POLARSSL_RSA_C) if( pk_get_type( &pk ) == POLARSSL_PK_RSA ) { @@ -208,7 +214,7 @@ int main( int argc, char *argv[] ) else #endif { - printf("Do not know how to print key information for this type\n" ); + polarssl_printf("Do not know how to print key information for this type\n" ); goto exit; } } @@ -217,20 +223,20 @@ int main( int argc, char *argv[] ) /* * 1.1. Load the key */ - printf( "\n . Loading the public key ..." ); + polarssl_printf( "\n . Loading the public key ..." ); fflush( stdout ); ret = pk_parse_public_keyfile( &pk, opt.filename ); if( ret != 0 ) { - printf( " failed\n ! pk_parse_public_keyfile returned -0x%04x\n", -ret ); + polarssl_printf( " failed\n ! pk_parse_public_keyfile returned -0x%04x\n", -ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); - printf( " . Key information ...\n" ); + polarssl_printf( " . Key information ...\n" ); #if defined(POLARSSL_RSA_C) if( pk_get_type( &pk ) == POLARSSL_PK_RSA ) { @@ -251,7 +257,7 @@ int main( int argc, char *argv[] ) else #endif { - printf("Do not know how to print key information for this type\n" ); + polarssl_printf("Do not know how to print key information for this type\n" ); goto exit; } } @@ -262,13 +268,13 @@ exit: #if defined(POLARSSL_ERROR_C) polarssl_strerror( ret, buf, sizeof(buf) ); - printf( " ! Last error was: %s\n", buf ); + polarssl_printf( " ! Last error was: %s\n", buf ); #endif pk_free( &pk ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/key_app_writer.c b/programs/pkey/key_app_writer.c index 18e644267..dad2c13f9 100644 --- a/programs/pkey/key_app_writer.c +++ b/programs/pkey/key_app_writer.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include #include @@ -40,7 +46,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf( "POLARSSL_PK_WRITE_C and/or POLARSSL_FS_IO not defined.\n" ); + polarssl_printf( "POLARSSL_PK_WRITE_C and/or POLARSSL_FS_IO not defined.\n" ); return( 0 ); } #else @@ -201,7 +207,7 @@ int main( int argc, char *argv[] ) { usage: ret = 1; - printf( USAGE ); + polarssl_printf( USAGE ); goto exit; } @@ -258,13 +264,13 @@ int main( int argc, char *argv[] ) if( opt.mode == MODE_NONE && opt.output_mode != OUTPUT_MODE_NONE ) { - printf( "\nCannot output a key without reading one.\n"); + polarssl_printf( "\nCannot output a key without reading one.\n"); goto exit; } if( opt.mode == MODE_PUBLIC && opt.output_mode == OUTPUT_MODE_PRIVATE ) { - printf( "\nCannot output a private key from a public key.\n"); + polarssl_printf( "\nCannot output a private key from a public key.\n"); goto exit; } @@ -273,7 +279,7 @@ int main( int argc, char *argv[] ) /* * 1.1. Load the key */ - printf( "\n . Loading the private key ..." ); + polarssl_printf( "\n . Loading the private key ..." ); fflush( stdout ); ret = pk_parse_keyfile( &key, opt.filename, NULL ); @@ -281,16 +287,16 @@ int main( int argc, char *argv[] ) if( ret != 0 ) { polarssl_strerror( ret, (char *) buf, sizeof(buf) ); - printf( " failed\n ! pk_parse_keyfile returned -0x%04x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! pk_parse_keyfile returned -0x%04x - %s\n\n", -ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.2 Print the key */ - printf( " . Key information ...\n" ); + polarssl_printf( " . Key information ...\n" ); #if defined(POLARSSL_RSA_C) if( pk_get_type( &key ) == POLARSSL_PK_RSA ) @@ -318,7 +324,7 @@ int main( int argc, char *argv[] ) } else #endif - printf("key type not supported yet\n"); + polarssl_printf("key type not supported yet\n"); } else if( opt.mode == MODE_PUBLIC ) @@ -326,7 +332,7 @@ int main( int argc, char *argv[] ) /* * 1.1. Load the key */ - printf( "\n . Loading the public key ..." ); + polarssl_printf( "\n . Loading the public key ..." ); fflush( stdout ); ret = pk_parse_public_keyfile( &key, opt.filename ); @@ -334,16 +340,16 @@ int main( int argc, char *argv[] ) if( ret != 0 ) { polarssl_strerror( ret, (char *) buf, sizeof(buf) ); - printf( " failed\n ! pk_parse_public_key returned -0x%04x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! pk_parse_public_key returned -0x%04x - %s\n\n", -ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.2 Print the key */ - printf( " . Key information ...\n" ); + polarssl_printf( " . Key information ...\n" ); #if defined(POLARSSL_RSA_C) if( pk_get_type( &key ) == POLARSSL_PK_RSA ) @@ -364,7 +370,7 @@ int main( int argc, char *argv[] ) } else #endif - printf("key type not supported yet\n"); + polarssl_printf("key type not supported yet\n"); } else goto usage; @@ -384,16 +390,16 @@ exit: { #ifdef POLARSSL_ERROR_C polarssl_strerror( ret, buf, sizeof( buf ) ); - printf( " - %s\n", buf ); + polarssl_printf( " - %s\n", buf ); #else - printf("\n"); + polarssl_printf("\n"); #endif } pk_free( &key ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/mpi_demo.c b/programs/pkey/mpi_demo.c index b0ece44af..93535b3ee 100644 --- a/programs/pkey/mpi_demo.c +++ b/programs/pkey/mpi_demo.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include "polarssl/bignum.h" @@ -36,7 +42,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_FS_IO not defined.\n"); + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_FS_IO not defined.\n"); return( 0 ); } #else @@ -56,11 +62,11 @@ int main( int argc, char *argv[] ) mpi_read_string( &E, 10, "257" ); mpi_mul_mpi( &N, &P, &Q ); - printf( "\n Public key:\n\n" ); + polarssl_printf( "\n Public key:\n\n" ); mpi_write_file( " N = ", &N, 10, NULL ); mpi_write_file( " E = ", &E, 10, NULL ); - printf( "\n Private key:\n\n" ); + polarssl_printf( "\n Private key:\n\n" ); mpi_write_file( " P = ", &P, 10, NULL ); mpi_write_file( " Q = ", &Q, 10, NULL ); @@ -73,24 +79,24 @@ int main( int argc, char *argv[] ) mpi_write_file( " D = E^-1 mod (P-1)*(Q-1) = ", &D, 10, NULL ); #else - printf("\nTest skipped (POLARSSL_GENPRIME not defined).\n\n"); + polarssl_printf("\nTest skipped (POLARSSL_GENPRIME not defined).\n\n"); #endif mpi_read_string( &X, 10, "55555" ); mpi_exp_mod( &Y, &X, &E, &N, NULL ); mpi_exp_mod( &Z, &Y, &D, &N, NULL ); - printf( "\n RSA operation:\n\n" ); + polarssl_printf( "\n RSA operation:\n\n" ); mpi_write_file( " X (plaintext) = ", &X, 10, NULL ); mpi_write_file( " Y (ciphertext) = X^E mod N = ", &Y, 10, NULL ); mpi_write_file( " Z (decrypted) = Y^D mod N = ", &Z, 10, NULL ); - printf( "\n" ); + polarssl_printf( "\n" ); mpi_free( &E ); mpi_free( &P ); mpi_free( &Q ); mpi_free( &N ); mpi_free( &H ); mpi_free( &D ); mpi_free( &X ); mpi_free( &Y ); mpi_free( &Z ); #if defined(_WIN32) - printf( " Press Enter to exit this program.\n" ); + polarssl_printf( " Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/pk_decrypt.c b/programs/pkey/pk_decrypt.c index f80c1e234..6fcc4af14 100644 --- a/programs/pkey/pk_decrypt.c +++ b/programs/pkey/pk_decrypt.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include @@ -42,7 +48,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_PK_PARSE_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_PK_PARSE_C and/or " "POLARSSL_FS_IO and/or POLARSSL_ENTROPY_C and/or " "POLARSSL_CTR_DRBG_C not defined.\n"); return( 0 ); @@ -66,16 +72,16 @@ int main( int argc, char *argv[] ) if( argc != 2 ) { - printf( "usage: pk_decrypt \n" ); + polarssl_printf( "usage: pk_decrypt \n" ); #if defined(_WIN32) - printf( "\n" ); + polarssl_printf( "\n" ); #endif goto exit; } - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -83,18 +89,18 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } - printf( "\n . Reading private key from '%s'", argv[1] ); + polarssl_printf( "\n . Reading private key from '%s'", argv[1] ); fflush( stdout ); pk_init( &pk ); if( ( ret = pk_parse_keyfile( &pk, argv[1], "" ) ) != 0 ) { - printf( " failed\n ! pk_parse_keyfile returned -0x%04x\n", -ret ); + polarssl_printf( " failed\n ! pk_parse_keyfile returned -0x%04x\n", -ret ); goto exit; } @@ -105,7 +111,7 @@ int main( int argc, char *argv[] ) if( ( f = fopen( "result-enc.txt", "rb" ) ) == NULL ) { - printf( "\n ! Could not open %s\n\n", "result-enc.txt" ); + polarssl_printf( "\n ! Could not open %s\n\n", "result-enc.txt" ); goto exit; } @@ -120,19 +126,19 @@ int main( int argc, char *argv[] ) /* * Decrypt the encrypted RSA data and print the result. */ - printf( "\n . Decrypting the encrypted data" ); + polarssl_printf( "\n . Decrypting the encrypted data" ); fflush( stdout ); if( ( ret = pk_decrypt( &pk, buf, i, result, &olen, sizeof(result), ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - printf( " failed\n ! pk_decrypt returned -0x%04x\n", -ret ); + polarssl_printf( " failed\n ! pk_decrypt returned -0x%04x\n", -ret ); goto exit; } - printf( "\n . OK\n\n" ); + polarssl_printf( "\n . OK\n\n" ); - printf( "The decrypted result is: '%s'\n\n", result ); + polarssl_printf( "The decrypted result is: '%s'\n\n", result ); ret = 0; @@ -142,11 +148,11 @@ exit: #if defined(POLARSSL_ERROR_C) polarssl_strerror( ret, (char *) buf, sizeof(buf) ); - printf( " ! Last error was: %s\n", buf ); + polarssl_printf( " ! Last error was: %s\n", buf ); #endif #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/pk_encrypt.c b/programs/pkey/pk_encrypt.c index 223044bbb..121e3b199 100644 --- a/programs/pkey/pk_encrypt.c +++ b/programs/pkey/pk_encrypt.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #include #include @@ -42,7 +49,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_PK_PARSE_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_PK_PARSE_C and/or " "POLARSSL_ENTROPY_C and/or POLARSSL_FS_IO and/or " "POLARSSL_CTR_DRBG_C not defined.\n"); return( 0 ); @@ -64,16 +71,16 @@ int main( int argc, char *argv[] ) if( argc != 3 ) { - printf( "usage: pk_encrypt \n" ); + polarssl_printf( "usage: pk_encrypt \n" ); #if defined(_WIN32) - printf( "\n" ); + polarssl_printf( "\n" ); #endif goto exit; } - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -81,24 +88,24 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned -0x%04x\n", -ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned -0x%04x\n", -ret ); goto exit; } - printf( "\n . Reading public key from '%s'", argv[1] ); + polarssl_printf( "\n . Reading public key from '%s'", argv[1] ); fflush( stdout ); pk_init( &pk ); if( ( ret = pk_parse_public_keyfile( &pk, argv[1] ) ) != 0 ) { - printf( " failed\n ! pk_parse_public_keyfile returned -0x%04x\n", -ret ); + polarssl_printf( " failed\n ! pk_parse_public_keyfile returned -0x%04x\n", -ret ); goto exit; } if( strlen( argv[2] ) > 100 ) { - printf( " Input data larger than 100 characters.\n\n" ); + polarssl_printf( " Input data larger than 100 characters.\n\n" ); goto exit; } @@ -107,14 +114,14 @@ int main( int argc, char *argv[] ) /* * Calculate the RSA encryption of the hash. */ - printf( "\n . Generating the encrypted value" ); + polarssl_printf( "\n . Generating the encrypted value" ); fflush( stdout ); if( ( ret = pk_encrypt( &pk, input, strlen( argv[2] ), buf, &olen, sizeof(buf), ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - printf( " failed\n ! pk_encrypt returned -0x%04x\n", -ret ); + polarssl_printf( " failed\n ! pk_encrypt returned -0x%04x\n", -ret ); goto exit; } @@ -124,17 +131,17 @@ int main( int argc, char *argv[] ) if( ( f = fopen( "result-enc.txt", "wb+" ) ) == NULL ) { ret = 1; - printf( " failed\n ! Could not create %s\n\n", "result-enc.txt" ); + polarssl_printf( " failed\n ! Could not create %s\n\n", "result-enc.txt" ); goto exit; } for( i = 0; i < olen; i++ ) - fprintf( f, "%02X%s", buf[i], + polarssl_fprintf( f, "%02X%s", buf[i], ( i + 1 ) % 16 == 0 ? "\r\n" : " " ); fclose( f ); - printf( "\n . Done (created \"%s\")\n\n", "result-enc.txt" ); + polarssl_printf( "\n . Done (created \"%s\")\n\n", "result-enc.txt" ); exit: ctr_drbg_free( &ctr_drbg ); @@ -142,11 +149,11 @@ exit: #if defined(POLARSSL_ERROR_C) polarssl_strerror( ret, (char *) buf, sizeof(buf) ); - printf( " ! Last error was: %s\n", buf ); + polarssl_printf( " ! Last error was: %s\n", buf ); #endif #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/pk_sign.c b/programs/pkey/pk_sign.c index 151e26325..3f3b85f41 100644 --- a/programs/pkey/pk_sign.c +++ b/programs/pkey/pk_sign.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include @@ -49,7 +55,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " "POLARSSL_SHA1_C and/or " "POLARSSL_PK_PARSE_C and/or POLARSSL_FS_IO and/or " "POLARSSL_CTR_DRBG_C not defined.\n"); @@ -74,33 +80,33 @@ int main( int argc, char *argv[] ) if( argc != 3 ) { - printf( "usage: pk_sign \n" ); + polarssl_printf( "usage: pk_sign \n" ); #if defined(_WIN32) - printf( "\n" ); + polarssl_printf( "\n" ); #endif goto exit; } - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); if( ( ret = ctr_drbg_init( &ctr_drbg, entropy_func, &entropy, (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned -0x%04x\n", -ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned -0x%04x\n", -ret ); goto exit; } - printf( "\n . Reading private key from '%s'", argv[1] ); + polarssl_printf( "\n . Reading private key from '%s'", argv[1] ); fflush( stdout ); if( ( ret = pk_parse_keyfile( &pk, argv[1], "" ) ) != 0 ) { ret = 1; - printf( " failed\n ! Could not open '%s'\n", argv[1] ); + polarssl_printf( " failed\n ! Could not open '%s'\n", argv[1] ); goto exit; } @@ -108,19 +114,19 @@ int main( int argc, char *argv[] ) * Compute the SHA-1 hash of the input file, * then calculate the signature of the hash. */ - printf( "\n . Generating the SHA-1 signature" ); + polarssl_printf( "\n . Generating the SHA-1 signature" ); fflush( stdout ); if( ( ret = sha1_file( argv[2], hash ) ) != 0 ) { - printf( " failed\n ! Could not open or read %s\n\n", argv[2] ); + polarssl_printf( " failed\n ! Could not open or read %s\n\n", argv[2] ); goto exit; } if( ( ret = pk_sign( &pk, POLARSSL_MD_SHA1, hash, 0, buf, &olen, ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - printf( " failed\n ! pk_sign returned -0x%04x\n", -ret ); + polarssl_printf( " failed\n ! pk_sign returned -0x%04x\n", -ret ); goto exit; } @@ -132,19 +138,19 @@ int main( int argc, char *argv[] ) if( ( f = fopen( filename, "wb+" ) ) == NULL ) { ret = 1; - printf( " failed\n ! Could not create %s\n\n", filename ); + polarssl_printf( " failed\n ! Could not create %s\n\n", filename ); goto exit; } if( fwrite( buf, 1, olen, f ) != olen ) { - printf( "failed\n ! fwrite failed\n\n" ); + polarssl_printf( "failed\n ! fwrite failed\n\n" ); goto exit; } fclose( f ); - printf( "\n . Done (created \"%s\")\n\n", filename ); + polarssl_printf( "\n . Done (created \"%s\")\n\n", filename ); exit: pk_free( &pk ); @@ -153,11 +159,11 @@ exit: #if defined(POLARSSL_ERROR_C) polarssl_strerror( ret, (char *) buf, sizeof(buf) ); - printf( " ! Last error was: %s\n", buf ); + polarssl_printf( " ! Last error was: %s\n", buf ); #endif #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/pk_verify.c b/programs/pkey/pk_verify.c index f2e5eb3d4..0ceb60151 100644 --- a/programs/pkey/pk_verify.c +++ b/programs/pkey/pk_verify.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include @@ -46,7 +52,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or " "POLARSSL_SHA1_C and/or POLARSSL_PK_PARSE_C and/or " "POLARSSL_FS_IO not defined.\n"); return( 0 ); @@ -66,21 +72,21 @@ int main( int argc, char *argv[] ) if( argc != 3 ) { - printf( "usage: pk_verify \n" ); + polarssl_printf( "usage: pk_verify \n" ); #if defined(_WIN32) - printf( "\n" ); + polarssl_printf( "\n" ); #endif goto exit; } - printf( "\n . Reading public key from '%s'", argv[1] ); + polarssl_printf( "\n . Reading public key from '%s'", argv[1] ); fflush( stdout ); if( ( ret = pk_parse_public_keyfile( &pk, argv[1] ) ) != 0 ) { - printf( " failed\n ! pk_parse_public_keyfile returned -0x%04x\n", -ret ); + polarssl_printf( " failed\n ! pk_parse_public_keyfile returned -0x%04x\n", -ret ); goto exit; } @@ -92,7 +98,7 @@ int main( int argc, char *argv[] ) if( ( f = fopen( filename, "rb" ) ) == NULL ) { - printf( "\n ! Could not open %s\n\n", filename ); + polarssl_printf( "\n ! Could not open %s\n\n", filename ); goto exit; } @@ -105,23 +111,23 @@ int main( int argc, char *argv[] ) * Compute the SHA-1 hash of the input file and compare * it with the hash decrypted from the signature. */ - printf( "\n . Verifying the SHA-1 signature" ); + polarssl_printf( "\n . Verifying the SHA-1 signature" ); fflush( stdout ); if( ( ret = sha1_file( argv[2], hash ) ) != 0 ) { - printf( " failed\n ! Could not open or read %s\n\n", argv[2] ); + polarssl_printf( " failed\n ! Could not open or read %s\n\n", argv[2] ); goto exit; } if( ( ret = pk_verify( &pk, POLARSSL_MD_SHA1, hash, 0, buf, i ) ) != 0 ) { - printf( " failed\n ! pk_verify returned -0x%04x\n", -ret ); + polarssl_printf( " failed\n ! pk_verify returned -0x%04x\n", -ret ); goto exit; } - printf( "\n . OK (the decrypted SHA-1 hash matches)\n\n" ); + polarssl_printf( "\n . OK (the decrypted SHA-1 hash matches)\n\n" ); ret = 0; @@ -130,11 +136,11 @@ exit: #if defined(POLARSSL_ERROR_C) polarssl_strerror( ret, (char *) buf, sizeof(buf) ); - printf( " ! Last error was: %s\n", buf ); + polarssl_printf( " ! Last error was: %s\n", buf ); #endif #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/rsa_decrypt.c b/programs/pkey/rsa_decrypt.c index 4d42bc182..215669cca 100644 --- a/programs/pkey/rsa_decrypt.c +++ b/programs/pkey/rsa_decrypt.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include @@ -41,7 +47,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " "POLARSSL_FS_IO and/or POLARSSL_ENTROPY_C and/or " "POLARSSL_CTR_DRBG_C not defined.\n"); return( 0 ); @@ -65,16 +71,16 @@ int main( int argc, char *argv[] ) if( argc != 1 ) { - printf( "usage: rsa_decrypt\n" ); + polarssl_printf( "usage: rsa_decrypt\n" ); #if defined(_WIN32) - printf( "\n" ); + polarssl_printf( "\n" ); #endif goto exit; } - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -82,16 +88,16 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } - printf( "\n . Reading private key from rsa_priv.txt" ); + polarssl_printf( "\n . Reading private key from rsa_priv.txt" ); fflush( stdout ); if( ( f = fopen( "rsa_priv.txt", "rb" ) ) == NULL ) { - printf( " failed\n ! Could not open rsa_priv.txt\n" \ + polarssl_printf( " failed\n ! Could not open rsa_priv.txt\n" \ " ! Please run rsa_genkey first\n\n" ); goto exit; } @@ -107,7 +113,7 @@ int main( int argc, char *argv[] ) ( ret = mpi_read_file( &rsa.DQ, 16, f ) ) != 0 || ( ret = mpi_read_file( &rsa.QP, 16, f ) ) != 0 ) { - printf( " failed\n ! mpi_read_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_read_file returned %d\n\n", ret ); goto exit; } @@ -122,7 +128,7 @@ int main( int argc, char *argv[] ) if( ( f = fopen( "result-enc.txt", "rb" ) ) == NULL ) { - printf( "\n ! Could not open %s\n\n", "result-enc.txt" ); + polarssl_printf( "\n ! Could not open %s\n\n", "result-enc.txt" ); goto exit; } @@ -136,27 +142,27 @@ int main( int argc, char *argv[] ) if( i != rsa.len ) { - printf( "\n ! Invalid RSA signature format\n\n" ); + polarssl_printf( "\n ! Invalid RSA signature format\n\n" ); goto exit; } /* * Decrypt the encrypted RSA data and print the result. */ - printf( "\n . Decrypting the encrypted data" ); + polarssl_printf( "\n . Decrypting the encrypted data" ); fflush( stdout ); if( ( ret = rsa_pkcs1_decrypt( &rsa, ctr_drbg_random, &ctr_drbg, RSA_PRIVATE, &i, buf, result, 1024 ) ) != 0 ) { - printf( " failed\n ! rsa_pkcs1_decrypt returned %d\n\n", ret ); + polarssl_printf( " failed\n ! rsa_pkcs1_decrypt returned %d\n\n", ret ); goto exit; } - printf( "\n . OK\n\n" ); + polarssl_printf( "\n . OK\n\n" ); - printf( "The decrypted result is: '%s'\n\n", result ); + polarssl_printf( "The decrypted result is: '%s'\n\n", result ); ret = 0; @@ -165,7 +171,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/rsa_encrypt.c b/programs/pkey/rsa_encrypt.c index 69ffbcdae..e3cd90ad5 100644 --- a/programs/pkey/rsa_encrypt.c +++ b/programs/pkey/rsa_encrypt.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #include #include @@ -41,7 +48,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " "POLARSSL_ENTROPY_C and/or POLARSSL_FS_IO and/or " "POLARSSL_CTR_DRBG_C not defined.\n"); return( 0 ); @@ -63,16 +70,16 @@ int main( int argc, char *argv[] ) if( argc != 2 ) { - printf( "usage: rsa_encrypt \n" ); + polarssl_printf( "usage: rsa_encrypt \n" ); #if defined(_WIN32) - printf( "\n" ); + polarssl_printf( "\n" ); #endif goto exit; } - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -80,17 +87,17 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } - printf( "\n . Reading public key from rsa_pub.txt" ); + polarssl_printf( "\n . Reading public key from rsa_pub.txt" ); fflush( stdout ); if( ( f = fopen( "rsa_pub.txt", "rb" ) ) == NULL ) { ret = 1; - printf( " failed\n ! Could not open rsa_pub.txt\n" \ + polarssl_printf( " failed\n ! Could not open rsa_pub.txt\n" \ " ! Please run rsa_genkey first\n\n" ); goto exit; } @@ -100,7 +107,7 @@ int main( int argc, char *argv[] ) if( ( ret = mpi_read_file( &rsa.N, 16, f ) ) != 0 || ( ret = mpi_read_file( &rsa.E, 16, f ) ) != 0 ) { - printf( " failed\n ! mpi_read_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_read_file returned %d\n\n", ret ); goto exit; } @@ -110,7 +117,7 @@ int main( int argc, char *argv[] ) if( strlen( argv[1] ) > 100 ) { - printf( " Input data larger than 100 characters.\n\n" ); + polarssl_printf( " Input data larger than 100 characters.\n\n" ); goto exit; } @@ -119,14 +126,14 @@ int main( int argc, char *argv[] ) /* * Calculate the RSA encryption of the hash. */ - printf( "\n . Generating the RSA encrypted value" ); + polarssl_printf( "\n . Generating the RSA encrypted value" ); fflush( stdout ); if( ( ret = rsa_pkcs1_encrypt( &rsa, ctr_drbg_random, &ctr_drbg, RSA_PUBLIC, strlen( argv[1] ), input, buf ) ) != 0 ) { - printf( " failed\n ! rsa_pkcs1_encrypt returned %d\n\n", ret ); + polarssl_printf( " failed\n ! rsa_pkcs1_encrypt returned %d\n\n", ret ); goto exit; } @@ -136,24 +143,24 @@ int main( int argc, char *argv[] ) if( ( f = fopen( "result-enc.txt", "wb+" ) ) == NULL ) { ret = 1; - printf( " failed\n ! Could not create %s\n\n", "result-enc.txt" ); + polarssl_printf( " failed\n ! Could not create %s\n\n", "result-enc.txt" ); goto exit; } for( i = 0; i < rsa.len; i++ ) - fprintf( f, "%02X%s", buf[i], + polarssl_fprintf( f, "%02X%s", buf[i], ( i + 1 ) % 16 == 0 ? "\r\n" : " " ); fclose( f ); - printf( "\n . Done (created \"%s\")\n\n", "result-enc.txt" ); + polarssl_printf( "\n . Done (created \"%s\")\n\n", "result-enc.txt" ); exit: ctr_drbg_free( &ctr_drbg ); entropy_free( &entropy ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/rsa_genkey.c b/programs/pkey/rsa_genkey.c index 556718cd1..95bc823f3 100644 --- a/programs/pkey/rsa_genkey.c +++ b/programs/pkey/rsa_genkey.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include "polarssl/entropy.h" @@ -45,7 +51,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " "POLARSSL_RSA_C and/or POLARSSL_GENPRIME and/or " "POLARSSL_FS_IO and/or POLARSSL_CTR_DRBG_C not defined.\n"); return( 0 ); @@ -64,7 +70,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -72,11 +78,11 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } - printf( " ok\n . Generating the RSA key [ %d-bit ]...", KEY_SIZE ); + polarssl_printf( " ok\n . Generating the RSA key [ %d-bit ]...", KEY_SIZE ); fflush( stdout ); rsa_init( &rsa, RSA_PKCS_V15, 0 ); @@ -84,16 +90,16 @@ int main( int argc, char *argv[] ) if( ( ret = rsa_gen_key( &rsa, ctr_drbg_random, &ctr_drbg, KEY_SIZE, EXPONENT ) ) != 0 ) { - printf( " failed\n ! rsa_gen_key returned %d\n\n", ret ); + polarssl_printf( " failed\n ! rsa_gen_key returned %d\n\n", ret ); goto exit; } - printf( " ok\n . Exporting the public key in rsa_pub.txt...." ); + polarssl_printf( " ok\n . Exporting the public key in rsa_pub.txt...." ); fflush( stdout ); if( ( fpub = fopen( "rsa_pub.txt", "wb+" ) ) == NULL ) { - printf( " failed\n ! could not open rsa_pub.txt for writing\n\n" ); + polarssl_printf( " failed\n ! could not open rsa_pub.txt for writing\n\n" ); ret = 1; goto exit; } @@ -101,16 +107,16 @@ int main( int argc, char *argv[] ) if( ( ret = mpi_write_file( "N = ", &rsa.N, 16, fpub ) ) != 0 || ( ret = mpi_write_file( "E = ", &rsa.E, 16, fpub ) ) != 0 ) { - printf( " failed\n ! mpi_write_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_write_file returned %d\n\n", ret ); goto exit; } - printf( " ok\n . Exporting the private key in rsa_priv.txt..." ); + polarssl_printf( " ok\n . Exporting the private key in rsa_priv.txt..." ); fflush( stdout ); if( ( fpriv = fopen( "rsa_priv.txt", "wb+" ) ) == NULL ) { - printf( " failed\n ! could not open rsa_priv.txt for writing\n" ); + polarssl_printf( " failed\n ! could not open rsa_priv.txt for writing\n" ); ret = 1; goto exit; } @@ -124,11 +130,11 @@ int main( int argc, char *argv[] ) ( ret = mpi_write_file( "DQ = ", &rsa.DQ, 16, fpriv ) ) != 0 || ( ret = mpi_write_file( "QP = ", &rsa.QP, 16, fpriv ) ) != 0 ) { - printf( " failed\n ! mpi_write_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_write_file returned %d\n\n", ret ); goto exit; } /* - printf( " ok\n . Generating the certificate..." ); + polarssl_printf( " ok\n . Generating the certificate..." ); x509write_init_raw( &cert ); x509write_add_pubkey( &cert, &rsa ); @@ -140,7 +146,7 @@ int main( int argc, char *argv[] ) x509write_crtfile( &cert, "cert.pem", X509_OUTPUT_PEM ); x509write_free_raw( &cert ); */ - printf( " ok\n\n" ); + polarssl_printf( " ok\n\n" ); exit: @@ -155,7 +161,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " Press Enter to exit this program.\n" ); + polarssl_printf( " Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/rsa_sign.c b/programs/pkey/rsa_sign.c index c466919c7..e854f70a3 100644 --- a/programs/pkey/rsa_sign.c +++ b/programs/pkey/rsa_sign.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #include #include @@ -39,7 +46,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " "POLARSSL_SHA1_C and/or POLARSSL_FS_IO not defined.\n"); return( 0 ); } @@ -57,22 +64,22 @@ int main( int argc, char *argv[] ) if( argc != 2 ) { - printf( "usage: rsa_sign \n" ); + polarssl_printf( "usage: rsa_sign \n" ); #if defined(_WIN32) - printf( "\n" ); + polarssl_printf( "\n" ); #endif goto exit; } - printf( "\n . Reading private key from rsa_priv.txt" ); + polarssl_printf( "\n . Reading private key from rsa_priv.txt" ); fflush( stdout ); if( ( f = fopen( "rsa_priv.txt", "rb" ) ) == NULL ) { ret = 1; - printf( " failed\n ! Could not open rsa_priv.txt\n" \ + polarssl_printf( " failed\n ! Could not open rsa_priv.txt\n" \ " ! Please run rsa_genkey first\n\n" ); goto exit; } @@ -88,7 +95,7 @@ int main( int argc, char *argv[] ) ( ret = mpi_read_file( &rsa.DQ, 16, f ) ) != 0 || ( ret = mpi_read_file( &rsa.QP, 16, f ) ) != 0 ) { - printf( " failed\n ! mpi_read_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_read_file returned %d\n\n", ret ); goto exit; } @@ -96,11 +103,11 @@ int main( int argc, char *argv[] ) fclose( f ); - printf( "\n . Checking the private key" ); + polarssl_printf( "\n . Checking the private key" ); fflush( stdout ); if( ( ret = rsa_check_privkey( &rsa ) ) != 0 ) { - printf( " failed\n ! rsa_check_privkey failed with -0x%0x\n", -ret ); + polarssl_printf( " failed\n ! rsa_check_privkey failed with -0x%0x\n", -ret ); goto exit; } @@ -108,19 +115,19 @@ int main( int argc, char *argv[] ) * Compute the SHA-1 hash of the input file, * then calculate the RSA signature of the hash. */ - printf( "\n . Generating the RSA/SHA-1 signature" ); + polarssl_printf( "\n . Generating the RSA/SHA-1 signature" ); fflush( stdout ); if( ( ret = sha1_file( argv[1], hash ) ) != 0 ) { - printf( " failed\n ! Could not open or read %s\n\n", argv[1] ); + polarssl_printf( " failed\n ! Could not open or read %s\n\n", argv[1] ); goto exit; } if( ( ret = rsa_pkcs1_sign( &rsa, NULL, NULL, RSA_PRIVATE, POLARSSL_MD_SHA1, 20, hash, buf ) ) != 0 ) { - printf( " failed\n ! rsa_pkcs1_sign returned -0x%0x\n\n", -ret ); + polarssl_printf( " failed\n ! rsa_pkcs1_sign returned -0x%0x\n\n", -ret ); goto exit; } @@ -132,22 +139,22 @@ int main( int argc, char *argv[] ) if( ( f = fopen( argv[1], "wb+" ) ) == NULL ) { ret = 1; - printf( " failed\n ! Could not create %s\n\n", argv[1] ); + polarssl_printf( " failed\n ! Could not create %s\n\n", argv[1] ); goto exit; } for( i = 0; i < rsa.len; i++ ) - fprintf( f, "%02X%s", buf[i], + polarssl_fprintf( f, "%02X%s", buf[i], ( i + 1 ) % 16 == 0 ? "\r\n" : " " ); fclose( f ); - printf( "\n . Done (created \"%s\")\n\n", argv[1] ); + polarssl_printf( "\n . Done (created \"%s\")\n\n", argv[1] ); exit: #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/rsa_sign_pss.c b/programs/pkey/rsa_sign_pss.c index d53761143..252bbf27d 100644 --- a/programs/pkey/rsa_sign_pss.c +++ b/programs/pkey/rsa_sign_pss.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include @@ -49,7 +55,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " "POLARSSL_RSA_C and/or POLARSSL_SHA1_C and/or " "POLARSSL_PK_PARSE_C and/or POLARSSL_FS_IO and/or " "POLARSSL_CTR_DRBG_C not defined.\n"); @@ -74,41 +80,41 @@ int main( int argc, char *argv[] ) if( argc != 3 ) { - printf( "usage: rsa_sign_pss \n" ); + polarssl_printf( "usage: rsa_sign_pss \n" ); #if defined(_WIN32) - printf( "\n" ); + polarssl_printf( "\n" ); #endif goto exit; } - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); if( ( ret = ctr_drbg_init( &ctr_drbg, entropy_func, &entropy, (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } - printf( "\n . Reading private key from '%s'", argv[1] ); + polarssl_printf( "\n . Reading private key from '%s'", argv[1] ); fflush( stdout ); if( ( ret = pk_parse_keyfile( &pk, argv[1], "" ) ) != 0 ) { ret = 1; - printf( " failed\n ! Could not read key from '%s'\n", argv[1] ); - printf( " ! pk_parse_public_keyfile returned %d\n\n", ret ); + polarssl_printf( " failed\n ! Could not read key from '%s'\n", argv[1] ); + polarssl_printf( " ! pk_parse_public_keyfile returned %d\n\n", ret ); goto exit; } if( !pk_can_do( &pk, POLARSSL_PK_RSA ) ) { ret = 1; - printf( " failed\n ! Key is not an RSA key\n" ); + polarssl_printf( " failed\n ! Key is not an RSA key\n" ); goto exit; } @@ -118,19 +124,19 @@ int main( int argc, char *argv[] ) * Compute the SHA-1 hash of the input file, * then calculate the RSA signature of the hash. */ - printf( "\n . Generating the RSA/SHA-1 signature" ); + polarssl_printf( "\n . Generating the RSA/SHA-1 signature" ); fflush( stdout ); if( ( ret = sha1_file( argv[2], hash ) ) != 0 ) { - printf( " failed\n ! Could not open or read %s\n\n", argv[2] ); + polarssl_printf( " failed\n ! Could not open or read %s\n\n", argv[2] ); goto exit; } if( ( ret = pk_sign( &pk, POLARSSL_MD_SHA1, hash, 0, buf, &olen, ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - printf( " failed\n ! pk_sign returned %d\n\n", ret ); + polarssl_printf( " failed\n ! pk_sign returned %d\n\n", ret ); goto exit; } @@ -142,19 +148,19 @@ int main( int argc, char *argv[] ) if( ( f = fopen( filename, "wb+" ) ) == NULL ) { ret = 1; - printf( " failed\n ! Could not create %s\n\n", filename ); + polarssl_printf( " failed\n ! Could not create %s\n\n", filename ); goto exit; } if( fwrite( buf, 1, olen, f ) != olen ) { - printf( "failed\n ! fwrite failed\n\n" ); + polarssl_printf( "failed\n ! fwrite failed\n\n" ); goto exit; } fclose( f ); - printf( "\n . Done (created \"%s\")\n\n", filename ); + polarssl_printf( "\n . Done (created \"%s\")\n\n", filename ); exit: pk_free( &pk ); @@ -162,7 +168,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/rsa_verify.c b/programs/pkey/rsa_verify.c index 7405df77f..4e00bdde4 100644 --- a/programs/pkey/rsa_verify.c +++ b/programs/pkey/rsa_verify.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include @@ -39,7 +45,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " "POLARSSL_SHA1_C and/or POLARSSL_FS_IO not defined.\n"); return( 0 ); } @@ -56,21 +62,21 @@ int main( int argc, char *argv[] ) ret = 1; if( argc != 2 ) { - printf( "usage: rsa_verify \n" ); + polarssl_printf( "usage: rsa_verify \n" ); #if defined(_WIN32) - printf( "\n" ); + polarssl_printf( "\n" ); #endif goto exit; } - printf( "\n . Reading public key from rsa_pub.txt" ); + polarssl_printf( "\n . Reading public key from rsa_pub.txt" ); fflush( stdout ); if( ( f = fopen( "rsa_pub.txt", "rb" ) ) == NULL ) { - printf( " failed\n ! Could not open rsa_pub.txt\n" \ + polarssl_printf( " failed\n ! Could not open rsa_pub.txt\n" \ " ! Please run rsa_genkey first\n\n" ); goto exit; } @@ -80,7 +86,7 @@ int main( int argc, char *argv[] ) if( ( ret = mpi_read_file( &rsa.N, 16, f ) ) != 0 || ( ret = mpi_read_file( &rsa.E, 16, f ) ) != 0 ) { - printf( " failed\n ! mpi_read_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_read_file returned %d\n\n", ret ); goto exit; } @@ -97,7 +103,7 @@ int main( int argc, char *argv[] ) if( ( f = fopen( argv[1], "rb" ) ) == NULL ) { - printf( "\n ! Could not open %s\n\n", argv[1] ); + polarssl_printf( "\n ! Could not open %s\n\n", argv[1] ); goto exit; } @@ -111,7 +117,7 @@ int main( int argc, char *argv[] ) if( i != rsa.len ) { - printf( "\n ! Invalid RSA signature format\n\n" ); + polarssl_printf( "\n ! Invalid RSA signature format\n\n" ); goto exit; } @@ -119,30 +125,30 @@ int main( int argc, char *argv[] ) * Compute the SHA-1 hash of the input file and compare * it with the hash decrypted from the RSA signature. */ - printf( "\n . Verifying the RSA/SHA-1 signature" ); + polarssl_printf( "\n . Verifying the RSA/SHA-1 signature" ); fflush( stdout ); if( ( ret = sha1_file( argv[1], hash ) ) != 0 ) { - printf( " failed\n ! Could not open or read %s\n\n", argv[1] ); + polarssl_printf( " failed\n ! Could not open or read %s\n\n", argv[1] ); goto exit; } if( ( ret = rsa_pkcs1_verify( &rsa, NULL, NULL, RSA_PUBLIC, POLARSSL_MD_SHA1, 20, hash, buf ) ) != 0 ) { - printf( " failed\n ! rsa_pkcs1_verify returned -0x%0x\n\n", -ret ); + polarssl_printf( " failed\n ! rsa_pkcs1_verify returned -0x%0x\n\n", -ret ); goto exit; } - printf( "\n . OK (the decrypted SHA-1 hash matches)\n\n" ); + polarssl_printf( "\n . OK (the decrypted SHA-1 hash matches)\n\n" ); ret = 0; exit: #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/pkey/rsa_verify_pss.c b/programs/pkey/rsa_verify_pss.c index f331b2f09..673618446 100644 --- a/programs/pkey/rsa_verify_pss.c +++ b/programs/pkey/rsa_verify_pss.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include @@ -47,7 +53,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " "POLARSSL_SHA1_C and/or POLARSSL_PK_PARSE_C and/or " "POLARSSL_FS_IO not defined.\n"); return( 0 ); @@ -67,29 +73,29 @@ int main( int argc, char *argv[] ) if( argc != 3 ) { - printf( "usage: rsa_verify_pss \n" ); + polarssl_printf( "usage: rsa_verify_pss \n" ); #if defined(_WIN32) - printf( "\n" ); + polarssl_printf( "\n" ); #endif goto exit; } - printf( "\n . Reading public key from '%s'", argv[1] ); + polarssl_printf( "\n . Reading public key from '%s'", argv[1] ); fflush( stdout ); if( ( ret = pk_parse_public_keyfile( &pk, argv[1] ) ) != 0 ) { - printf( " failed\n ! Could not read key from '%s'\n", argv[1] ); - printf( " ! pk_parse_public_keyfile returned %d\n\n", ret ); + polarssl_printf( " failed\n ! Could not read key from '%s'\n", argv[1] ); + polarssl_printf( " ! pk_parse_public_keyfile returned %d\n\n", ret ); goto exit; } if( !pk_can_do( &pk, POLARSSL_PK_RSA ) ) { ret = 1; - printf( " failed\n ! Key is not an RSA key\n" ); + polarssl_printf( " failed\n ! Key is not an RSA key\n" ); goto exit; } @@ -103,7 +109,7 @@ int main( int argc, char *argv[] ) if( ( f = fopen( filename, "rb" ) ) == NULL ) { - printf( "\n ! Could not open %s\n\n", filename ); + polarssl_printf( "\n ! Could not open %s\n\n", filename ); goto exit; } @@ -116,23 +122,23 @@ int main( int argc, char *argv[] ) * Compute the SHA-1 hash of the input file and compare * it with the hash decrypted from the RSA signature. */ - printf( "\n . Verifying the RSA/SHA-1 signature" ); + polarssl_printf( "\n . Verifying the RSA/SHA-1 signature" ); fflush( stdout ); if( ( ret = sha1_file( argv[2], hash ) ) != 0 ) { - printf( " failed\n ! Could not open or read %s\n\n", argv[2] ); + polarssl_printf( " failed\n ! Could not open or read %s\n\n", argv[2] ); goto exit; } if( ( ret = pk_verify( &pk, POLARSSL_MD_SHA1, hash, 0, buf, i ) ) != 0 ) { - printf( " failed\n ! pk_verify returned %d\n\n", ret ); + polarssl_printf( " failed\n ! pk_verify returned %d\n\n", ret ); goto exit; } - printf( "\n . OK (the decrypted SHA-1 hash matches)\n\n" ); + polarssl_printf( "\n . OK (the decrypted SHA-1 hash matches)\n\n" ); ret = 0; @@ -140,7 +146,7 @@ exit: pk_free( &pk ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/random/gen_entropy.c b/programs/random/gen_entropy.c index 38bd42361..f18d37951 100644 --- a/programs/random/gen_entropy.c +++ b/programs/random/gen_entropy.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #include "polarssl/entropy.h" #include @@ -36,7 +43,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_ENTROPY_C not defined.\n"); + polarssl_printf("POLARSSL_ENTROPY_C not defined.\n"); return( 0 ); } #else @@ -49,13 +56,13 @@ int main( int argc, char *argv[] ) if( argc < 2 ) { - fprintf( stderr, "usage: %s \n", argv[0] ); + polarssl_fprintf( stderr, "usage: %s \n", argv[0] ); return( 1 ); } if( ( f = fopen( argv[1], "wb+" ) ) == NULL ) { - printf( "failed to open '%s' for writing.\n", argv[0] ); + polarssl_printf( "failed to open '%s' for writing.\n", argv[0] ); return( 1 ); } @@ -66,13 +73,13 @@ int main( int argc, char *argv[] ) ret = entropy_func( &entropy, buf, sizeof( buf ) ); if( ret != 0 ) { - printf("failed!\n"); + polarssl_printf("failed!\n"); goto cleanup; } fwrite( buf, 1, sizeof( buf ), f ); - printf( "Generating 32Mb of data in file '%s'... %04.1f" \ + polarssl_printf( "Generating 32Mb of data in file '%s'... %04.1f" \ "%% done\r", argv[1], (100 * (float) (i + 1)) / k ); fflush( stdout ); } diff --git a/programs/random/gen_random_ctr_drbg.c b/programs/random/gen_random_ctr_drbg.c index 67516077f..60c0f0142 100644 --- a/programs/random/gen_random_ctr_drbg.c +++ b/programs/random/gen_random_ctr_drbg.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #include "polarssl/entropy.h" #include "polarssl/ctr_drbg.h" @@ -37,7 +44,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_CTR_DRBG_C or POLARSSL_ENTROPY_C not defined.\n"); + polarssl_printf("POLARSSL_CTR_DRBG_C or POLARSSL_ENTROPY_C not defined.\n"); return( 0 ); } #else @@ -51,13 +58,13 @@ int main( int argc, char *argv[] ) if( argc < 2 ) { - fprintf( stderr, "usage: %s \n", argv[0] ); + polarssl_fprintf( stderr, "usage: %s \n", argv[0] ); return( 1 ); } if( ( f = fopen( argv[1], "wb+" ) ) == NULL ) { - printf( "failed to open '%s' for writing.\n", argv[0] ); + polarssl_printf( "failed to open '%s' for writing.\n", argv[0] ); return( 1 ); } @@ -65,7 +72,7 @@ int main( int argc, char *argv[] ) ret = ctr_drbg_init( &ctr_drbg, entropy_func, &entropy, (const unsigned char *) "RANDOM_GEN", 10 ); if( ret != 0 ) { - printf( "failed in ctr_drbg_init: %d\n", ret ); + polarssl_printf( "failed in ctr_drbg_init: %d\n", ret ); goto cleanup; } ctr_drbg_set_prediction_resistance( &ctr_drbg, CTR_DRBG_PR_OFF ); @@ -75,17 +82,17 @@ int main( int argc, char *argv[] ) if( ret == POLARSSL_ERR_CTR_DRBG_FILE_IO_ERROR ) { - printf( "Failed to open seedfile. Generating one.\n" ); + polarssl_printf( "Failed to open seedfile. Generating one.\n" ); ret = ctr_drbg_write_seed_file( &ctr_drbg, "seedfile" ); if( ret != 0 ) { - printf( "failed in ctr_drbg_write_seed_file: %d\n", ret ); + polarssl_printf( "failed in ctr_drbg_write_seed_file: %d\n", ret ); goto cleanup; } } else if( ret != 0 ) { - printf( "failed in ctr_drbg_update_seed_file: %d\n", ret ); + polarssl_printf( "failed in ctr_drbg_update_seed_file: %d\n", ret ); goto cleanup; } #endif @@ -95,13 +102,13 @@ int main( int argc, char *argv[] ) ret = ctr_drbg_random( &ctr_drbg, buf, sizeof( buf ) ); if( ret != 0 ) { - printf("failed!\n"); + polarssl_printf("failed!\n"); goto cleanup; } fwrite( buf, 1, sizeof( buf ), f ); - printf( "Generating 32Mb of data in file '%s'... %04.1f" \ + polarssl_printf( "Generating 32Mb of data in file '%s'... %04.1f" \ "%% done\r", argv[1], (100 * (float) (i + 1)) / k ); fflush( stdout ); } @@ -109,7 +116,7 @@ int main( int argc, char *argv[] ) ret = 0; cleanup: - printf("\n"); + polarssl_printf("\n"); fclose( f ); ctr_drbg_free( &ctr_drbg ); diff --git a/programs/random/gen_random_havege.c b/programs/random/gen_random_havege.c index eba93dd0e..c1b420aa2 100644 --- a/programs/random/gen_random_havege.c +++ b/programs/random/gen_random_havege.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #include "polarssl/havege.h" #include @@ -37,7 +44,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_HAVEGE_C not defined.\n"); + polarssl_printf("POLARSSL_HAVEGE_C not defined.\n"); return( 0 ); } #else @@ -51,13 +58,13 @@ int main( int argc, char *argv[] ) if( argc < 2 ) { - fprintf( stderr, "usage: %s \n", argv[0] ); + polarssl_fprintf( stderr, "usage: %s \n", argv[0] ); return( 1 ); } if( ( f = fopen( argv[1], "wb+" ) ) == NULL ) { - printf( "failed to open '%s' for writing.\n", argv[0] ); + polarssl_printf( "failed to open '%s' for writing.\n", argv[0] ); return( 1 ); } @@ -69,7 +76,7 @@ int main( int argc, char *argv[] ) { if( havege_random( &hs, buf, sizeof( buf ) ) != 0 ) { - printf( "Failed to get random from source.\n" ); + polarssl_printf( "Failed to get random from source.\n" ); ret = 1; goto exit; @@ -77,7 +84,7 @@ int main( int argc, char *argv[] ) fwrite( buf, sizeof( buf ), 1, f ); - printf( "Generating 32Mb of data in file '%s'... %04.1f" \ + polarssl_printf( "Generating 32Mb of data in file '%s'... %04.1f" \ "%% done\r", argv[1], (100 * (float) (i + 1)) / k ); fflush( stdout ); } @@ -85,7 +92,7 @@ int main( int argc, char *argv[] ) if( t == time( NULL ) ) t--; - printf(" \n "); + polarssl_printf(" \n "); exit: havege_free( &hs ); diff --git a/programs/ssl/ssl_client1.c b/programs/ssl/ssl_client1.c index 0cf5eb695..c8a61c20d 100644 --- a/programs/ssl/ssl_client1.c +++ b/programs/ssl/ssl_client1.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #include #include @@ -46,7 +53,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " "POLARSSL_SSL_TLS_C and/or POLARSSL_SSL_CLI_C and/or " "POLARSSL_NET_C and/or POLARSSL_RSA_C and/or " "POLARSSL_CTR_DRBG_C and/or POLARSSL_X509_CRT_PARSE_C " @@ -65,7 +72,7 @@ static void my_debug( void *ctx, int level, const char *str ) { ((void) level); - fprintf( (FILE *) ctx, "%s", str ); + polarssl_fprintf( (FILE *) ctx, "%s", str ); fflush( (FILE *) ctx ); } @@ -93,7 +100,7 @@ int main( int argc, char *argv[] ) memset( &ssl, 0, sizeof( ssl_context ) ); x509_crt_init( &cacert ); - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -101,16 +108,16 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 0. Initialize certificates */ - printf( " . Loading the CA root certificate ..." ); + polarssl_printf( " . Loading the CA root certificate ..." ); fflush( stdout ); #if defined(POLARSSL_CERTS_C) @@ -118,46 +125,46 @@ int main( int argc, char *argv[] ) strlen( test_ca_list ) ); #else ret = 1; - printf("POLARSSL_CERTS_C not defined."); + polarssl_printf("POLARSSL_CERTS_C not defined."); #endif if( ret < 0 ) { - printf( " failed\n ! x509_crt_parse returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned -0x%x\n\n", -ret ); goto exit; } - printf( " ok (%d skipped)\n", ret ); + polarssl_printf( " ok (%d skipped)\n", ret ); /* * 1. Start the connection */ - printf( " . Connecting to tcp/%s/%4d...", SERVER_NAME, + polarssl_printf( " . Connecting to tcp/%s/%4d...", SERVER_NAME, SERVER_PORT ); fflush( stdout ); if( ( ret = net_connect( &server_fd, SERVER_NAME, SERVER_PORT ) ) != 0 ) { - printf( " failed\n ! net_connect returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_connect returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 2. Setup stuff */ - printf( " . Setting up the SSL/TLS structure..." ); + polarssl_printf( " . Setting up the SSL/TLS structure..." ); fflush( stdout ); if( ( ret = ssl_init( &ssl ) ) != 0 ) { - printf( " failed\n ! ssl_init returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_init returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); ssl_set_endpoint( &ssl, SSL_IS_CLIENT ); /* OPTIONAL is not optimal for security, @@ -178,51 +185,51 @@ int main( int argc, char *argv[] ) /* * 4. Handshake */ - printf( " . Performing the SSL/TLS handshake..." ); + polarssl_printf( " . Performing the SSL/TLS handshake..." ); fflush( stdout ); while( ( ret = ssl_handshake( &ssl ) ) != 0 ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_handshake returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! ssl_handshake returned -0x%x\n\n", -ret ); goto exit; } } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 5. Verify the server certificate */ - printf( " . Verifying peer X.509 certificate..." ); + polarssl_printf( " . Verifying peer X.509 certificate..." ); /* In real life, we may want to bail out when ret != 0 */ if( ( ret = ssl_get_verify_result( &ssl ) ) != 0 ) { - printf( " failed\n" ); + polarssl_printf( " failed\n" ); if( ( ret & BADCERT_EXPIRED ) != 0 ) - printf( " ! server certificate has expired\n" ); + polarssl_printf( " ! server certificate has expired\n" ); if( ( ret & BADCERT_REVOKED ) != 0 ) - printf( " ! server certificate has been revoked\n" ); + polarssl_printf( " ! server certificate has been revoked\n" ); if( ( ret & BADCERT_CN_MISMATCH ) != 0 ) - printf( " ! CN mismatch (expected CN=%s)\n", "PolarSSL Server 1" ); + polarssl_printf( " ! CN mismatch (expected CN=%s)\n", "PolarSSL Server 1" ); if( ( ret & BADCERT_NOT_TRUSTED ) != 0 ) - printf( " ! self-signed or not signed by a trusted CA\n" ); + polarssl_printf( " ! self-signed or not signed by a trusted CA\n" ); - printf( "\n" ); + polarssl_printf( "\n" ); } else - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 3. Write the GET request */ - printf( " > Write to server:" ); + polarssl_printf( " > Write to server:" ); fflush( stdout ); len = sprintf( (char *) buf, GET_REQUEST ); @@ -231,18 +238,18 @@ int main( int argc, char *argv[] ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_write returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_write returned %d\n\n", ret ); goto exit; } } len = ret; - printf( " %d bytes written\n\n%s", len, (char *) buf ); + polarssl_printf( " %d bytes written\n\n%s", len, (char *) buf ); /* * 7. Read the HTTP response */ - printf( " < Read from server:" ); + polarssl_printf( " < Read from server:" ); fflush( stdout ); do @@ -259,18 +266,18 @@ int main( int argc, char *argv[] ) if( ret < 0 ) { - printf( "failed\n ! ssl_read returned %d\n\n", ret ); + polarssl_printf( "failed\n ! ssl_read returned %d\n\n", ret ); break; } if( ret == 0 ) { - printf( "\n\nEOF\n\n" ); + polarssl_printf( "\n\nEOF\n\n" ); break; } len = ret; - printf( " %d bytes read\n\n%s", len, (char *) buf ); + polarssl_printf( " %d bytes read\n\n%s", len, (char *) buf ); } while( 1 ); @@ -283,7 +290,7 @@ exit: { char error_buf[100]; polarssl_strerror( ret, error_buf, 100 ); - printf("Last error was: %d - %s\n\n", ret, error_buf ); + polarssl_printf("Last error was: %d - %s\n\n", ret, error_buf ); } #endif @@ -298,7 +305,7 @@ exit: memset( &ssl, 0, sizeof( ssl ) ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index d4f715c7e..11af9065c 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #if !defined(POLARSSL_ENTROPY_C) || \ !defined(POLARSSL_SSL_TLS_C) || !defined(POLARSSL_SSL_CLI_C) || \ !defined(POLARSSL_NET_C) || !defined(POLARSSL_CTR_DRBG_C) @@ -35,7 +42,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_ENTROPY_C and/or " + polarssl_printf("POLARSSL_ENTROPY_C and/or " "POLARSSL_SSL_TLS_C and/or POLARSSL_SSL_CLI_C and/or " "POLARSSL_NET_C and/or POLARSSL_CTR_DRBG_C not defined.\n"); return( 0 ); @@ -145,7 +152,7 @@ static void my_debug( void *ctx, int level, const char *str ) { ((void) level); - fprintf( (FILE *) ctx, "%s", str ); + polarssl_fprintf( (FILE *) ctx, "%s", str ); fflush( (FILE *) ctx ); } @@ -196,33 +203,33 @@ static int my_verify( void *data, x509_crt *crt, int depth, int *flags ) char buf[1024]; ((void) data); - printf( "\nVerify requested for (Depth %d):\n", depth ); + polarssl_printf( "\nVerify requested for (Depth %d):\n", depth ); x509_crt_info( buf, sizeof( buf ) - 1, "", crt ); - printf( "%s", buf ); + polarssl_printf( "%s", buf ); if( ( (*flags) & BADCERT_EXPIRED ) != 0 ) - printf( " ! server certificate has expired\n" ); + polarssl_printf( " ! server certificate has expired\n" ); if( ( (*flags) & BADCERT_REVOKED ) != 0 ) - printf( " ! server certificate has been revoked\n" ); + polarssl_printf( " ! server certificate has been revoked\n" ); if( ( (*flags) & BADCERT_CN_MISMATCH ) != 0 ) - printf( " ! CN mismatch\n" ); + polarssl_printf( " ! CN mismatch\n" ); if( ( (*flags) & BADCERT_NOT_TRUSTED ) != 0 ) - printf( " ! self-signed or not signed by a trusted CA\n" ); + polarssl_printf( " ! self-signed or not signed by a trusted CA\n" ); if( ( (*flags) & BADCRL_NOT_TRUSTED ) != 0 ) - printf( " ! CRL not trusted\n" ); + polarssl_printf( " ! CRL not trusted\n" ); if( ( (*flags) & BADCRL_EXPIRED ) != 0 ) - printf( " ! CRL expired\n" ); + polarssl_printf( " ! CRL expired\n" ); if( ( (*flags) & BADCERT_OTHER ) != 0 ) - printf( " ! other (unknown) flag\n" ); + polarssl_printf( " ! other (unknown) flag\n" ); if ( ( *flags ) == 0 ) - printf( " This certificate has no flags\n" ); + polarssl_printf( " This certificate has no flags\n" ); return( 0 ); } @@ -340,7 +347,7 @@ static int my_verify( void *data, x509_crt *crt, int depth, int *flags ) " nbio=%%d default: 0 (blocking I/O)\n" \ " options: 1 (non-blocking), 2 (added delays)\n" \ "\n" \ - " auth_mode=%%s default: \"optional\"\n" \ + " auth_mode=%%s default: \"required\"\n" \ " options: none, optional, required\n" \ USAGE_IO \ "\n" \ @@ -365,8 +372,6 @@ static int my_verify( void *data, x509_crt *crt, int depth, int *flags ) " arc4=%%d default: 0 (disabled)\n" \ " force_version=%%s default: \"\" (none)\n" \ " options: ssl3, tls1, tls1_1, tls1_2\n" \ - " auth_mode=%%s default: \"required\"\n" \ - " options: none, optional, required\n" \ "\n" \ " force_ciphersuite= default: all enabled\n"\ " acceptable ciphersuite names:\n" @@ -417,19 +422,19 @@ int main( int argc, char *argv[] ) if( ret == 0 ) ret = 1; - printf( USAGE ); + polarssl_printf( USAGE ); list = ssl_list_ciphersuites(); while( *list ) { - printf(" %-42s", ssl_get_ciphersuite_name( *list ) ); + polarssl_printf(" %-42s", ssl_get_ciphersuite_name( *list ) ); list++; if( !*list ) break; - printf(" %s\n", ssl_get_ciphersuite_name( *list ) ); + polarssl_printf(" %s\n", ssl_get_ciphersuite_name( *list ) ); list++; } - printf("\n"); + polarssl_printf("\n"); goto exit; } @@ -717,14 +722,14 @@ int main( int argc, char *argv[] ) if( opt.max_version != -1 && ciphersuite_info->min_minor_ver > opt.max_version ) { - printf("forced ciphersuite not allowed with this protocol version\n"); + polarssl_printf("forced ciphersuite not allowed with this protocol version\n"); ret = 2; goto usage; } if( opt.min_version != -1 && ciphersuite_info->max_minor_ver < opt.min_version ) { - printf("forced ciphersuite not allowed with this protocol version\n"); + polarssl_printf("forced ciphersuite not allowed with this protocol version\n"); ret = 2; goto usage; } @@ -745,7 +750,7 @@ int main( int argc, char *argv[] ) if( strlen( opt.psk ) % 2 != 0 ) { - printf("pre-shared key not valid hex\n"); + polarssl_printf("pre-shared key not valid hex\n"); goto exit; } @@ -762,7 +767,7 @@ int main( int argc, char *argv[] ) c -= 'A' - 10; else { - printf("pre-shared key not valid hex\n"); + polarssl_printf("pre-shared key not valid hex\n"); goto exit; } psk[ j / 2 ] = c << 4; @@ -776,7 +781,7 @@ int main( int argc, char *argv[] ) c -= 'A' - 10; else { - printf("pre-shared key not valid hex\n"); + polarssl_printf("pre-shared key not valid hex\n"); goto exit; } psk[ j / 2 ] |= c; @@ -807,7 +812,7 @@ int main( int argc, char *argv[] ) /* * 0. Initialize the RNG and the session data */ - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -815,17 +820,17 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned -0x%x\n", -ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned -0x%x\n", -ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); #if defined(POLARSSL_X509_CRT_PARSE_C) /* * 1.1. Load the trusted CA */ - printf( " . Loading the CA root certificate ..." ); + polarssl_printf( " . Loading the CA root certificate ..." ); fflush( stdout ); #if defined(POLARSSL_FS_IO) @@ -847,23 +852,23 @@ int main( int argc, char *argv[] ) #else { ret = 1; - printf("POLARSSL_CERTS_C not defined."); + polarssl_printf("POLARSSL_CERTS_C not defined."); } #endif if( ret < 0 ) { - printf( " failed\n ! x509_crt_parse returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned -0x%x\n\n", -ret ); goto exit; } - printf( " ok (%d skipped)\n", ret ); + polarssl_printf( " ok (%d skipped)\n", ret ); /* * 1.2. Load own certificate and private key * * (can be skipped if client authentication is not required) */ - printf( " . Loading the client cert. and key..." ); + polarssl_printf( " . Loading the client cert. and key..." ); fflush( stdout ); #if defined(POLARSSL_FS_IO) @@ -880,12 +885,12 @@ int main( int argc, char *argv[] ) #else { ret = 1; - printf("POLARSSL_CERTS_C not defined."); + polarssl_printf("POLARSSL_CERTS_C not defined."); } #endif if( ret != 0 ) { - printf( " failed\n ! x509_crt_parse returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned -0x%x\n\n", -ret ); goto exit; } @@ -903,16 +908,16 @@ int main( int argc, char *argv[] ) #else { ret = 1; - printf("POLARSSL_CERTS_C not defined."); + polarssl_printf("POLARSSL_CERTS_C not defined."); } #endif if( ret != 0 ) { - printf( " failed\n ! pk_parse_key returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! pk_parse_key returned -0x%x\n\n", -ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); #endif /* POLARSSL_X509_CRT_PARSE_C */ /* @@ -921,14 +926,14 @@ int main( int argc, char *argv[] ) if( opt.server_addr == NULL) opt.server_addr = opt.server_name; - printf( " . Connecting to tcp/%s/%-4d...", opt.server_addr, + polarssl_printf( " . Connecting to tcp/%s/%-4d...", opt.server_addr, opt.server_port ); fflush( stdout ); if( ( ret = net_connect( &server_fd, opt.server_addr, opt.server_port ) ) != 0 ) { - printf( " failed\n ! net_connect returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! net_connect returned -0x%x\n\n", -ret ); goto exit; } @@ -938,25 +943,25 @@ int main( int argc, char *argv[] ) ret = net_set_block( server_fd ); if( ret != 0 ) { - printf( " failed\n ! net_set_(non)block() returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! net_set_(non)block() returned -0x%x\n\n", -ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 3. Setup stuff */ - printf( " . Setting up the SSL/TLS structure..." ); + polarssl_printf( " . Setting up the SSL/TLS structure..." ); fflush( stdout ); if( ( ret = ssl_init( &ssl ) ) != 0 ) { - printf( " failed\n ! ssl_init returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! ssl_init returned -0x%x\n\n", -ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); #if defined(POLARSSL_X509_CRT_PARSE_C) if( opt.debug_level > 0 ) @@ -969,7 +974,7 @@ int main( int argc, char *argv[] ) #if defined(POLARSSL_SSL_MAX_FRAGMENT_LENGTH) if( ( ret = ssl_set_max_frag_len( &ssl, opt.mfl_code ) ) != 0 ) { - printf( " failed\n ! ssl_set_max_frag_len returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_max_frag_len returned %d\n\n", ret ); goto exit; } #endif @@ -1000,7 +1005,7 @@ int main( int argc, char *argv[] ) if( opt.alpn_string != NULL ) if( ( ret = ssl_set_alpn_protocols( &ssl, alpn_list ) ) != 0 ) { - printf( " failed\n ! ssl_set_alpn_protocols returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_alpn_protocols returned %d\n\n", ret ); goto exit; } #endif @@ -1016,7 +1021,7 @@ int main( int argc, char *argv[] ) #if defined(POLARSSL_SSL_SESSION_TICKETS) if( ( ret = ssl_set_session_tickets( &ssl, opt.tickets ) ) != 0 ) { - printf( " failed\n ! ssl_set_session_tickets returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_session_tickets returned %d\n\n", ret ); goto exit; } #endif @@ -1044,7 +1049,7 @@ int main( int argc, char *argv[] ) { if( ( ret = ssl_set_own_cert( &ssl, &clicert, &pkey ) ) != 0 ) { - printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); goto exit; } } @@ -1055,7 +1060,7 @@ int main( int argc, char *argv[] ) (const unsigned char *) opt.psk_identity, strlen( opt.psk_identity ) ) ) != 0 ) { - printf( " failed\n ! ssl_set_psk returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_psk returned %d\n\n", ret ); goto exit; } #endif @@ -1063,7 +1068,7 @@ int main( int argc, char *argv[] ) #if defined(POLARSSL_SSL_SERVER_NAME_INDICATION) if( ( ret = ssl_set_hostname( &ssl, opt.server_name ) ) != 0 ) { - printf( " failed\n ! ssl_set_hostname returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_hostname returned %d\n\n", ret ); goto exit; } #endif @@ -1080,86 +1085,86 @@ int main( int argc, char *argv[] ) /* * 4. Handshake */ - printf( " . Performing the SSL/TLS handshake..." ); + polarssl_printf( " . Performing the SSL/TLS handshake..." ); fflush( stdout ); while( ( ret = ssl_handshake( &ssl ) ) != 0 ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_handshake returned -0x%x\n", -ret ); + polarssl_printf( " failed\n ! ssl_handshake returned -0x%x\n", -ret ); if( ret == POLARSSL_ERR_X509_CERT_VERIFY_FAILED ) - printf( + polarssl_printf( " Unable to verify the server's certificate. " "Either it is invalid,\n" " or you didn't set ca_file or ca_path " "to an appropriate value.\n" " Alternatively, you may want to use " "auth_mode=optional for testing purposes.\n" ); - printf( "\n" ); + polarssl_printf( "\n" ); goto exit; } } - printf( " ok\n [ Protocol is %s ]\n [ Ciphersuite is %s ]\n", + polarssl_printf( " ok\n [ Protocol is %s ]\n [ Ciphersuite is %s ]\n", ssl_get_version( &ssl ), ssl_get_ciphersuite( &ssl ) ); #if defined(POLARSSL_SSL_ALPN) if( opt.alpn_string != NULL ) { const char *alp = ssl_get_alpn_protocol( &ssl ); - printf( " [ Application Layer Protocol is %s ]\n", + polarssl_printf( " [ Application Layer Protocol is %s ]\n", alp ? alp : "(none)" ); } #endif if( opt.reconnect != 0 ) { - printf(" . Saving session for reuse..." ); + polarssl_printf(" . Saving session for reuse..." ); fflush( stdout ); if( ( ret = ssl_get_session( &ssl, &saved_session ) ) != 0 ) { - printf( " failed\n ! ssl_get_session returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! ssl_get_session returned -0x%x\n\n", -ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); } #if defined(POLARSSL_X509_CRT_PARSE_C) /* * 5. Verify the server certificate */ - printf( " . Verifying peer X.509 certificate..." ); + polarssl_printf( " . Verifying peer X.509 certificate..." ); if( ( ret = ssl_get_verify_result( &ssl ) ) != 0 ) { - printf( " failed\n" ); + polarssl_printf( " failed\n" ); if( ( ret & BADCERT_EXPIRED ) != 0 ) - printf( " ! server certificate has expired\n" ); + polarssl_printf( " ! server certificate has expired\n" ); if( ( ret & BADCERT_REVOKED ) != 0 ) - printf( " ! server certificate has been revoked\n" ); + polarssl_printf( " ! server certificate has been revoked\n" ); if( ( ret & BADCERT_CN_MISMATCH ) != 0 ) - printf( " ! CN mismatch (expected CN=%s)\n", opt.server_name ); + polarssl_printf( " ! CN mismatch (expected CN=%s)\n", opt.server_name ); if( ( ret & BADCERT_NOT_TRUSTED ) != 0 ) - printf( " ! self-signed or not signed by a trusted CA\n" ); + polarssl_printf( " ! self-signed or not signed by a trusted CA\n" ); - printf( "\n" ); + polarssl_printf( "\n" ); } else - printf( " ok\n" ); + polarssl_printf( " ok\n" ); if( ssl_get_peer_cert( &ssl ) != NULL ) { - printf( " . Peer certificate information ...\n" ); + polarssl_printf( " . Peer certificate information ...\n" ); x509_crt_info( (char *) buf, sizeof( buf ) - 1, " ", ssl_get_peer_cert( &ssl ) ); - printf( "%s\n", buf ); + polarssl_printf( "%s\n", buf ); } #endif /* POLARSSL_X509_CRT_PARSE_C */ @@ -1170,18 +1175,18 @@ int main( int argc, char *argv[] ) * Perform renegotiation (this must be done when the server is waiting * for input from our side). */ - printf( " . Performing renegotiation..." ); + polarssl_printf( " . Performing renegotiation..." ); fflush( stdout ); while( ( ret = ssl_renegotiate( &ssl ) ) != 0 ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_renegotiate returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_renegotiate returned %d\n\n", ret ); goto exit; } } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); } #endif /* POLARSSL_SSL_RENEGOTIATION */ @@ -1189,7 +1194,7 @@ int main( int argc, char *argv[] ) * 6. Write the GET request */ send_request: - printf( " > Write to server:" ); + polarssl_printf( " > Write to server:" ); fflush( stdout ); len = snprintf( (char *) buf, sizeof(buf) - 1, GET_REQUEST, @@ -1224,19 +1229,19 @@ send_request: { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_write returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! ssl_write returned -0x%x\n\n", -ret ); goto exit; } } } buf[written] = '\0'; - printf( " %d bytes written in %d fragments\n\n%s\n", written, frags, (char *) buf ); + polarssl_printf( " %d bytes written in %d fragments\n\n%s\n", written, frags, (char *) buf ); /* * 7. Read the HTTP response */ - printf( " < Read from server:" ); + polarssl_printf( " < Read from server:" ); fflush( stdout ); do @@ -1254,25 +1259,25 @@ send_request: switch( ret ) { case POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY: - printf( " connection was closed gracefully\n" ); + polarssl_printf( " connection was closed gracefully\n" ); ret = 0; goto close_notify; case 0: case POLARSSL_ERR_NET_CONN_RESET: - printf( " connection was reset by peer\n" ); + polarssl_printf( " connection was reset by peer\n" ); ret = 0; goto reconnect; default: - printf( " ssl_read returned -0x%x\n", -ret ); + polarssl_printf( " ssl_read returned -0x%x\n", -ret ); goto exit; } } len = ret; buf[len] = '\0'; - printf( " %d bytes read\n\n%s", len, (char *) buf ); + polarssl_printf( " %d bytes read\n\n%s", len, (char *) buf ); /* End of message should be detected according to the syntax of the * application protocol (eg HTTP), just use a dummy test here. */ @@ -1294,14 +1299,14 @@ send_request: * 8. Done, cleanly close the connection */ close_notify: - printf( " . Closing the connection..." ); + polarssl_printf( " . Closing the connection..." ); /* No error checking, the connection might be closed already */ do ret = ssl_close_notify( &ssl ); while( ret == POLARSSL_ERR_NET_WANT_WRITE ); ret = 0; - printf( " done\n" ); + polarssl_printf( " done\n" ); /* * 9. Reconnect? @@ -1318,25 +1323,25 @@ reconnect: m_sleep( 1000 * opt.reco_delay ); #endif - printf( " . Reconnecting with saved session..." ); + polarssl_printf( " . Reconnecting with saved session..." ); fflush( stdout ); if( ( ret = ssl_session_reset( &ssl ) ) != 0 ) { - printf( " failed\n ! ssl_session_reset returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! ssl_session_reset returned -0x%x\n\n", -ret ); goto exit; } if( ( ret = ssl_set_session( &ssl, &saved_session ) ) != 0 ) { - printf( " failed\n ! ssl_set_session returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_session returned %d\n\n", ret ); goto exit; } if( ( ret = net_connect( &server_fd, opt.server_addr, opt.server_port ) ) != 0 ) { - printf( " failed\n ! net_connect returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! net_connect returned -0x%x\n\n", -ret ); goto exit; } @@ -1345,12 +1350,12 @@ reconnect: if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_handshake returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! ssl_handshake returned -0x%x\n\n", -ret ); goto exit; } } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); goto send_request; } @@ -1364,7 +1369,7 @@ exit: { char error_buf[100]; polarssl_strerror( ret, error_buf, 100 ); - printf("Last error was: -0x%X - %s\n\n", -ret, error_buf ); + polarssl_printf("Last error was: -0x%X - %s\n\n", -ret, error_buf ); } #endif @@ -1382,7 +1387,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/ssl/ssl_fork_server.c b/programs/ssl/ssl_fork_server.c index cd11f1b9d..990749ef9 100644 --- a/programs/ssl/ssl_fork_server.c +++ b/programs/ssl/ssl_fork_server.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #if defined(_WIN32) #include #endif @@ -62,7 +69,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_CERTS_C and/or POLARSSL_ENTROPY_C " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_CERTS_C and/or POLARSSL_ENTROPY_C " "and/or POLARSSL_SSL_TLS_C and/or POLARSSL_SSL_SRV_C and/or " "POLARSSL_NET_C and/or POLARSSL_RSA_C and/or " "POLARSSL_CTR_DRBG_C and/or POLARSSL_X509_CRT_PARSE_C and/or " @@ -75,7 +82,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("_WIN32 defined. This application requires fork() and signals " + polarssl_printf("_WIN32 defined. This application requires fork() and signals " "to work correctly.\n"); return( 0 ); } @@ -87,7 +94,7 @@ static void my_debug( void *ctx, int level, const char *str ) { if( level < DEBUG_LEVEL ) { - fprintf( (FILE *) ctx, "%s", str ); + polarssl_fprintf( (FILE *) ctx, "%s", str ); fflush( (FILE *) ctx ); } } @@ -120,23 +127,23 @@ int main( int argc, char *argv[] ) /* * 0. Initial seeding of the RNG */ - printf( "\n . Initial seeding of the random generator..." ); + polarssl_printf( "\n . Initial seeding of the random generator..." ); fflush( stdout ); if( ( ret = ctr_drbg_init( &ctr_drbg, entropy_func, &entropy, (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1. Load the certificates and private RSA key */ - printf( " . Loading the server cert. and key..." ); + polarssl_printf( " . Loading the server cert. and key..." ); fflush( stdout ); /* @@ -148,7 +155,7 @@ int main( int argc, char *argv[] ) strlen( test_srv_crt ) ); if( ret != 0 ) { - printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); goto exit; } @@ -156,7 +163,7 @@ int main( int argc, char *argv[] ) strlen( test_ca_list ) ); if( ret != 0 ) { - printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); goto exit; } @@ -164,25 +171,25 @@ int main( int argc, char *argv[] ) strlen( test_srv_key ), NULL, 0 ); if( ret != 0 ) { - printf( " failed\n ! pk_parse_key returned %d\n\n", ret ); + polarssl_printf( " failed\n ! pk_parse_key returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 2. Setup the listening TCP socket */ - printf( " . Bind on https://localhost:4433/ ..." ); + polarssl_printf( " . Bind on https://localhost:4433/ ..." ); fflush( stdout ); if( ( ret = net_bind( &listen_fd, NULL, 4433 ) ) != 0 ) { - printf( " failed\n ! net_bind returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_bind returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); while( 1 ) { @@ -192,16 +199,16 @@ int main( int argc, char *argv[] ) client_fd = -1; memset( &ssl, 0, sizeof( ssl ) ); - printf( " . Waiting for a remote connection ..." ); + polarssl_printf( " . Waiting for a remote connection ..." ); fflush( stdout ); if( ( ret = net_accept( listen_fd, &client_fd, NULL ) ) != 0 ) { - printf( " failed\n ! net_accept returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_accept returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 3.5. Forking server thread @@ -209,16 +216,16 @@ int main( int argc, char *argv[] ) pid = fork(); - printf( " . Forking to handle connection ..." ); + polarssl_printf( " . Forking to handle connection ..." ); fflush( stdout ); if( pid < 0 ) { - printf(" failed\n ! fork returned %d\n\n", pid ); + polarssl_printf(" failed\n ! fork returned %d\n\n", pid ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); if( pid != 0 ) { @@ -226,7 +233,7 @@ int main( int argc, char *argv[] ) (const unsigned char *) "parent", 6 ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_reseed returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_reseed returned %d\n", ret ); goto exit; } @@ -239,24 +246,24 @@ int main( int argc, char *argv[] ) /* * 4. Setup stuff */ - printf( " . Setting up the SSL data...." ); + polarssl_printf( " . Setting up the SSL data...." ); fflush( stdout ); if( ( ret = ctr_drbg_reseed( &ctr_drbg, (const unsigned char *) "child", 5 ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_reseed returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_reseed returned %d\n", ret ); goto exit; } if( ( ret = ssl_init( &ssl ) ) != 0 ) { - printf( " failed\n ! ssl_init returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_init returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); ssl_set_endpoint( &ssl, SSL_IS_SERVER ); ssl_set_authmode( &ssl, SSL_VERIFY_NONE ); @@ -275,31 +282,31 @@ int main( int argc, char *argv[] ) ssl_set_ca_chain( &ssl, srvcert.next, NULL, NULL ); if( ( ret = ssl_set_own_cert( &ssl, &srvcert, &pkey ) ) != 0 ) { - printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); goto exit; } /* * 5. Handshake */ - printf( " . Performing the SSL/TLS handshake..." ); + polarssl_printf( " . Performing the SSL/TLS handshake..." ); fflush( stdout ); while( ( ret = ssl_handshake( &ssl ) ) != 0 ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_handshake returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_handshake returned %d\n\n", ret ); goto exit; } } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 6. Read the HTTP Request */ - printf( " < Read from client:" ); + polarssl_printf( " < Read from client:" ); fflush( stdout ); do @@ -316,15 +323,15 @@ int main( int argc, char *argv[] ) switch( ret ) { case POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY: - printf( " connection was closed gracefully\n" ); + polarssl_printf( " connection was closed gracefully\n" ); break; case POLARSSL_ERR_NET_CONN_RESET: - printf( " connection was reset by peer\n" ); + polarssl_printf( " connection was reset by peer\n" ); break; default: - printf( " ssl_read returned %d\n", ret ); + polarssl_printf( " ssl_read returned %d\n", ret ); break; } @@ -332,14 +339,14 @@ int main( int argc, char *argv[] ) } len = ret; - printf( " %d bytes read\n\n%s", len, (char *) buf ); + polarssl_printf( " %d bytes read\n\n%s", len, (char *) buf ); } while( 0 ); /* * 7. Write the 200 Response */ - printf( " > Write to client:" ); + polarssl_printf( " > Write to client:" ); fflush( stdout ); len = sprintf( (char *) buf, HTTP_RESPONSE, @@ -351,18 +358,18 @@ int main( int argc, char *argv[] ) { if( ret == POLARSSL_ERR_NET_CONN_RESET ) { - printf( " failed\n ! peer closed the connection\n\n" ); + polarssl_printf( " failed\n ! peer closed the connection\n\n" ); goto exit; } if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_write returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_write returned %d\n\n", ret ); goto exit; } } len = ret; - printf( " %d bytes written\n\n%s\n", len, (char *) buf ); + polarssl_printf( " %d bytes written\n\n%s\n", len, (char *) buf ); m_sleep( 1000 ); } @@ -383,7 +390,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " Press Enter to exit this program.\n" ); + polarssl_printf( " Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/ssl/ssl_mail_client.c b/programs/ssl/ssl_mail_client.c index 03d66a65a..31c0b6ee8 100644 --- a/programs/ssl/ssl_mail_client.c +++ b/programs/ssl/ssl_mail_client.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #include #include #include @@ -70,7 +77,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " "POLARSSL_SSL_TLS_C and/or POLARSSL_SSL_CLI_C and/or " "POLARSSL_NET_C and/or POLARSSL_RSA_C and/or " "POLARSSL_CTR_DRBG_C and/or POLARSSL_X509_CRT_PARSE_C " @@ -120,7 +127,7 @@ static void my_debug( void *ctx, int level, const char *str ) { if( level < opt.debug_level ) { - fprintf( (FILE *) ctx, "%s", str ); + polarssl_fprintf( (FILE *) ctx, "%s", str ); fflush( (FILE *) ctx ); } } @@ -134,7 +141,7 @@ static int do_handshake( ssl_context *ssl, struct options *opt ) /* * 4. Handshake */ - printf( " . Performing the SSL/TLS handshake..." ); + polarssl_printf( " . Performing the SSL/TLS handshake..." ); fflush( stdout ); while( ( ret = ssl_handshake( ssl ) ) != 0 ) @@ -144,45 +151,45 @@ static int do_handshake( ssl_context *ssl, struct options *opt ) #if defined(POLARSSL_ERROR_C) polarssl_strerror( ret, (char *) buf, 1024 ); #endif - printf( " failed\n ! ssl_handshake returned %d: %s\n\n", ret, buf ); + polarssl_printf( " failed\n ! ssl_handshake returned %d: %s\n\n", ret, buf ); return( -1 ); } } - printf( " ok\n [ Ciphersuite is %s ]\n", + polarssl_printf( " ok\n [ Ciphersuite is %s ]\n", ssl_get_ciphersuite( ssl ) ); /* * 5. Verify the server certificate */ - printf( " . Verifying peer X.509 certificate..." ); + polarssl_printf( " . Verifying peer X.509 certificate..." ); /* In real life, we may want to bail out when ret != 0 */ if( ( ret = ssl_get_verify_result( ssl ) ) != 0 ) { - printf( " failed\n" ); + polarssl_printf( " failed\n" ); if( ( ret & BADCERT_EXPIRED ) != 0 ) - printf( " ! server certificate has expired\n" ); + polarssl_printf( " ! server certificate has expired\n" ); if( ( ret & BADCERT_REVOKED ) != 0 ) - printf( " ! server certificate has been revoked\n" ); + polarssl_printf( " ! server certificate has been revoked\n" ); if( ( ret & BADCERT_CN_MISMATCH ) != 0 ) - printf( " ! CN mismatch (expected CN=%s)\n", opt->server_name ); + polarssl_printf( " ! CN mismatch (expected CN=%s)\n", opt->server_name ); if( ( ret & BADCERT_NOT_TRUSTED ) != 0 ) - printf( " ! self-signed or not signed by a trusted CA\n" ); + polarssl_printf( " ! self-signed or not signed by a trusted CA\n" ); - printf( "\n" ); + polarssl_printf( "\n" ); } else - printf( " ok\n" ); + polarssl_printf( " ok\n" ); - printf( " . Peer certificate information ...\n" ); + polarssl_printf( " . Peer certificate information ...\n" ); x509_crt_info( (char *) buf, sizeof( buf ) - 1, " ", ssl_get_peer_cert( ssl ) ); - printf( "%s\n", buf ); + polarssl_printf( "%s\n", buf ); return( 0 ); } @@ -191,12 +198,12 @@ static int write_ssl_data( ssl_context *ssl, unsigned char *buf, size_t len ) { int ret; - printf("\n%s", buf); + polarssl_printf("\n%s", buf); while( len && ( ret = ssl_write( ssl, buf, len ) ) <= 0 ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_write returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_write returned %d\n\n", ret ); return -1; } } @@ -211,12 +218,12 @@ static int write_ssl_and_get_response( ssl_context *ssl, unsigned char *buf, siz char code[4]; size_t i, idx = 0; - printf("\n%s", buf); + polarssl_printf("\n%s", buf); while( len && ( ret = ssl_write( ssl, buf, len ) ) <= 0 ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_write returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_write returned %d\n\n", ret ); return -1; } } @@ -235,11 +242,11 @@ static int write_ssl_and_get_response( ssl_context *ssl, unsigned char *buf, siz if( ret <= 0 ) { - printf( "failed\n ! ssl_read returned %d\n\n", ret ); + polarssl_printf( "failed\n ! ssl_read returned %d\n\n", ret ); return -1; } - printf("\n%s", data); + polarssl_printf("\n%s", data); len = ret; for( i = 0; i < len; i++ ) { @@ -269,10 +276,10 @@ static int write_and_get_response( int sock_fd, unsigned char *buf, size_t len ) char code[4]; size_t i, idx = 0; - printf("\n%s", buf); + polarssl_printf("\n%s", buf); if( len && ( ret = write( sock_fd, buf, len ) ) <= 0 ) { - printf( " failed\n ! ssl_write returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_write returned %d\n\n", ret ); return -1; } @@ -284,12 +291,12 @@ static int write_and_get_response( int sock_fd, unsigned char *buf, size_t len ) if( ret <= 0 ) { - printf( "failed\n ! read returned %d\n\n", ret ); + polarssl_printf( "failed\n ! read returned %d\n\n", ret ); return -1; } data[len] = '\0'; - printf("\n%s", data); + polarssl_printf("\n%s", data); len = ret; for( i = 0; i < len; i++ ) { @@ -380,15 +387,15 @@ int main( int argc, char *argv[] ) if( argc == 0 ) { usage: - printf( USAGE ); + polarssl_printf( USAGE ); list = ssl_list_ciphersuites(); while( *list ) { - printf(" %s\n", ssl_get_ciphersuite_name( *list ) ); + polarssl_printf(" %s\n", ssl_get_ciphersuite_name( *list ) ); list++; } - printf("\n"); + polarssl_printf("\n"); goto exit; } @@ -471,7 +478,7 @@ int main( int argc, char *argv[] ) /* * 0. Initialize the RNG and the session data */ - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -479,16 +486,16 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.1. Load the trusted CA */ - printf( " . Loading the CA root certificate ..." ); + polarssl_printf( " . Loading the CA root certificate ..." ); fflush( stdout ); #if defined(POLARSSL_FS_IO) @@ -502,23 +509,23 @@ int main( int argc, char *argv[] ) #else { ret = 1; - printf("POLARSSL_CERTS_C not defined."); + polarssl_printf("POLARSSL_CERTS_C not defined."); } #endif if( ret < 0 ) { - printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); goto exit; } - printf( " ok (%d skipped)\n", ret ); + polarssl_printf( " ok (%d skipped)\n", ret ); /* * 1.2. Load own certificate and private key * * (can be skipped if client authentication is not required) */ - printf( " . Loading the client cert. and key..." ); + polarssl_printf( " . Loading the client cert. and key..." ); fflush( stdout ); #if defined(POLARSSL_FS_IO) @@ -532,12 +539,12 @@ int main( int argc, char *argv[] ) #else { ret = -1; - printf("POLARSSL_CERTS_C not defined."); + polarssl_printf("POLARSSL_CERTS_C not defined."); } #endif if( ret != 0 ) { - printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); goto exit; } @@ -552,46 +559,46 @@ int main( int argc, char *argv[] ) #else { ret = -1; - printf("POLARSSL_CERTS_C not defined."); + polarssl_printf("POLARSSL_CERTS_C not defined."); } #endif if( ret != 0 ) { - printf( " failed\n ! pk_parse_key returned %d\n\n", ret ); + polarssl_printf( " failed\n ! pk_parse_key returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 2. Start the connection */ - printf( " . Connecting to tcp/%s/%-4d...", opt.server_name, + polarssl_printf( " . Connecting to tcp/%s/%-4d...", opt.server_name, opt.server_port ); fflush( stdout ); if( ( ret = net_connect( &server_fd, opt.server_name, opt.server_port ) ) != 0 ) { - printf( " failed\n ! net_connect returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_connect returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 3. Setup stuff */ - printf( " . Setting up the SSL/TLS structure..." ); + polarssl_printf( " . Setting up the SSL/TLS structure..." ); fflush( stdout ); if( ( ret = ssl_init( &ssl ) ) != 0 ) { - printf( " failed\n ! ssl_init returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_init returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); ssl_set_endpoint( &ssl, SSL_IS_CLIENT ); /* OPTIONAL is not optimal for security, @@ -614,14 +621,14 @@ int main( int argc, char *argv[] ) ssl_set_ca_chain( &ssl, &cacert, NULL, opt.server_name ); if( ( ret = ssl_set_own_cert( &ssl, &clicert, &pkey ) ) != 0 ) { - printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); goto exit; } #if defined(POLARSSL_SSL_SERVER_NAME_INDICATION) if( ( ret = ssl_set_hostname( &ssl, opt.server_name ) ) != 0 ) { - printf( " failed\n ! ssl_set_hostname returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_hostname returned %d\n\n", ret ); goto exit; } #endif @@ -631,19 +638,19 @@ int main( int argc, char *argv[] ) if( do_handshake( &ssl, &opt ) != 0 ) goto exit; - printf( " > Get header from server:" ); + polarssl_printf( " > Get header from server:" ); fflush( stdout ); ret = write_ssl_and_get_response( &ssl, buf, 0 ); if( ret < 200 || ret > 299 ) { - printf( " failed\n ! server responded with %d\n\n", ret ); + polarssl_printf( " failed\n ! server responded with %d\n\n", ret ); goto exit; } - printf(" ok\n" ); + polarssl_printf(" ok\n" ); - printf( " > Write EHLO to server:" ); + polarssl_printf( " > Write EHLO to server:" ); fflush( stdout ); gethostname( hostname, 32 ); @@ -651,25 +658,25 @@ int main( int argc, char *argv[] ) ret = write_ssl_and_get_response( &ssl, buf, len ); if( ret < 200 || ret > 299 ) { - printf( " failed\n ! server responded with %d\n\n", ret ); + polarssl_printf( " failed\n ! server responded with %d\n\n", ret ); goto exit; } } else { - printf( " > Get header from server:" ); + polarssl_printf( " > Get header from server:" ); fflush( stdout ); ret = write_and_get_response( server_fd, buf, 0 ); if( ret < 200 || ret > 299 ) { - printf( " failed\n ! server responded with %d\n\n", ret ); + polarssl_printf( " failed\n ! server responded with %d\n\n", ret ); goto exit; } - printf(" ok\n" ); + polarssl_printf(" ok\n" ); - printf( " > Write EHLO to server:" ); + polarssl_printf( " > Write EHLO to server:" ); fflush( stdout ); gethostname( hostname, 32 ); @@ -677,13 +684,13 @@ int main( int argc, char *argv[] ) ret = write_and_get_response( server_fd, buf, len ); if( ret < 200 || ret > 299 ) { - printf( " failed\n ! server responded with %d\n\n", ret ); + polarssl_printf( " failed\n ! server responded with %d\n\n", ret ); goto exit; } - printf(" ok\n" ); + polarssl_printf(" ok\n" ); - printf( " > Write STARTTLS to server:" ); + polarssl_printf( " > Write STARTTLS to server:" ); fflush( stdout ); gethostname( hostname, 32 ); @@ -691,11 +698,11 @@ int main( int argc, char *argv[] ) ret = write_and_get_response( server_fd, buf, len ); if( ret < 200 || ret > 299 ) { - printf( " failed\n ! server responded with %d\n\n", ret ); + polarssl_printf( " failed\n ! server responded with %d\n\n", ret ); goto exit; } - printf(" ok\n" ); + polarssl_printf(" ok\n" ); if( do_handshake( &ssl, &opt ) != 0 ) goto exit; @@ -704,20 +711,20 @@ int main( int argc, char *argv[] ) #if defined(POLARSSL_BASE64_C) if( opt.authentication ) { - printf( " > Write AUTH LOGIN to server:" ); + polarssl_printf( " > Write AUTH LOGIN to server:" ); fflush( stdout ); len = sprintf( (char *) buf, "AUTH LOGIN\r\n" ); ret = write_ssl_and_get_response( &ssl, buf, len ); if( ret < 200 || ret > 399 ) { - printf( " failed\n ! server responded with %d\n\n", ret ); + polarssl_printf( " failed\n ! server responded with %d\n\n", ret ); goto exit; } - printf(" ok\n" ); + polarssl_printf(" ok\n" ); - printf( " > Write username to server: %s", opt.user_name ); + polarssl_printf( " > Write username to server: %s", opt.user_name ); fflush( stdout ); n = sizeof( buf ); @@ -725,81 +732,81 @@ int main( int argc, char *argv[] ) strlen( opt.user_name ) ); if( ret != 0 ) { - printf( " failed\n ! base64_encode returned %d\n\n", ret ); + polarssl_printf( " failed\n ! base64_encode returned %d\n\n", ret ); goto exit; } len = sprintf( (char *) buf, "%s\r\n", base ); ret = write_ssl_and_get_response( &ssl, buf, len ); if( ret < 300 || ret > 399 ) { - printf( " failed\n ! server responded with %d\n\n", ret ); + polarssl_printf( " failed\n ! server responded with %d\n\n", ret ); goto exit; } - printf(" ok\n" ); + polarssl_printf(" ok\n" ); - printf( " > Write password to server: %s", opt.user_pwd ); + polarssl_printf( " > Write password to server: %s", opt.user_pwd ); fflush( stdout ); ret = base64_encode( base, &n, (const unsigned char *) opt.user_pwd, strlen( opt.user_pwd ) ); if( ret != 0 ) { - printf( " failed\n ! base64_encode returned %d\n\n", ret ); + polarssl_printf( " failed\n ! base64_encode returned %d\n\n", ret ); goto exit; } len = sprintf( (char *) buf, "%s\r\n", base ); ret = write_ssl_and_get_response( &ssl, buf, len ); if( ret < 200 || ret > 399 ) { - printf( " failed\n ! server responded with %d\n\n", ret ); + polarssl_printf( " failed\n ! server responded with %d\n\n", ret ); goto exit; } - printf(" ok\n" ); + polarssl_printf(" ok\n" ); } #endif - printf( " > Write MAIL FROM to server:" ); + polarssl_printf( " > Write MAIL FROM to server:" ); fflush( stdout ); len = sprintf( (char *) buf, "MAIL FROM:<%s>\r\n", opt.mail_from ); ret = write_ssl_and_get_response( &ssl, buf, len ); if( ret < 200 || ret > 299 ) { - printf( " failed\n ! server responded with %d\n\n", ret ); + polarssl_printf( " failed\n ! server responded with %d\n\n", ret ); goto exit; } - printf(" ok\n" ); + polarssl_printf(" ok\n" ); - printf( " > Write RCPT TO to server:" ); + polarssl_printf( " > Write RCPT TO to server:" ); fflush( stdout ); len = sprintf( (char *) buf, "RCPT TO:<%s>\r\n", opt.mail_to ); ret = write_ssl_and_get_response( &ssl, buf, len ); if( ret < 200 || ret > 299 ) { - printf( " failed\n ! server responded with %d\n\n", ret ); + polarssl_printf( " failed\n ! server responded with %d\n\n", ret ); goto exit; } - printf(" ok\n" ); + polarssl_printf(" ok\n" ); - printf( " > Write DATA to server:" ); + polarssl_printf( " > Write DATA to server:" ); fflush( stdout ); len = sprintf( (char *) buf, "DATA\r\n" ); ret = write_ssl_and_get_response( &ssl, buf, len ); if( ret < 300 || ret > 399 ) { - printf( " failed\n ! server responded with %d\n\n", ret ); + polarssl_printf( " failed\n ! server responded with %d\n\n", ret ); goto exit; } - printf(" ok\n" ); + polarssl_printf(" ok\n" ); - printf( " > Write content to server:" ); + polarssl_printf( " > Write content to server:" ); fflush( stdout ); len = sprintf( (char *) buf, "From: %s\r\nSubject: mbed TLS Test mail\r\n\r\n" @@ -813,11 +820,11 @@ int main( int argc, char *argv[] ) ret = write_ssl_and_get_response( &ssl, buf, len ); if( ret < 200 || ret > 299 ) { - printf( " failed\n ! server responded with %d\n\n", ret ); + polarssl_printf( " failed\n ! server responded with %d\n\n", ret ); goto exit; } - printf(" ok\n" ); + polarssl_printf(" ok\n" ); ssl_close_notify( &ssl ); @@ -833,7 +840,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/ssl/ssl_pthread_server.c b/programs/ssl/ssl_pthread_server.c index 96e872a60..4a6db7aef 100644 --- a/programs/ssl/ssl_pthread_server.c +++ b/programs/ssl/ssl_pthread_server.c @@ -27,6 +27,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #if defined(_WIN32) #include #endif @@ -62,7 +69,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_CERTS_C and/or POLARSSL_ENTROPY_C " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_CERTS_C and/or POLARSSL_ENTROPY_C " "and/or POLARSSL_SSL_TLS_C and/or POLARSSL_SSL_SRV_C and/or " "POLARSSL_NET_C and/or POLARSSL_RSA_C and/or " "POLARSSL_CTR_DRBG_C and/or POLARSSL_X509_CRT_PARSE_C and/or " @@ -86,7 +93,7 @@ static void my_mutexed_debug( void *ctx, int level, const char *str ) polarssl_mutex_lock( &debug_mutex ); if( level < DEBUG_LEVEL ) { - fprintf( (FILE *) ctx, "%s", str ); + polarssl_fprintf( (FILE *) ctx, "%s", str ); fflush( (FILE *) ctx ); } polarssl_mutex_unlock( &debug_mutex ); @@ -131,8 +138,8 @@ static void *handle_ssl_connection( void *data ) memset( &ctr_drbg, 0, sizeof( ctr_drbg_context ) ); snprintf( pers, sizeof(pers), "SSL Pthread Thread %d", thread_id ); - printf( " [ #%d ] Client FD %d\n", thread_id, client_fd ); - printf( " [ #%d ] Seeding the random number generator...\n", thread_id ); + polarssl_printf( " [ #%d ] Client FD %d\n", thread_id, client_fd ); + polarssl_printf( " [ #%d ] Seeding the random number generator...\n", thread_id ); /* entropy_func() is thread-safe if POLARSSL_THREADING_C is set */ @@ -140,21 +147,21 @@ static void *handle_ssl_connection( void *data ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " [ #%d ] failed: ctr_drbg_init returned -0x%04x\n", + polarssl_printf( " [ #%d ] failed: ctr_drbg_init returned -0x%04x\n", thread_id, -ret ); goto thread_exit; } - printf( " [ #%d ] ok\n", thread_id ); + polarssl_printf( " [ #%d ] ok\n", thread_id ); /* * 4. Setup stuff */ - printf( " [ #%d ] Setting up the SSL data....\n", thread_id ); + polarssl_printf( " [ #%d ] Setting up the SSL data....\n", thread_id ); if( ( ret = ssl_init( &ssl ) ) != 0 ) { - printf( " [ #%d ] failed: ssl_init returned -0x%04x\n", + polarssl_printf( " [ #%d ] failed: ssl_init returned -0x%04x\n", thread_id, -ret ); goto thread_exit; } @@ -181,38 +188,38 @@ static void *handle_ssl_connection( void *data ) ssl_set_ca_chain( &ssl, thread_info->ca_chain, NULL, NULL ); if( ( ret = ssl_set_own_cert( &ssl, thread_info->server_cert, thread_info->server_key ) ) != 0 ) { - printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); goto thread_exit; } - printf( " [ #%d ] ok\n", thread_id ); + polarssl_printf( " [ #%d ] ok\n", thread_id ); ssl_set_bio( &ssl, net_recv, &client_fd, net_send, &client_fd ); - printf( " [ #%d ] ok\n", thread_id ); + polarssl_printf( " [ #%d ] ok\n", thread_id ); /* * 5. Handshake */ - printf( " [ #%d ] Performing the SSL/TLS handshake\n", thread_id ); + polarssl_printf( " [ #%d ] Performing the SSL/TLS handshake\n", thread_id ); while( ( ret = ssl_handshake( &ssl ) ) != 0 ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " [ #%d ] failed: ssl_handshake returned -0x%04x\n", + polarssl_printf( " [ #%d ] failed: ssl_handshake returned -0x%04x\n", thread_id, -ret ); goto thread_exit; } } - printf( " [ #%d ] ok\n", thread_id ); + polarssl_printf( " [ #%d ] ok\n", thread_id ); /* * 6. Read the HTTP Request */ - printf( " [ #%d ] < Read from client\n", thread_id ); + polarssl_printf( " [ #%d ] < Read from client\n", thread_id ); do { @@ -228,24 +235,24 @@ static void *handle_ssl_connection( void *data ) switch( ret ) { case POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY: - printf( " [ #%d ] connection was closed gracefully\n", + polarssl_printf( " [ #%d ] connection was closed gracefully\n", thread_id ); goto thread_exit; case POLARSSL_ERR_NET_CONN_RESET: - printf( " [ #%d ] connection was reset by peer\n", + polarssl_printf( " [ #%d ] connection was reset by peer\n", thread_id ); goto thread_exit; default: - printf( " [ #%d ] ssl_read returned -0x%04x\n", + polarssl_printf( " [ #%d ] ssl_read returned -0x%04x\n", thread_id, -ret ); goto thread_exit; } } len = ret; - printf( " [ #%d ] %d bytes read\n=====\n%s\n=====\n", + polarssl_printf( " [ #%d ] %d bytes read\n=====\n%s\n=====\n", thread_id, len, (char *) buf ); if( ret > 0 ) @@ -256,7 +263,7 @@ static void *handle_ssl_connection( void *data ) /* * 7. Write the 200 Response */ - printf( " [ #%d ] > Write to client:\n", thread_id ); + polarssl_printf( " [ #%d ] > Write to client:\n", thread_id ); len = sprintf( (char *) buf, HTTP_RESPONSE, ssl_get_ciphersuite( &ssl ) ); @@ -265,37 +272,37 @@ static void *handle_ssl_connection( void *data ) { if( ret == POLARSSL_ERR_NET_CONN_RESET ) { - printf( " [ #%d ] failed: peer closed the connection\n", + polarssl_printf( " [ #%d ] failed: peer closed the connection\n", thread_id ); goto thread_exit; } if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " [ #%d ] failed: ssl_write returned -0x%04x\n", + polarssl_printf( " [ #%d ] failed: ssl_write returned -0x%04x\n", thread_id, ret ); goto thread_exit; } } len = ret; - printf( " [ #%d ] %d bytes written\n=====\n%s\n=====\n", + polarssl_printf( " [ #%d ] %d bytes written\n=====\n%s\n=====\n", thread_id, len, (char *) buf ); - printf( " [ #%d ] . Closing the connection...", thread_id ); + polarssl_printf( " [ #%d ] . Closing the connection...", thread_id ); while( ( ret = ssl_close_notify( &ssl ) ) < 0 ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " [ #%d ] failed: ssl_close_notify returned -0x%04x\n", + polarssl_printf( " [ #%d ] failed: ssl_close_notify returned -0x%04x\n", thread_id, ret ); goto thread_exit; } } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); ret = 0; @@ -306,7 +313,7 @@ thread_exit: { char error_buf[100]; polarssl_strerror( ret, error_buf, 100 ); - printf(" [ #%d ] Last error was: -0x%04x - %s\n\n", + polarssl_printf(" [ #%d ] Last error was: -0x%04x - %s\n\n", thread_id, -ret, error_buf ); } #endif @@ -334,7 +341,7 @@ static int thread_create( int client_fd ) if( threads[i].data.thread_complete == 1 ) { - printf( " [ main ] Cleaning up thread %d\n", i ); + polarssl_printf( " [ main ] Cleaning up thread %d\n", i ); pthread_join(threads[i].thread, NULL ); memset( &threads[i], 0, sizeof(pthread_info_t) ); break; @@ -400,7 +407,7 @@ int main( int argc, char *argv[] ) /* * 1. Load the certificates and private RSA key */ - printf( "\n . Loading the server cert. and key..." ); + polarssl_printf( "\n . Loading the server cert. and key..." ); fflush( stdout ); x509_crt_init( &srvcert ); @@ -414,7 +421,7 @@ int main( int argc, char *argv[] ) strlen( test_srv_crt ) ); if( ret != 0 ) { - printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); goto exit; } @@ -422,7 +429,7 @@ int main( int argc, char *argv[] ) strlen( test_ca_list ) ); if( ret != 0 ) { - printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); goto exit; } @@ -431,7 +438,7 @@ int main( int argc, char *argv[] ) strlen( test_srv_key ), NULL, 0 ); if( ret != 0 ) { - printf( " failed\n ! pk_parse_key returned %d\n\n", ret ); + polarssl_printf( " failed\n ! pk_parse_key returned %d\n\n", ret ); goto exit; } @@ -439,21 +446,21 @@ int main( int argc, char *argv[] ) base_info.server_cert = &srvcert; base_info.server_key = &pkey; - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 2. Setup the listening TCP socket */ - printf( " . Bind on https://localhost:4433/ ..." ); + polarssl_printf( " . Bind on https://localhost:4433/ ..." ); fflush( stdout ); if( ( ret = net_bind( &listen_fd, NULL, 4433 ) ) != 0 ) { - printf( " failed\n ! net_bind returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_bind returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); reset: #ifdef POLARSSL_ERROR_C @@ -461,7 +468,7 @@ reset: { char error_buf[100]; polarssl_strerror( ret, error_buf, 100 ); - printf( " [ main ] Last error was: -0x%04x - %s\n", -ret, error_buf ); + polarssl_printf( " [ main ] Last error was: -0x%04x - %s\n", -ret, error_buf ); } #endif @@ -470,20 +477,20 @@ reset: */ client_fd = -1; - printf( " [ main ] Waiting for a remote connection\n" ); + polarssl_printf( " [ main ] Waiting for a remote connection\n" ); if( ( ret = net_accept( listen_fd, &client_fd, NULL ) ) != 0 ) { - printf( " [ main ] failed: net_accept returned -0x%04x\n", ret ); + polarssl_printf( " [ main ] failed: net_accept returned -0x%04x\n", ret ); goto exit; } - printf( " [ main ] ok\n" ); - printf( " [ main ] Creating a new thread\n" ); + polarssl_printf( " [ main ] ok\n" ); + polarssl_printf( " [ main ] Creating a new thread\n" ); if( ( ret = thread_create( client_fd ) ) != 0 ) { - printf( " [ main ] failed: thread_create returned %d\n", ret ); + polarssl_printf( " [ main ] failed: thread_create returned %d\n", ret ); net_close( client_fd ); goto reset; } @@ -506,7 +513,7 @@ exit: #endif #if defined(_WIN32) - printf( " Press Enter to exit this program.\n" ); + polarssl_printf( " Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/ssl/ssl_server.c b/programs/ssl/ssl_server.c index 5c37b1da1..c9360d943 100644 --- a/programs/ssl/ssl_server.c +++ b/programs/ssl/ssl_server.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #if defined(_WIN32) #include #endif @@ -57,7 +64,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_CERTS_C and/or POLARSSL_ENTROPY_C " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_CERTS_C and/or POLARSSL_ENTROPY_C " "and/or POLARSSL_SSL_TLS_C and/or POLARSSL_SSL_SRV_C and/or " "POLARSSL_NET_C and/or POLARSSL_RSA_C and/or " "POLARSSL_CTR_DRBG_C and/or POLARSSL_X509_CRT_PARSE_C " @@ -77,7 +84,7 @@ static void my_debug( void *ctx, int level, const char *str ) { ((void) level); - fprintf( (FILE *) ctx, "%s", str ); + polarssl_fprintf( (FILE *) ctx, "%s", str ); fflush( (FILE *) ctx ); } @@ -116,7 +123,7 @@ int main( int argc, char *argv[] ) /* * 1. Load the certificates and private RSA key */ - printf( "\n . Loading the server cert. and key..." ); + polarssl_printf( "\n . Loading the server cert. and key..." ); fflush( stdout ); /* @@ -128,7 +135,7 @@ int main( int argc, char *argv[] ) strlen( test_srv_crt ) ); if( ret != 0 ) { - printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); goto exit; } @@ -136,7 +143,7 @@ int main( int argc, char *argv[] ) strlen( test_ca_list ) ); if( ret != 0 ) { - printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned %d\n\n", ret ); goto exit; } @@ -144,51 +151,51 @@ int main( int argc, char *argv[] ) strlen( test_srv_key ), NULL, 0 ); if( ret != 0 ) { - printf( " failed\n ! pk_parse_key returned %d\n\n", ret ); + polarssl_printf( " failed\n ! pk_parse_key returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 2. Setup the listening TCP socket */ - printf( " . Bind on https://localhost:4433/ ..." ); + polarssl_printf( " . Bind on https://localhost:4433/ ..." ); fflush( stdout ); if( ( ret = net_bind( &listen_fd, NULL, 4433 ) ) != 0 ) { - printf( " failed\n ! net_bind returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_bind returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 3. Seed the RNG */ - printf( " . Seeding the random number generator..." ); + polarssl_printf( " . Seeding the random number generator..." ); fflush( stdout ); if( ( ret = ctr_drbg_init( &ctr_drbg, entropy_func, &entropy, (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 4. Setup stuff */ - printf( " . Setting up the SSL data...." ); + polarssl_printf( " . Setting up the SSL data...." ); fflush( stdout ); if( ( ret = ssl_init( &ssl ) ) != 0 ) { - printf( " failed\n ! ssl_init returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_init returned %d\n\n", ret ); goto exit; } @@ -211,11 +218,11 @@ int main( int argc, char *argv[] ) ssl_set_ca_chain( &ssl, srvcert.next, NULL, NULL ); if( ( ret = ssl_set_own_cert( &ssl, &srvcert, &pkey ) ) != 0 ) { - printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); reset: #ifdef POLARSSL_ERROR_C @@ -223,7 +230,7 @@ reset: { char error_buf[100]; polarssl_strerror( ret, error_buf, 100 ); - printf("Last error was: %d - %s\n\n", ret, error_buf ); + polarssl_printf("Last error was: %d - %s\n\n", ret, error_buf ); } #endif @@ -237,41 +244,41 @@ reset: */ client_fd = -1; - printf( " . Waiting for a remote connection ..." ); + polarssl_printf( " . Waiting for a remote connection ..." ); fflush( stdout ); if( ( ret = net_accept( listen_fd, &client_fd, NULL ) ) != 0 ) { - printf( " failed\n ! net_accept returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_accept returned %d\n\n", ret ); goto exit; } ssl_set_bio( &ssl, net_recv, &client_fd, net_send, &client_fd ); - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 5. Handshake */ - printf( " . Performing the SSL/TLS handshake..." ); + polarssl_printf( " . Performing the SSL/TLS handshake..." ); fflush( stdout ); while( ( ret = ssl_handshake( &ssl ) ) != 0 ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_handshake returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_handshake returned %d\n\n", ret ); goto reset; } } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 6. Read the HTTP Request */ - printf( " < Read from client:" ); + polarssl_printf( " < Read from client:" ); fflush( stdout ); do @@ -288,15 +295,15 @@ reset: switch( ret ) { case POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY: - printf( " connection was closed gracefully\n" ); + polarssl_printf( " connection was closed gracefully\n" ); break; case POLARSSL_ERR_NET_CONN_RESET: - printf( " connection was reset by peer\n" ); + polarssl_printf( " connection was reset by peer\n" ); break; default: - printf( " ssl_read returned -0x%x\n", -ret ); + polarssl_printf( " ssl_read returned -0x%x\n", -ret ); break; } @@ -304,7 +311,7 @@ reset: } len = ret; - printf( " %d bytes read\n\n%s", len, (char *) buf ); + polarssl_printf( " %d bytes read\n\n%s", len, (char *) buf ); if( ret > 0 ) break; @@ -314,7 +321,7 @@ reset: /* * 7. Write the 200 Response */ - printf( " > Write to client:" ); + polarssl_printf( " > Write to client:" ); fflush( stdout ); len = sprintf( (char *) buf, HTTP_RESPONSE, @@ -324,33 +331,33 @@ reset: { if( ret == POLARSSL_ERR_NET_CONN_RESET ) { - printf( " failed\n ! peer closed the connection\n\n" ); + polarssl_printf( " failed\n ! peer closed the connection\n\n" ); goto reset; } if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_write returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_write returned %d\n\n", ret ); goto exit; } } len = ret; - printf( " %d bytes written\n\n%s\n", len, (char *) buf ); + polarssl_printf( " %d bytes written\n\n%s\n", len, (char *) buf ); - printf( " . Closing the connection..." ); + polarssl_printf( " . Closing the connection..." ); while( ( ret = ssl_close_notify( &ssl ) ) < 0 ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_close_notify returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_close_notify returned %d\n\n", ret ); goto reset; } } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); ret = 0; goto reset; @@ -362,7 +369,7 @@ exit: { char error_buf[100]; polarssl_strerror( ret, error_buf, 100 ); - printf("Last error was: %d - %s\n\n", ret, error_buf ); + polarssl_printf("Last error was: %d - %s\n\n", ret, error_buf ); } #endif @@ -379,7 +386,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " Press Enter to exit this program.\n" ); + polarssl_printf( " Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 7e0af496d..15166d22b 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -26,6 +26,15 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#define polarssl_malloc malloc +#define polarssl_free free +#endif + #if !defined(POLARSSL_ENTROPY_C) || \ !defined(POLARSSL_SSL_TLS_C) || !defined(POLARSSL_SSL_SRV_C) || \ !defined(POLARSSL_NET_C) || !defined(POLARSSL_CTR_DRBG_C) @@ -35,7 +44,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_ENTROPY_C and/or " + polarssl_printf("POLARSSL_ENTROPY_C and/or " "POLARSSL_SSL_TLS_C and/or POLARSSL_SSL_SRV_C and/or " "POLARSSL_NET_C and/or POLARSSL_CTR_DRBG_C not defined.\n"); return( 0 ); @@ -46,13 +55,6 @@ int main( int argc, char *argv[] ) #define POLARSSL_SNI #endif -#if defined(POLARSSL_PLATFORM_C) -#include "polarssl/platform.h" -#else -#define polarssl_malloc malloc -#define polarssl_free free -#endif - #if defined(_WIN32) #include #endif @@ -189,7 +191,7 @@ static void my_debug( void *ctx, int level, const char *str ) { ((void) level); - fprintf( (FILE *) ctx, "%s", str ); + polarssl_fprintf( (FILE *) ctx, "%s", str ); fflush( (FILE *) ctx ); } @@ -710,19 +712,19 @@ int main( int argc, char *argv[] ) if( ret == 0 ) ret = 1; - printf( USAGE ); + polarssl_printf( USAGE ); list = ssl_list_ciphersuites(); while( *list ) { - printf(" %-42s", ssl_get_ciphersuite_name( *list ) ); + polarssl_printf(" %-42s", ssl_get_ciphersuite_name( *list ) ); list++; if( !*list ) break; - printf(" %s\n", ssl_get_ciphersuite_name( *list ) ); + polarssl_printf(" %s\n", ssl_get_ciphersuite_name( *list ) ); list++; } - printf("\n"); + polarssl_printf("\n"); goto exit; } @@ -1019,14 +1021,14 @@ int main( int argc, char *argv[] ) if( opt.max_version != -1 && ciphersuite_info->min_minor_ver > opt.max_version ) { - printf("forced ciphersuite not allowed with this protocol version\n"); + polarssl_printf("forced ciphersuite not allowed with this protocol version\n"); ret = 2; goto usage; } if( opt.min_version != -1 && ciphersuite_info->max_minor_ver < opt.min_version ) { - printf("forced ciphersuite not allowed with this protocol version\n"); + polarssl_printf("forced ciphersuite not allowed with this protocol version\n"); ret = 2; goto usage; } @@ -1056,7 +1058,7 @@ int main( int argc, char *argv[] ) if( i != 4 ) { - printf( "too few values for version_suites\n" ); + polarssl_printf( "too few values for version_suites\n" ); ret = 1; goto exit; } @@ -1070,7 +1072,7 @@ int main( int argc, char *argv[] ) if( version_suites[i][0] == 0 ) { - printf( "unknown ciphersuite: '%s'\n", name[i] ); + polarssl_printf( "unknown ciphersuite: '%s'\n", name[i] ); ret = 2; goto usage; } @@ -1083,7 +1085,7 @@ int main( int argc, char *argv[] ) */ if( unhexify( psk, opt.psk, &psk_len ) != 0 ) { - printf( "pre-shared key not valid hex\n" ); + polarssl_printf( "pre-shared key not valid hex\n" ); goto exit; } @@ -1091,7 +1093,7 @@ int main( int argc, char *argv[] ) { if( ( psk_info = psk_parse( opt.psk_list ) ) == NULL ) { - printf( "psk_list invalid" ); + polarssl_printf( "psk_list invalid" ); goto exit; } } @@ -1120,7 +1122,7 @@ int main( int argc, char *argv[] ) /* * 0. Initialize the RNG and the session data */ - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -1128,17 +1130,17 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned -0x%x\n", -ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned -0x%x\n", -ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); #if defined(POLARSSL_X509_CRT_PARSE_C) /* * 1.1. Load the trusted CA */ - printf( " . Loading the CA root certificate ..." ); + polarssl_printf( " . Loading the CA root certificate ..." ); fflush( stdout ); #if defined(POLARSSL_FS_IO) @@ -1160,21 +1162,21 @@ int main( int argc, char *argv[] ) #else { ret = 1; - printf("POLARSSL_CERTS_C not defined."); + polarssl_printf("POLARSSL_CERTS_C not defined."); } #endif if( ret < 0 ) { - printf( " failed\n ! x509_crt_parse returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned -0x%x\n\n", -ret ); goto exit; } - printf( " ok (%d skipped)\n", ret ); + polarssl_printf( " ok (%d skipped)\n", ret ); /* * 1.2. Load own certificate and private key */ - printf( " . Loading the server cert. and key..." ); + polarssl_printf( " . Loading the server cert. and key..." ); fflush( stdout ); #if defined(POLARSSL_FS_IO) @@ -1183,7 +1185,7 @@ int main( int argc, char *argv[] ) key_cert_init++; if( ( ret = x509_crt_parse_file( &srvcert, opt.crt_file ) ) != 0 ) { - printf( " failed\n ! x509_crt_parse_file returned -0x%x\n\n", + polarssl_printf( " failed\n ! x509_crt_parse_file returned -0x%x\n\n", -ret ); goto exit; } @@ -1193,13 +1195,13 @@ int main( int argc, char *argv[] ) key_cert_init++; if( ( ret = pk_parse_keyfile( &pkey, opt.key_file, "" ) ) != 0 ) { - printf( " failed\n ! pk_parse_keyfile returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! pk_parse_keyfile returned -0x%x\n\n", -ret ); goto exit; } } if( key_cert_init == 1 ) { - printf( " failed\n ! crt_file without key_file or vice-versa\n\n" ); + polarssl_printf( " failed\n ! crt_file without key_file or vice-versa\n\n" ); goto exit; } @@ -1208,7 +1210,7 @@ int main( int argc, char *argv[] ) key_cert_init2++; if( ( ret = x509_crt_parse_file( &srvcert2, opt.crt_file2 ) ) != 0 ) { - printf( " failed\n ! x509_crt_parse_file(2) returned -0x%x\n\n", + polarssl_printf( " failed\n ! x509_crt_parse_file(2) returned -0x%x\n\n", -ret ); goto exit; } @@ -1218,14 +1220,14 @@ int main( int argc, char *argv[] ) key_cert_init2++; if( ( ret = pk_parse_keyfile( &pkey2, opt.key_file2, "" ) ) != 0 ) { - printf( " failed\n ! pk_parse_keyfile(2) returned -0x%x\n\n", + polarssl_printf( " failed\n ! pk_parse_keyfile(2) returned -0x%x\n\n", -ret ); goto exit; } } if( key_cert_init2 == 1 ) { - printf( " failed\n ! crt_file2 without key_file2 or vice-versa\n\n" ); + polarssl_printf( " failed\n ! crt_file2 without key_file2 or vice-versa\n\n" ); goto exit; } #endif @@ -1237,7 +1239,7 @@ int main( int argc, char *argv[] ) strcmp( opt.key_file2, "none" ) != 0 ) { #if !defined(POLARSSL_CERTS_C) - printf( "Not certificated or key provided, and \n" + polarssl_printf( "Not certificated or key provided, and \n" "POLARSSL_CERTS_C not defined!\n" ); goto exit; #else @@ -1246,14 +1248,14 @@ int main( int argc, char *argv[] ) (const unsigned char *) test_srv_crt_rsa, strlen( test_srv_crt_rsa ) ) ) != 0 ) { - printf( " failed\n ! x509_crt_parse returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned -0x%x\n\n", -ret ); goto exit; } if( ( ret = pk_parse_key( &pkey, (const unsigned char *) test_srv_key_rsa, strlen( test_srv_key_rsa ), NULL, 0 ) ) != 0 ) { - printf( " failed\n ! pk_parse_key returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! pk_parse_key returned -0x%x\n\n", -ret ); goto exit; } key_cert_init = 2; @@ -1263,14 +1265,14 @@ int main( int argc, char *argv[] ) (const unsigned char *) test_srv_crt_ec, strlen( test_srv_crt_ec ) ) ) != 0 ) { - printf( " failed\n ! x509_crt_parse2 returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! x509_crt_parse2 returned -0x%x\n\n", -ret ); goto exit; } if( ( ret = pk_parse_key( &pkey2, (const unsigned char *) test_srv_key_ec, strlen( test_srv_key_ec ), NULL, 0 ) ) != 0 ) { - printf( " failed\n ! pk_parse_key2 returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! pk_parse_key2 returned -0x%x\n\n", -ret ); goto exit; } key_cert_init2 = 2; @@ -1278,66 +1280,66 @@ int main( int argc, char *argv[] ) #endif /* POLARSSL_CERTS_C */ } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); #endif /* POLARSSL_X509_CRT_PARSE_C */ #if defined(POLARSSL_DHM_C) && defined(POLARSSL_FS_IO) if( opt.dhm_file != NULL ) { - printf( " . Loading DHM parameters..." ); + polarssl_printf( " . Loading DHM parameters..." ); fflush( stdout ); if( ( ret = dhm_parse_dhmfile( &dhm, opt.dhm_file ) ) != 0 ) { - printf( " failed\n ! dhm_parse_dhmfile returned -0x%04X\n\n", + polarssl_printf( " failed\n ! dhm_parse_dhmfile returned -0x%04X\n\n", -ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); } #endif #if defined(POLARSSL_SNI) if( opt.sni != NULL ) { - printf( " . Setting up SNI information..." ); + polarssl_printf( " . Setting up SNI information..." ); fflush( stdout ); if( ( sni_info = sni_parse( opt.sni ) ) == NULL ) { - printf( " failed\n" ); + polarssl_printf( " failed\n" ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); } #endif /* POLARSSL_SNI */ /* * 2. Setup the listening TCP socket */ - printf( " . Bind on tcp://localhost:%-4d/ ...", opt.server_port ); + polarssl_printf( " . Bind on tcp://localhost:%-4d/ ...", opt.server_port ); fflush( stdout ); if( ( ret = net_bind( &listen_fd, opt.server_addr, opt.server_port ) ) != 0 ) { - printf( " failed\n ! net_bind returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! net_bind returned -0x%x\n\n", -ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 3. Setup stuff */ - printf( " . Setting up the SSL/TLS structure..." ); + polarssl_printf( " . Setting up the SSL/TLS structure..." ); fflush( stdout ); if( ( ret = ssl_init( &ssl ) ) != 0 ) { - printf( " failed\n ! ssl_init returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! ssl_init returned -0x%x\n\n", -ret ); goto exit; } @@ -1347,7 +1349,7 @@ int main( int argc, char *argv[] ) #if defined(POLARSSL_SSL_MAX_FRAGMENT_LENGTH) if( ( ret = ssl_set_max_frag_len( &ssl, opt.mfl_code ) ) != 0 ) { - printf( " failed\n ! ssl_set_max_frag_len returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_max_frag_len returned %d\n\n", ret ); goto exit; }; #endif @@ -1371,7 +1373,7 @@ int main( int argc, char *argv[] ) if( opt.alpn_string != NULL ) if( ( ret = ssl_set_alpn_protocols( &ssl, alpn_list ) ) != 0 ) { - printf( " failed\n ! ssl_set_alpn_protocols returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_alpn_protocols returned %d\n\n", ret ); goto exit; } #endif @@ -1393,7 +1395,7 @@ int main( int argc, char *argv[] ) #if defined(POLARSSL_SSL_SESSION_TICKETS) if( ( ret = ssl_set_session_tickets( &ssl, opt.tickets ) ) != 0 ) { - printf( " failed\n ! ssl_set_session_tickets returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_session_tickets returned %d\n\n", ret ); goto exit; } @@ -1446,13 +1448,13 @@ int main( int argc, char *argv[] ) if( key_cert_init ) if( ( ret = ssl_set_own_cert( &ssl, &srvcert, &pkey ) ) != 0 ) { - printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); goto exit; } if( key_cert_init2 ) if( ( ret = ssl_set_own_cert( &ssl, &srvcert2, &pkey2 ) ) != 0 ) { - printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); goto exit; } #endif @@ -1470,7 +1472,7 @@ int main( int argc, char *argv[] ) strlen( opt.psk_identity ) ); if( ret != 0 ) { - printf( " failed\n ssl_set_psk returned -0x%04X\n\n", - ret ); + polarssl_printf( " failed\n ssl_set_psk returned -0x%04X\n\n", - ret ); goto exit; } } @@ -1493,7 +1495,7 @@ int main( int argc, char *argv[] ) if( ret != 0 ) { - printf( " failed\n ssl_set_dh_param returned -0x%04X\n\n", - ret ); + polarssl_printf( " failed\n ssl_set_dh_param returned -0x%04X\n\n", - ret ); goto exit; } #endif @@ -1504,7 +1506,7 @@ int main( int argc, char *argv[] ) if( opt.max_version != -1 ) ssl_set_max_version( &ssl, SSL_MAJOR_VERSION_3, opt.max_version ); - printf( " ok\n" ); + polarssl_printf( " ok\n" ); reset: #if !defined(_WIN32) @@ -1521,7 +1523,7 @@ reset: { char error_buf[100]; polarssl_strerror( ret, error_buf, 100 ); - printf("Last error was: %d - %s\n\n", ret, error_buf ); + polarssl_printf("Last error was: %d - %s\n\n", ret, error_buf ); } #endif @@ -1535,7 +1537,7 @@ reset: */ client_fd = -1; - printf( " . Waiting for a remote connection ..." ); + polarssl_printf( " . Waiting for a remote connection ..." ); fflush( stdout ); if( ( ret = net_accept( listen_fd, &client_fd, NULL ) ) != 0 ) @@ -1543,13 +1545,13 @@ reset: #if !defined(_WIN32) if( received_sigterm ) { - printf( " interrupted by signal\n" ); + polarssl_printf( " interrupted by signal\n" ); ret = 0; goto exit; } #endif - printf( " failed\n ! net_accept returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! net_accept returned -0x%x\n\n", -ret ); goto exit; } @@ -1559,7 +1561,7 @@ reset: ret = net_set_block( client_fd ); if( ret != 0 ) { - printf( " failed\n ! net_set_(non)block() returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! net_set_(non)block() returned -0x%x\n\n", -ret ); goto exit; } @@ -1568,31 +1570,31 @@ reset: else ssl_set_bio( &ssl, net_recv, &client_fd, net_send, &client_fd ); - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 4. Handshake */ - printf( " . Performing the SSL/TLS handshake..." ); + polarssl_printf( " . Performing the SSL/TLS handshake..." ); fflush( stdout ); while( ( ret = ssl_handshake( &ssl ) ) != 0 ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_handshake returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! ssl_handshake returned -0x%x\n\n", -ret ); goto reset; } } - printf( " ok\n [ Protocol is %s ]\n [ Ciphersuite is %s ]\n", + polarssl_printf( " ok\n [ Protocol is %s ]\n [ Ciphersuite is %s ]\n", ssl_get_version( &ssl ), ssl_get_ciphersuite( &ssl ) ); #if defined(POLARSSL_SSL_ALPN) if( opt.alpn_string != NULL ) { const char *alp = ssl_get_alpn_protocol( &ssl ); - printf( " [ Application Layer Protocol is %s ]\n", + polarssl_printf( " [ Application Layer Protocol is %s ]\n", alp ? alp : "(none)" ); } #endif @@ -1601,35 +1603,35 @@ reset: /* * 5. Verify the server certificate */ - printf( " . Verifying peer X.509 certificate..." ); + polarssl_printf( " . Verifying peer X.509 certificate..." ); if( ( ret = ssl_get_verify_result( &ssl ) ) != 0 ) { - printf( " failed\n" ); + polarssl_printf( " failed\n" ); if( !ssl_get_peer_cert( &ssl ) ) - printf( " ! no client certificate sent\n" ); + polarssl_printf( " ! no client certificate sent\n" ); if( ( ret & BADCERT_EXPIRED ) != 0 ) - printf( " ! client certificate has expired\n" ); + polarssl_printf( " ! client certificate has expired\n" ); if( ( ret & BADCERT_REVOKED ) != 0 ) - printf( " ! client certificate has been revoked\n" ); + polarssl_printf( " ! client certificate has been revoked\n" ); if( ( ret & BADCERT_NOT_TRUSTED ) != 0 ) - printf( " ! self-signed or not signed by a trusted CA\n" ); + polarssl_printf( " ! self-signed or not signed by a trusted CA\n" ); - printf( "\n" ); + polarssl_printf( "\n" ); } else - printf( " ok\n" ); + polarssl_printf( " ok\n" ); if( ssl_get_peer_cert( &ssl ) ) { - printf( " . Peer certificate information ...\n" ); + polarssl_printf( " . Peer certificate information ...\n" ); x509_crt_info( (char *) buf, sizeof( buf ) - 1, " ", ssl_get_peer_cert( &ssl ) ); - printf( "%s\n", buf ); + polarssl_printf( "%s\n", buf ); } #endif /* POLARSSL_X509_CRT_PARSE_C */ @@ -1638,7 +1640,7 @@ data_exchange: /* * 6. Read the HTTP Request */ - printf( " < Read from client:" ); + polarssl_printf( " < Read from client:" ); fflush( stdout ); do @@ -1657,17 +1659,17 @@ data_exchange: switch( ret ) { case POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY: - printf( " connection was closed gracefully\n" ); + polarssl_printf( " connection was closed gracefully\n" ); goto close_notify; case 0: case POLARSSL_ERR_NET_CONN_RESET: - printf( " connection was reset by peer\n" ); + polarssl_printf( " connection was reset by peer\n" ); ret = POLARSSL_ERR_NET_CONN_RESET; goto reset; default: - printf( " ssl_read returned -0x%x\n", -ret ); + polarssl_printf( " ssl_read returned -0x%x\n", -ret ); goto reset; } } @@ -1676,7 +1678,7 @@ data_exchange: { len = ret; buf[len] = '\0'; - printf( " %d bytes read\n\n%s\n", len, (char *) buf ); + polarssl_printf( " %d bytes read\n\n%s\n", len, (char *) buf ); /* End of message should be detected according to the syntax of the * application protocol (eg HTTP), just use a dummy test here. */ @@ -1694,7 +1696,7 @@ data_exchange: larger_buf = polarssl_malloc( ori_len + extra_len + 1 ); if( larger_buf == NULL ) { - printf( " ! memory allocation failed\n" ); + polarssl_printf( " ! memory allocation failed\n" ); ret = 1; goto reset; } @@ -1707,13 +1709,13 @@ data_exchange: if( ret != extra_len || ssl_get_bytes_avail( &ssl ) != 0 ) { - printf( " ! ssl_read failed on cached data\n" ); + polarssl_printf( " ! ssl_read failed on cached data\n" ); ret = 1; goto reset; } larger_buf[ori_len + extra_len] = '\0'; - printf( " %u bytes read (%u + %u)\n\n%s\n", + polarssl_printf( " %u bytes read (%u + %u)\n\n%s\n", ori_len + extra_len, ori_len, extra_len, (char *) larger_buf ); @@ -1740,7 +1742,7 @@ data_exchange: #if defined(POLARSSL_SSL_RENEGOTIATION) if( opt.renegotiate && exchanges_left > 1 ) { - printf( " . Requestion renegotiation..." ); + polarssl_printf( " . Requestion renegotiation..." ); fflush( stdout ); while( ( ret = ssl_renegotiate( &ssl ) ) != 0 ) @@ -1748,19 +1750,19 @@ data_exchange: if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_renegotiate returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_renegotiate returned %d\n\n", ret ); goto reset; } } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); } #endif /* POLARSSL_SSL_RENEGOTIATION */ /* * 7. Write the 200 Response */ - printf( " > Write to client:" ); + polarssl_printf( " > Write to client:" ); fflush( stdout ); len = sprintf( (char *) buf, HTTP_RESPONSE, @@ -1772,13 +1774,13 @@ data_exchange: { if( ret == POLARSSL_ERR_NET_CONN_RESET ) { - printf( " failed\n ! peer closed the connection\n\n" ); + polarssl_printf( " failed\n ! peer closed the connection\n\n" ); goto reset; } if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_write returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_write returned %d\n\n", ret ); goto reset; } } @@ -1786,6 +1788,7 @@ data_exchange: buf[written] = '\0'; printf( " %d bytes written in %d fragments\n\n%s\n", written, frags, (char *) buf ); + polarssl_printf( " %d bytes written in %d fragments\n\n%s\n", written, frags, (char *) buf ); ret = 0; /* @@ -1798,14 +1801,15 @@ data_exchange: * 8. Done, cleanly close the connection */ close_notify: - printf( " . Closing the connection..." ); + polarssl_printf( " . Closing the connection..." ); /* No error checking, the connection might be closed already */ do ret = ssl_close_notify( &ssl ); while( ret == POLARSSL_ERR_NET_WANT_WRITE ); ret = 0; - printf( " done\n" ); + polarssl_printf( " done\n" ); + goto reset; /* @@ -1817,7 +1821,7 @@ exit: { char error_buf[100]; polarssl_strerror( ret, error_buf, 100 ); - printf("Last error was: -0x%X - %s\n\n", -ret, error_buf ); + polarssl_printf("Last error was: -0x%X - %s\n\n", -ret, error_buf ); } #endif @@ -1865,7 +1869,7 @@ exit: printf( " done.\n" ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c index 239d96850..7e77f6cd3 100644 --- a/programs/test/benchmark.c +++ b/programs/test/benchmark.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include #include @@ -68,7 +74,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_TIMING_C not defined.\n"); + polarssl_printf("POLARSSL_TIMING_C not defined.\n"); return( 0 ); } #else @@ -100,7 +106,7 @@ static int myrand( void *rng_state, unsigned char *output, size_t len ) do { \ unsigned long i, j, tsc; \ \ - printf( HEADER_FORMAT, TITLE ); \ + polarssl_printf( HEADER_FORMAT, TITLE ); \ fflush( stdout ); \ \ set_alarm( 1 ); \ @@ -115,17 +121,17 @@ do { \ CODE; \ } \ \ - printf( "%9lu Kb/s, %9lu cycles/byte\n", i * BUFSIZE / 1024, \ + polarssl_printf( "%9lu Kb/s, %9lu cycles/byte\n", i * BUFSIZE / 1024, \ ( hardclock() - tsc ) / ( j * BUFSIZE ) ); \ } while( 0 ) #if defined(POLARSSL_ERROR_C) #define PRINT_ERROR \ polarssl_strerror( ret, ( char * )tmp, sizeof( tmp ) ); \ - printf( "FAILED: %s\n", tmp ); + polarssl_printf( "FAILED: %s\n", tmp ); #else #define PRINT_ERROR \ - printf( "FAILED: -0x%04x\n", -ret ); + polarssl_printf( "FAILED: -0x%04x\n", -ret ); #endif #define TIME_PUBLIC( TITLE, TYPE, CODE ) \ @@ -133,7 +139,7 @@ do { \ unsigned long i; \ int ret; \ \ - printf( HEADER_FORMAT, TITLE ); \ + polarssl_printf( HEADER_FORMAT, TITLE ); \ fflush( stdout ); \ set_alarm( 3 ); \ \ @@ -148,7 +154,7 @@ do { \ PRINT_ERROR; \ } \ else \ - printf( "%9lu " TYPE "/s\n", i / 3 ); \ + polarssl_printf( "%9lu " TYPE "/s\n", i / 3 ); \ } while( 0 ) unsigned char buf[BUFSIZE]; @@ -225,13 +231,13 @@ int main( int argc, char *argv[] ) todo.ecdh = 1; else { - printf( "Unrecognized option: %s\n", argv[i] ); - printf( "Available options: " OPTIONS ); + polarssl_printf( "Unrecognized option: %s\n", argv[i] ); + polarssl_printf( "Available options: " OPTIONS ); } } } - printf( "\n" ); + polarssl_printf( "\n" ); memset( buf, 0xAA, sizeof( buf ) ); memset( tmp, 0xBB, sizeof( tmp ) ); @@ -631,10 +637,10 @@ int main( int argc, char *argv[] ) } } #endif - printf( "\n" ); + polarssl_printf( "\n" ); #if defined(_WIN32) - printf( " Press Enter to exit this program.\n" ); + polarssl_printf( " Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/test/o_p_test.c b/programs/test/o_p_test.c index 7f0f00b7e..ce1e522b7 100644 --- a/programs/test/o_p_test.c +++ b/programs/test/o_p_test.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include #include @@ -51,7 +57,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " "POLARSSL_PK_PARSE_C and/or POLARSSL_FS_IO not defined.\n"); return( 0 ); } @@ -82,7 +88,7 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } ERR_load_crypto_strings(); @@ -91,38 +97,38 @@ int main( int argc, char *argv[] ) if( argc != 3 ) { - printf( "usage: o_p_test \n" ); + polarssl_printf( "usage: o_p_test \n" ); #ifdef WIN32 - printf( "\n" ); + polarssl_printf( "\n" ); #endif goto exit; } - printf( " . Reading private key from %s into mbed TLS ...", argv[1] ); + polarssl_printf( " . Reading private key from %s into mbed TLS ...", argv[1] ); fflush( stdout ); pk_init( &p_pk ); if( pk_parse_keyfile( &p_pk, argv[1], NULL ) != 0 ) { ret = 1; - printf( " failed\n ! Could not load key.\n\n" ); + polarssl_printf( " failed\n ! Could not load key.\n\n" ); goto exit; } if( !pk_can_do( &p_pk, POLARSSL_PK_RSA ) ) { ret = 1; - printf( " failed\n ! Key is not an RSA key\n" ); + polarssl_printf( " failed\n ! Key is not an RSA key\n" ); goto exit; } p_rsa = pk_rsa( p_pk ); - printf( " passed\n"); + polarssl_printf( " passed\n"); - printf( " . Reading private key from %s into OpenSSL ...", argv[1] ); + polarssl_printf( " . Reading private key from %s into OpenSSL ...", argv[1] ); fflush( stdout ); key_file = fopen( argv[1], "r" ); @@ -131,16 +137,16 @@ int main( int argc, char *argv[] ) if( o_rsa == NULL ) { ret = 1; - printf( " failed\n ! Could not load key.\n\n" ); + polarssl_printf( " failed\n ! Could not load key.\n\n" ); goto exit; } - printf( " passed\n"); - printf( "\n" ); + polarssl_printf( " passed\n"); + polarssl_printf( "\n" ); if( strlen( argv[1] ) > 100 ) { - printf( " Input data larger than 100 characters.\n\n" ); + polarssl_printf( " Input data larger than 100 characters.\n\n" ); goto exit; } @@ -149,117 +155,117 @@ int main( int argc, char *argv[] ) /* * Calculate the RSA encryption with public key. */ - printf( " . Generating the RSA encrypted value with mbed TLS (RSA_PUBLIC) ..." ); + polarssl_printf( " . Generating the RSA encrypted value with mbed TLS (RSA_PUBLIC) ..." ); fflush( stdout ); if( ( ret = rsa_pkcs1_encrypt( p_rsa, ctr_drbg_random, &ctr_drbg, RSA_PUBLIC, strlen( argv[2] ), input, p_pub_encrypted ) ) != 0 ) { - printf( " failed\n ! rsa_pkcs1_encrypt returned %d\n\n", ret ); + polarssl_printf( " failed\n ! rsa_pkcs1_encrypt returned %d\n\n", ret ); goto exit; } else - printf( " passed\n"); + polarssl_printf( " passed\n"); - printf( " . Generating the RSA encrypted value with OpenSSL (PUBLIC) ..." ); + polarssl_printf( " . Generating the RSA encrypted value with OpenSSL (PUBLIC) ..." ); fflush( stdout ); if( ( ret = RSA_public_encrypt( strlen( argv[2] ), input, o_pub_encrypted, o_rsa, RSA_PKCS1_PADDING ) ) == -1 ) { unsigned long code = ERR_get_error(); - printf( " failed\n ! RSA_public_encrypt returned %d %s\n\n", ret, ERR_error_string( code, NULL ) ); + polarssl_printf( " failed\n ! RSA_public_encrypt returned %d %s\n\n", ret, ERR_error_string( code, NULL ) ); goto exit; } else - printf( " passed\n"); + polarssl_printf( " passed\n"); /* * Calculate the RSA encryption with private key. */ - printf( " . Generating the RSA encrypted value with mbed TLS (RSA_PRIVATE) ..." ); + polarssl_printf( " . Generating the RSA encrypted value with mbed TLS (RSA_PRIVATE) ..." ); fflush( stdout ); if( ( ret = rsa_pkcs1_encrypt( p_rsa, ctr_drbg_random, &ctr_drbg, RSA_PRIVATE, strlen( argv[2] ), input, p_priv_encrypted ) ) != 0 ) { - printf( " failed\n ! rsa_pkcs1_encrypt returned %d\n\n", ret ); + polarssl_printf( " failed\n ! rsa_pkcs1_encrypt returned %d\n\n", ret ); goto exit; } else - printf( " passed\n"); + polarssl_printf( " passed\n"); - printf( " . Generating the RSA encrypted value with OpenSSL (PRIVATE) ..." ); + polarssl_printf( " . Generating the RSA encrypted value with OpenSSL (PRIVATE) ..." ); fflush( stdout ); if( ( ret = RSA_private_encrypt( strlen( argv[2] ), input, o_priv_encrypted, o_rsa, RSA_PKCS1_PADDING ) ) == -1 ) { unsigned long code = ERR_get_error(); - printf( " failed\n ! RSA_private_encrypt returned %d %s\n\n", ret, ERR_error_string( code, NULL ) ); + polarssl_printf( " failed\n ! RSA_private_encrypt returned %d %s\n\n", ret, ERR_error_string( code, NULL ) ); goto exit; } else - printf( " passed\n"); + polarssl_printf( " passed\n"); - printf( "\n" ); + polarssl_printf( "\n" ); /* * Calculate the RSA decryption with private key. */ - printf( " . Generating the RSA decrypted value for OpenSSL (PUBLIC) with mbed TLS (PRIVATE) ..." ); + polarssl_printf( " . Generating the RSA decrypted value for OpenSSL (PUBLIC) with mbed TLS (PRIVATE) ..." ); fflush( stdout ); if( ( ret = rsa_pkcs1_decrypt( p_rsa, ctr_drbg_random, &ctr_drbg, RSA_PRIVATE, &olen, o_pub_encrypted, p_pub_decrypted, 1024 ) ) != 0 ) { - printf( " failed\n ! rsa_pkcs1_decrypt returned %d\n\n", ret ); + polarssl_printf( " failed\n ! rsa_pkcs1_decrypt returned %d\n\n", ret ); } else - printf( " passed\n"); + polarssl_printf( " passed\n"); - printf( " . Generating the RSA decrypted value for mbed TLS (PUBLIC) with OpenSSL (PRIVATE) ..." ); + polarssl_printf( " . Generating the RSA decrypted value for mbed TLS (PUBLIC) with OpenSSL (PRIVATE) ..." ); fflush( stdout ); if( ( ret = RSA_private_decrypt( p_rsa->len, p_pub_encrypted, o_pub_decrypted, o_rsa, RSA_PKCS1_PADDING ) ) == -1 ) { unsigned long code = ERR_get_error(); - printf( " failed\n ! RSA_private_decrypt returned %d %s\n\n", ret, ERR_error_string( code, NULL ) ); + polarssl_printf( " failed\n ! RSA_private_decrypt returned %d %s\n\n", ret, ERR_error_string( code, NULL ) ); } else - printf( " passed\n"); + polarssl_printf( " passed\n"); /* * Calculate the RSA decryption with public key. */ - printf( " . Generating the RSA decrypted value for OpenSSL (PRIVATE) with mbed TLS (PUBLIC) ..." ); + polarssl_printf( " . Generating the RSA decrypted value for OpenSSL (PRIVATE) with mbed TLS (PUBLIC) ..." ); fflush( stdout ); if( ( ret = rsa_pkcs1_decrypt( p_rsa, NULL, NULL, RSA_PUBLIC, &olen, o_priv_encrypted, p_priv_decrypted, 1024 ) ) != 0 ) { - printf( " failed\n ! rsa_pkcs1_decrypt returned %d\n\n", ret ); + polarssl_printf( " failed\n ! rsa_pkcs1_decrypt returned %d\n\n", ret ); } else - printf( " passed\n"); + polarssl_printf( " passed\n"); - printf( " . Generating the RSA decrypted value for mbed TLS (PRIVATE) with OpenSSL (PUBLIC) ..." ); + polarssl_printf( " . Generating the RSA decrypted value for mbed TLS (PRIVATE) with OpenSSL (PUBLIC) ..." ); fflush( stdout ); if( ( ret = RSA_public_decrypt( p_rsa->len, p_priv_encrypted, o_priv_decrypted, o_rsa, RSA_PKCS1_PADDING ) ) == -1 ) { unsigned long code = ERR_get_error(); - printf( " failed\n ! RSA_public_decrypt returned %d %s\n\n", ret, ERR_error_string( code, NULL ) ); + polarssl_printf( " failed\n ! RSA_public_decrypt returned %d %s\n\n", ret, ERR_error_string( code, NULL ) ); } else - printf( " passed\n"); + polarssl_printf( " passed\n"); - printf( "\n" ); - printf( "String value (OpenSSL Public Encrypt, mbed TLS Private Decrypt): '%s'\n", p_pub_decrypted ); - printf( "String value (mbed TLS Public Encrypt, OpenSSL Private Decrypt): '%s'\n", o_pub_decrypted ); - printf( "String value (OpenSSL Private Encrypt, mbed TLS Public Decrypt): '%s'\n", p_priv_decrypted ); - printf( "String value (mbed TLS Private Encrypt, OpenSSL Public Decrypt): '%s'\n", o_priv_decrypted ); + polarssl_printf( "\n" ); + polarssl_printf( "String value (OpenSSL Public Encrypt, mbed TLS Private Decrypt): '%s'\n", p_pub_decrypted ); + polarssl_printf( "String value (mbed TLS Public Encrypt, OpenSSL Private Decrypt): '%s'\n", o_pub_decrypted ); + polarssl_printf( "String value (OpenSSL Private Encrypt, mbed TLS Public Decrypt): '%s'\n", p_priv_decrypted ); + polarssl_printf( "String value (mbed TLS Private Encrypt, OpenSSL Public Decrypt): '%s'\n", o_priv_decrypted ); exit: ctr_drbg_free( &ctr_drbg ); entropy_free( &entropy ); #ifdef WIN32 - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/test/selftest.c b/programs/test/selftest.c index 15a63d004..301d6c322 100644 --- a/programs/test/selftest.c +++ b/programs/test/selftest.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include @@ -72,7 +78,7 @@ int main( int argc, char *argv[] ) else { v = 1; - printf( "\n" ); + polarssl_printf( "\n" ); } #if defined(POLARSSL_SELF_TEST) @@ -215,7 +221,7 @@ int main( int argc, char *argv[] ) #endif #else - printf( " POLARSSL_SELF_TEST not defined.\n" ); + polarssl_printf( " POLARSSL_SELF_TEST not defined.\n" ); #endif if( v != 0 ) @@ -234,9 +240,9 @@ int main( int argc, char *argv[] ) if( v != 0 ) { - printf( " [ All tests passed ]\n\n" ); + polarssl_printf( " [ All tests passed ]\n\n" ); #if defined(_WIN32) - printf( " Press Enter to exit this program.\n" ); + polarssl_printf( " Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif } diff --git a/programs/test/ssl_cert_test.c b/programs/test/ssl_cert_test.c index c41b1be9b..c55090a97 100644 --- a/programs/test/ssl_cert_test.c +++ b/programs/test/ssl_cert_test.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include @@ -36,7 +42,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_RSA_C and/or POLARSSL_X509_CRT_PARSE_C " + polarssl_printf("POLARSSL_RSA_C and/or POLARSSL_X509_CRT_PARSE_C " "POLARSSL_FS_IO and/or POLARSSL_X509_CRL_PARSE_C " "not defined.\n"); return( 0 ); @@ -93,7 +99,7 @@ int main( int argc, char *argv[] ) /* * 1.1. Load the trusted CA */ - printf( "\n . Loading the CA root certificate ..." ); + polarssl_printf( "\n . Loading the CA root certificate ..." ); fflush( stdout ); /* @@ -103,32 +109,32 @@ int main( int argc, char *argv[] ) ret = x509_crt_parse_file( &cacert, "ssl/test-ca/test-ca.crt" ); if( ret != 0 ) { - printf( " failed\n ! x509_crt_parse_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_parse_file returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); x509_crt_info( buf, 1024, "CRT: ", &cacert ); - printf("%s\n", buf ); + polarssl_printf("%s\n", buf ); /* * 1.2. Load the CRL */ - printf( " . Loading the CRL ..." ); + polarssl_printf( " . Loading the CRL ..." ); fflush( stdout ); ret = x509_crl_parse_file( &crl, "ssl/test-ca/crl.pem" ); if( ret != 0 ) { - printf( " failed\n ! x509_crl_parse_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crl_parse_file returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); x509_crl_info( buf, 1024, "CRL: ", &crl ); - printf("%s\n", buf ); + polarssl_printf("%s\n", buf ); for( i = 0; i < MAX_CLIENT_CERTS; i++ ) { @@ -145,22 +151,22 @@ int main( int argc, char *argv[] ) snprintf(name, 512, "ssl/test-ca/%s", client_certificates[i]); - printf( " . Loading the client certificate %s...", name ); + polarssl_printf( " . Loading the client certificate %s...", name ); fflush( stdout ); ret = x509_crt_parse_file( &clicert, name ); if( ret != 0 ) { - printf( " failed\n ! x509_crt_parse_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_parse_file returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.4. Verify certificate validity with CA certificate */ - printf( " . Verify the client certificate with CA certificate..." ); + polarssl_printf( " . Verify the client certificate with CA certificate..." ); fflush( stdout ); ret = x509_crt_verify( &clicert, &cacert, &crl, NULL, &flags, NULL, @@ -170,53 +176,53 @@ int main( int argc, char *argv[] ) if( ret == POLARSSL_ERR_X509_CERT_VERIFY_FAILED ) { if( flags & BADCERT_CN_MISMATCH ) - printf( " CN_MISMATCH " ); + polarssl_printf( " CN_MISMATCH " ); if( flags & BADCERT_EXPIRED ) - printf( " EXPIRED " ); + polarssl_printf( " EXPIRED " ); if( flags & BADCERT_REVOKED ) - printf( " REVOKED " ); + polarssl_printf( " REVOKED " ); if( flags & BADCERT_NOT_TRUSTED ) - printf( " NOT_TRUSTED " ); + polarssl_printf( " NOT_TRUSTED " ); if( flags & BADCRL_NOT_TRUSTED ) - printf( " CRL_NOT_TRUSTED " ); + polarssl_printf( " CRL_NOT_TRUSTED " ); if( flags & BADCRL_EXPIRED ) - printf( " CRL_EXPIRED " ); + polarssl_printf( " CRL_EXPIRED " ); } else { - printf( " failed\n ! x509_crt_verify returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_verify returned %d\n\n", ret ); goto exit; } } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.5. Load own private key */ snprintf(name, 512, "ssl/test-ca/%s", client_private_keys[i]); - printf( " . Loading the client private key %s...", name ); + polarssl_printf( " . Loading the client private key %s...", name ); fflush( stdout ); ret = pk_parse_keyfile( &pk, name, NULL ); if( ret != 0 ) { - printf( " failed\n ! pk_parse_keyfile returned %d\n\n", ret ); + polarssl_printf( " failed\n ! pk_parse_keyfile returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.6. Verify certificate validity with private key */ - printf( " . Verify the client certificate with private key..." ); + polarssl_printf( " . Verify the client certificate with private key..." ); fflush( stdout ); /* EC NOT IMPLEMENTED YET */ if( ! pk_can_do( &clicert.pk, POLARSSL_PK_RSA ) ) { - printf( " failed\n ! certificate's key is not RSA\n\n" ); + polarssl_printf( " failed\n ! certificate's key is not RSA\n\n" ); ret = POLARSSL_ERR_X509_FEATURE_UNAVAILABLE; goto exit; } @@ -224,25 +230,25 @@ int main( int argc, char *argv[] ) ret = mpi_cmp_mpi(&pk_rsa( pk )->N, &pk_rsa( clicert.pk )->N); if( ret != 0 ) { - printf( " failed\n ! mpi_cmp_mpi for N returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_cmp_mpi for N returned %d\n\n", ret ); goto exit; } ret = mpi_cmp_mpi(&pk_rsa( pk )->E, &pk_rsa( clicert.pk )->E); if( ret != 0 ) { - printf( " failed\n ! mpi_cmp_mpi for E returned %d\n\n", ret ); + polarssl_printf( " failed\n ! mpi_cmp_mpi for E returned %d\n\n", ret ); goto exit; } ret = rsa_check_privkey( pk_rsa( pk ) ); if( ret != 0 ) { - printf( " failed\n ! rsa_check_privkey returned %d\n\n", ret ); + polarssl_printf( " failed\n ! rsa_check_privkey returned %d\n\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); x509_crt_free( &clicert ); pk_free( &pk ); @@ -253,7 +259,7 @@ exit: x509_crl_free( &crl ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/test/ssl_test.c b/programs/test/ssl_test.c index 3b2e2d7c1..7f58e3dd5 100644 --- a/programs/test/ssl_test.c +++ b/programs/test/ssl_test.c @@ -26,6 +26,15 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#define polarssl_malloc malloc +#define polarssl_free free +#endif + #include #include #include @@ -49,7 +58,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " "POLARSSL_SSL_TLS_C and/or POLARSSL_SSL_SRV_C and/or " "POLARSSL_SSL_CLI_C and/or POLARSSL_NET_C and/or " "POLARSSL_RSA_C and/or POLARSSL_CTR_DRBG_C and/or " @@ -131,7 +140,7 @@ static unsigned long int lcppm5( unsigned long int *state ) static void my_debug( void *ctx, int level, const char *str ) { if( level < ((struct options *) ctx)->debug_level ) - fprintf( stderr, "%s", str ); + polarssl_fprintf( stderr, "%s", str ); } /* @@ -175,7 +184,7 @@ static int ssl_test( struct options *opt ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " ! ctr_drbg_init returned %d\n", ret ); goto exit; } @@ -192,13 +201,13 @@ static int ssl_test( struct options *opt ) if( ( ret = net_connect( &client_fd, opt->server_name, opt->server_port ) ) != 0 ) { - printf( " ! net_connect returned %d\n\n", ret ); + polarssl_printf( " ! net_connect returned %d\n\n", ret ); return( ret ); } if( ( ret = ssl_init( &ssl ) ) != 0 ) { - printf( " ! ssl_init returned %d\n\n", ret ); + polarssl_printf( " ! ssl_init returned %d\n\n", ret ); goto exit; } @@ -208,14 +217,14 @@ static int ssl_test( struct options *opt ) if( opt->opmode == OPMODE_SERVER ) { #if !defined(POLARSSL_CERTS_C) - printf("POLARSSL_CERTS_C not defined.\n"); + polarssl_printf("POLARSSL_CERTS_C not defined.\n"); goto exit; #else ret = x509_crt_parse( &srvcert, (const unsigned char *) test_srv_crt, strlen( test_srv_crt ) ); if( ret != 0 ) { - printf( " ! x509_crt_parse returned %d\n\n", ret ); + polarssl_printf( " ! x509_crt_parse returned %d\n\n", ret ); goto exit; } @@ -223,7 +232,7 @@ static int ssl_test( struct options *opt ) strlen( test_ca_list ) ); if( ret != 0 ) { - printf( " ! x509_crt_parse returned %d\n\n", ret ); + polarssl_printf( " ! x509_crt_parse returned %d\n\n", ret ); goto exit; } @@ -231,7 +240,7 @@ static int ssl_test( struct options *opt ) strlen( test_srv_key ), NULL, 0 ); if( ret != 0 ) { - printf( " ! pk_parse_key returned %d\n\n", ret ); + polarssl_printf( " ! pk_parse_key returned %d\n\n", ret ); goto exit; } #endif @@ -241,20 +250,20 @@ static int ssl_test( struct options *opt ) if( ( ret = net_bind( &server_fd, NULL, opt->server_port ) ) != 0 ) { - printf( " ! net_bind returned %d\n\n", ret ); + polarssl_printf( " ! net_bind returned %d\n\n", ret ); return( ret ); } } if( ( ret = net_accept( server_fd, &client_fd, NULL ) ) != 0 ) { - printf( " ! net_accept returned %d\n\n", ret ); + polarssl_printf( " ! net_accept returned %d\n\n", ret ); return( ret ); } if( ( ret = ssl_init( &ssl ) ) != 0 ) { - printf( " ! ssl_init returned %d\n\n", ret ); + polarssl_printf( " ! ssl_init returned %d\n\n", ret ); return( ret ); } @@ -262,7 +271,7 @@ static int ssl_test( struct options *opt ) ssl_set_ca_chain( &ssl, srvcert.next, NULL, NULL ); if( ( ret = ssl_set_own_cert( &ssl, &srvcert, &pkey ) ) != 0 ) { - printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); goto exit; } } @@ -281,17 +290,17 @@ static int ssl_test( struct options *opt ) { if( ( ret = net_set_nonblock( client_fd ) ) != 0 ) { - printf( " ! net_set_nonblock returned %d\n\n", ret ); + polarssl_printf( " ! net_set_nonblock returned %d\n\n", ret ); return( ret ); } } - read_buf = (unsigned char *) malloc( opt->buffer_size ); - write_buf = (unsigned char *) malloc( opt->buffer_size ); + read_buf = (unsigned char *) polarssl_malloc( opt->buffer_size ); + write_buf = (unsigned char *) polarssl_malloc( opt->buffer_size ); if( read_buf == NULL || write_buf == NULL ) { - printf( " ! malloc(%d bytes) failed\n\n", opt->buffer_size ); + polarssl_printf( " ! polarssl_malloc(%d bytes) failed\n\n", opt->buffer_size ); goto exit; } @@ -333,7 +342,7 @@ static int ssl_test( struct options *opt ) if( ret < 0 && ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " ! ssl_write returned %d\n\n", ret ); + polarssl_printf( " ! ssl_write returned %d\n\n", ret ); break; } } @@ -357,7 +366,7 @@ static int ssl_test( struct options *opt ) (unsigned char) lcppm5( read_state ) ) { ret = 1; - printf( " ! plaintext mismatch\n\n" ); + polarssl_printf( " ! plaintext mismatch\n\n" ); goto exit; } } @@ -379,7 +388,7 @@ static int ssl_test( struct options *opt ) if( ret < 0 && ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " ! ssl_read returned %d\n\n", ret ); + polarssl_printf( " ! ssl_read returned %d\n\n", ret ); break; } } @@ -458,15 +467,15 @@ int main( int argc, char *argv[] ) if( argc == 1 ) { usage: - printf( USAGE ); + polarssl_printf( USAGE ); list = ssl_list_ciphersuites(); while( *list ) { - printf(" %s\n", ssl_get_ciphersuite_name( *list ) ); + polarssl_printf(" %s\n", ssl_get_ciphersuite_name( *list ) ); list++; } - printf("\n"); + polarssl_printf("\n"); goto exit; } @@ -611,7 +620,7 @@ int main( int argc, char *argv[] ) exit: #if defined(_WIN32) - printf( " Press Enter to exit this program.\n" ); + polarssl_printf( " Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/util/pem2der.c b/programs/util/pem2der.c index 1ba478b32..dcd3547f4 100644 --- a/programs/util/pem2der.c +++ b/programs/util/pem2der.c @@ -26,6 +26,14 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_malloc malloc +#define polarssl_free free +#endif + #include #include #include @@ -42,7 +50,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BASE64_C and/or POLARSSL_FS_IO not defined.\n"); + polarssl_printf("POLARSSL_BASE64_C and/or POLARSSL_FS_IO not defined.\n"); return( 0 ); } #else @@ -121,7 +129,7 @@ static int load_file( const char *path, unsigned char **buf, size_t *n ) *n = (size_t) size; if( *n + 1 == 0 || - ( *buf = (unsigned char *) malloc( *n + 1 ) ) == NULL ) + ( *buf = (unsigned char *) polarssl_malloc( *n + 1 ) ) == NULL ) { fclose( f ); return( -1 ); @@ -188,7 +196,7 @@ int main( int argc, char *argv[] ) if( argc == 0 ) { usage: - printf( USAGE ); + polarssl_printf( USAGE ); goto exit; } @@ -214,7 +222,7 @@ int main( int argc, char *argv[] ) /* * 1.1. Load the PEM file */ - printf( "\n . Loading the PEM file ..." ); + polarssl_printf( "\n . Loading the PEM file ..." ); fflush( stdout ); ret = load_file( opt.filename, &pem_buffer, &pem_size ); @@ -224,16 +232,16 @@ int main( int argc, char *argv[] ) #ifdef POLARSSL_ERROR_C polarssl_strerror( ret, buf, 1024 ); #endif - printf( " failed\n ! load_file returned %d - %s\n\n", ret, buf ); + polarssl_printf( " failed\n ! load_file returned %d - %s\n\n", ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.2. Convert from PEM to DER */ - printf( " . Converting from PEM to DER ..." ); + polarssl_printf( " . Converting from PEM to DER ..." ); fflush( stdout ); if( ( ret = convert_pem_to_der( pem_buffer, pem_size, der_buffer, &der_size ) ) != 0 ) @@ -241,16 +249,16 @@ int main( int argc, char *argv[] ) #ifdef POLARSSL_ERROR_C polarssl_strerror( ret, buf, 1024 ); #endif - printf( " failed\n ! convert_pem_to_der %d - %s\n\n", ret, buf ); + polarssl_printf( " failed\n ! convert_pem_to_der %d - %s\n\n", ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.3. Write the DER file */ - printf( " . Writing the DER file ..." ); + polarssl_printf( " . Writing the DER file ..." ); fflush( stdout ); ret = write_file( opt.output_file, der_buffer, der_size ); @@ -260,17 +268,17 @@ int main( int argc, char *argv[] ) #ifdef POLARSSL_ERROR_C polarssl_strerror( ret, buf, 1024 ); #endif - printf( " failed\n ! write_file returned %d - %s\n\n", ret, buf ); + polarssl_printf( " failed\n ! write_file returned %d - %s\n\n", ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); exit: free( pem_buffer ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/util/strerror.c b/programs/util/strerror.c index 79eec1828..b751ca066 100644 --- a/programs/util/strerror.c +++ b/programs/util/strerror.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include #include @@ -42,7 +48,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_ERROR_C and/or POLARSSL_ERROR_STRERROR_DUMMY not defined.\n"); + polarssl_printf("POLARSSL_ERROR_C and/or POLARSSL_ERROR_STRERROR_DUMMY not defined.\n"); return( 0 ); } #else @@ -53,7 +59,7 @@ int main( int argc, char *argv[] ) if( argc != 2 ) { - printf( USAGE ); + polarssl_printf( USAGE ); return( 0 ); } @@ -63,7 +69,7 @@ int main( int argc, char *argv[] ) val = strtol( argv[1], &end, 16 ); if( *end != '\0' ) { - printf( USAGE ); + polarssl_printf( USAGE ); return( 0 ); } } @@ -74,11 +80,11 @@ int main( int argc, char *argv[] ) { char error_buf[200]; polarssl_strerror( val, error_buf, 200 ); - printf("Last error was: -0x%04x - %s\n\n", (int) -val, error_buf ); + polarssl_printf("Last error was: -0x%04x - %s\n\n", (int) -val, error_buf ); } #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/x509/cert_app.c b/programs/x509/cert_app.c index 7ec9893a5..b7f5950ad 100644 --- a/programs/x509/cert_app.c +++ b/programs/x509/cert_app.c @@ -26,6 +26,13 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#define polarssl_fprintf fprintf +#endif + #include #include #include @@ -46,7 +53,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_ENTROPY_C and/or " "POLARSSL_SSL_TLS_C and/or POLARSSL_SSL_CLI_C and/or " "POLARSSL_NET_C and/or POLARSSL_RSA_C and/or " "POLARSSL_X509_CRT_PARSE_C and/or POLARSSL_FS_IO and/or " @@ -89,7 +96,7 @@ static void my_debug( void *ctx, int level, const char *str ) { if( level < opt.debug_level ) { - fprintf( (FILE *) ctx, "%s", str ); + polarssl_fprintf( (FILE *) ctx, "%s", str ); fflush( (FILE *) ctx ); } } @@ -99,33 +106,33 @@ static int my_verify( void *data, x509_crt *crt, int depth, int *flags ) char buf[1024]; ((void) data); - printf( "\nVerify requested for (Depth %d):\n", depth ); + polarssl_printf( "\nVerify requested for (Depth %d):\n", depth ); x509_crt_info( buf, sizeof( buf ) - 1, "", crt ); - printf( "%s", buf ); + polarssl_printf( "%s", buf ); if( ( (*flags) & BADCERT_EXPIRED ) != 0 ) - printf( " ! server certificate has expired\n" ); + polarssl_printf( " ! server certificate has expired\n" ); if( ( (*flags) & BADCERT_REVOKED ) != 0 ) - printf( " ! server certificate has been revoked\n" ); + polarssl_printf( " ! server certificate has been revoked\n" ); if( ( (*flags) & BADCERT_CN_MISMATCH ) != 0 ) - printf( " ! CN mismatch\n" ); + polarssl_printf( " ! CN mismatch\n" ); if( ( (*flags) & BADCERT_NOT_TRUSTED ) != 0 ) - printf( " ! self-signed or not signed by a trusted CA\n" ); + polarssl_printf( " ! self-signed or not signed by a trusted CA\n" ); if( ( (*flags) & BADCRL_NOT_TRUSTED ) != 0 ) - printf( " ! CRL not trusted\n" ); + polarssl_printf( " ! CRL not trusted\n" ); if( ( (*flags) & BADCRL_EXPIRED ) != 0 ) - printf( " ! CRL expired\n" ); + polarssl_printf( " ! CRL expired\n" ); if( ( (*flags) & BADCERT_OTHER ) != 0 ) - printf( " ! other (unknown) flag\n" ); + polarssl_printf( " ! other (unknown) flag\n" ); if ( ( *flags ) == 0 ) - printf( " This certificate has no flags\n" ); + polarssl_printf( " This certificate has no flags\n" ); return( 0 ); } @@ -184,7 +191,7 @@ int main( int argc, char *argv[] ) if( argc == 0 ) { usage: - printf( USAGE ); + polarssl_printf( USAGE ); ret = 2; goto exit; } @@ -256,7 +263,7 @@ int main( int argc, char *argv[] ) /* * 1.1. Load the trusted CA */ - printf( " . Loading the CA root certificate ..." ); + polarssl_printf( " . Loading the CA root certificate ..." ); fflush( stdout ); if( strlen( opt.ca_path ) ) @@ -272,18 +279,18 @@ int main( int argc, char *argv[] ) if( ret < 0 ) { - printf( " failed\n ! x509_crt_parse returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! x509_crt_parse returned -0x%x\n\n", -ret ); goto exit; } - printf( " ok (%d skipped)\n", ret ); + polarssl_printf( " ok (%d skipped)\n", ret ); #if defined(POLARSSL_X509_CRL_PARSE_C) if( strlen( opt.crl_file ) ) { if( ( ret = x509_crl_parse_file( &cacrl, opt.crl_file ) ) != 0 ) { - printf( " failed\n ! x509_crl_parse returned -0x%x\n\n", -ret ); + polarssl_printf( " failed\n ! x509_crl_parse returned -0x%x\n\n", -ret ); goto exit; } @@ -300,43 +307,43 @@ int main( int argc, char *argv[] ) /* * 1.1. Load the certificate(s) */ - printf( "\n . Loading the certificate(s) ..." ); + polarssl_printf( "\n . Loading the certificate(s) ..." ); fflush( stdout ); ret = x509_crt_parse_file( &crt, opt.filename ); if( ret < 0 ) { - printf( " failed\n ! x509_crt_parse_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_parse_file returned %d\n\n", ret ); x509_crt_free( &crt ); goto exit; } if( opt.permissive == 0 && ret > 0 ) { - printf( " failed\n ! x509_crt_parse failed to parse %d certificates\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_parse failed to parse %d certificates\n\n", ret ); x509_crt_free( &crt ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.2 Print the certificate(s) */ while( cur != NULL ) { - printf( " . Peer certificate information ...\n" ); + polarssl_printf( " . Peer certificate information ...\n" ); ret = x509_crt_info( (char *) buf, sizeof( buf ) - 1, " ", cur ); if( ret == -1 ) { - printf( " failed\n ! x509_crt_info returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_info returned %d\n\n", ret ); x509_crt_free( &crt ); goto exit; } - printf( "%s\n", buf ); + polarssl_printf( "%s\n", buf ); cur = cur->next; } @@ -346,29 +353,29 @@ int main( int argc, char *argv[] ) */ if( verify ) { - printf( " . Verifying X.509 certificate..." ); + polarssl_printf( " . Verifying X.509 certificate..." ); if( ( ret = x509_crt_verify( &crt, &cacert, &cacrl, NULL, &flags, my_verify, NULL ) ) != 0 ) { - printf( " failed\n" ); + polarssl_printf( " failed\n" ); if( ( ret & BADCERT_EXPIRED ) != 0 ) - printf( " ! server certificate has expired\n" ); + polarssl_printf( " ! server certificate has expired\n" ); if( ( ret & BADCERT_REVOKED ) != 0 ) - printf( " ! server certificate has been revoked\n" ); + polarssl_printf( " ! server certificate has been revoked\n" ); if( ( ret & BADCERT_CN_MISMATCH ) != 0 ) - printf( " ! CN mismatch (expected CN=%s)\n", opt.server_name ); + polarssl_printf( " ! CN mismatch (expected CN=%s)\n", opt.server_name ); if( ( ret & BADCERT_NOT_TRUSTED ) != 0 ) - printf( " ! self-signed or not signed by a trusted CA\n" ); + polarssl_printf( " ! self-signed or not signed by a trusted CA\n" ); - printf( "\n" ); + polarssl_printf( "\n" ); } else - printf( " ok\n" ); + polarssl_printf( " ok\n" ); } x509_crt_free( &crt ); @@ -378,7 +385,7 @@ int main( int argc, char *argv[] ) /* * 1. Initialize the RNG and the session data */ - printf( "\n . Seeding the random number generator..." ); + polarssl_printf( "\n . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -386,23 +393,23 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d\n", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 2. Start the connection */ - printf( " . SSL connection to tcp/%s/%-4d...", opt.server_name, + polarssl_printf( " . SSL connection to tcp/%s/%-4d...", opt.server_name, opt.server_port ); fflush( stdout ); if( ( ret = net_connect( &server_fd, opt.server_name, opt.server_port ) ) != 0 ) { - printf( " failed\n ! net_connect returned %d\n\n", ret ); + polarssl_printf( " failed\n ! net_connect returned %d\n\n", ret ); goto exit; } @@ -411,7 +418,7 @@ int main( int argc, char *argv[] ) */ if( ( ret = ssl_init( &ssl ) ) != 0 ) { - printf( " failed\n ! ssl_init returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_init returned %d\n\n", ret ); goto exit; } @@ -432,14 +439,14 @@ int main( int argc, char *argv[] ) if( ( ret = ssl_set_own_cert( &ssl, &clicert, &pkey ) ) != 0 ) { - printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_own_cert returned %d\n\n", ret ); goto exit; } #if defined(POLARSSL_SSL_SERVER_NAME_INDICATION) if( ( ret = ssl_set_hostname( &ssl, opt.server_name ) ) != 0 ) { - printf( " failed\n ! ssl_set_hostname returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_set_hostname returned %d\n\n", ret ); goto exit; } #endif @@ -451,28 +458,28 @@ int main( int argc, char *argv[] ) { if( ret != POLARSSL_ERR_NET_WANT_READ && ret != POLARSSL_ERR_NET_WANT_WRITE ) { - printf( " failed\n ! ssl_handshake returned %d\n\n", ret ); + polarssl_printf( " failed\n ! ssl_handshake returned %d\n\n", ret ); ssl_free( &ssl ); goto exit; } } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 5. Print the certificate */ - printf( " . Peer certificate information ...\n" ); + polarssl_printf( " . Peer certificate information ...\n" ); ret = x509_crt_info( (char *) buf, sizeof( buf ) - 1, " ", ssl.session->peer_cert ); if( ret == -1 ) { - printf( " failed\n ! x509_crt_info returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crt_info returned %d\n\n", ret ); ssl_free( &ssl ); goto exit; } - printf( "%s\n", buf ); + polarssl_printf( "%s\n", buf ); ssl_close_notify( &ssl ); ssl_free( &ssl ); @@ -494,7 +501,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/x509/cert_req.c b/programs/x509/cert_req.c index 54f146205..41eaea1a4 100644 --- a/programs/x509/cert_req.c +++ b/programs/x509/cert_req.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include #include @@ -43,7 +49,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf( "POLARSSL_X509_CSR_WRITE_C and/or POLARSSL_FS_IO and/or " + polarssl_printf( "POLARSSL_X509_CSR_WRITE_C and/or POLARSSL_FS_IO and/or " "POLARSSL_PK_PARSE_C and/or " "POLARSSL_ENTROPY_C and/or POLARSSL_CTR_DRBG_C " "not defined.\n"); @@ -150,7 +156,7 @@ int main( int argc, char *argv[] ) if( argc == 0 ) { usage: - printf( USAGE ); + polarssl_printf( USAGE ); ret = 1; goto exit; } @@ -251,7 +257,7 @@ int main( int argc, char *argv[] ) /* * 0. Seed the PRNG */ - printf( " . Seeding the random number generator..." ); + polarssl_printf( " . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -259,58 +265,58 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - printf( " failed\n ! ctr_drbg_init returned %d", ret ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.0. Check the subject name for validity */ - printf( " . Checking subjet name..." ); + polarssl_printf( " . Checking subjet name..." ); fflush( stdout ); if( ( ret = x509write_csr_set_subject_name( &req, opt.subject_name ) ) != 0 ) { - printf( " failed\n ! x509write_csr_set_subject_name returned %d", ret ); + polarssl_printf( " failed\n ! x509write_csr_set_subject_name returned %d", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.1. Load the key */ - printf( " . Loading the private key ..." ); + polarssl_printf( " . Loading the private key ..." ); fflush( stdout ); ret = pk_parse_keyfile( &key, opt.filename, NULL ); if( ret != 0 ) { - printf( " failed\n ! pk_parse_keyfile returned %d", ret ); + polarssl_printf( " failed\n ! pk_parse_keyfile returned %d", ret ); goto exit; } x509write_csr_set_key( &req, &key ); - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.2. Writing the request */ - printf( " . Writing the certificate request ..." ); + polarssl_printf( " . Writing the certificate request ..." ); fflush( stdout ); if( ( ret = write_certificate_request( &req, opt.output_file, ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - printf( " failed\n ! write_certifcate_request %d", ret ); + polarssl_printf( " failed\n ! write_certifcate_request %d", ret ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); exit: @@ -318,9 +324,9 @@ exit: { #ifdef POLARSSL_ERROR_C polarssl_strerror( ret, buf, sizeof( buf ) ); - printf( " - %s\n", buf ); + polarssl_printf( " - %s\n", buf ); #else - printf("\n"); + polarssl_printf("\n"); #endif } @@ -330,7 +336,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 5c7dd8637..b402fb16e 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include #include @@ -39,7 +45,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf( "POLARSSL_X509_CRT_WRITE_C and/or POLARSSL_X509_CRT_PARSE_C and/or " + polarssl_printf( "POLARSSL_X509_CRT_WRITE_C and/or POLARSSL_X509_CRT_PARSE_C and/or " "POLARSSL_FS_IO and/or " "POLARSSL_ENTROPY_C and/or POLARSSL_CTR_DRBG_C and/or " "POLARSSL_ERROR_C not defined.\n"); @@ -216,7 +222,7 @@ int main( int argc, char *argv[] ) if( argc == 0 ) { usage: - printf( USAGE ); + polarssl_printf( USAGE ); ret = 1; goto exit; } @@ -358,12 +364,12 @@ int main( int argc, char *argv[] ) goto usage; } - printf("\n"); + polarssl_printf("\n"); /* * 0. Seed the PRNG */ - printf( " . Seeding the random number generator..." ); + polarssl_printf( " . Seeding the random number generator..." ); fflush( stdout ); entropy_init( &entropy ); @@ -372,25 +378,25 @@ int main( int argc, char *argv[] ) strlen( pers ) ) ) != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! ctr_drbg_init returned %d - %s\n", ret, buf ); + polarssl_printf( " failed\n ! ctr_drbg_init returned %d - %s\n", ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); // Parse serial to MPI // - printf( " . Reading serial number..." ); + polarssl_printf( " . Reading serial number..." ); fflush( stdout ); if( ( ret = mpi_read_string( &serial, 10, opt.serial ) ) != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! mpi_read_string returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! mpi_read_string returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); // Parse issuer certificate if present // @@ -399,13 +405,13 @@ int main( int argc, char *argv[] ) /* * 1.0.a. Load the certificates */ - printf( " . Loading the issuer certificate ..." ); + polarssl_printf( " . Loading the issuer certificate ..." ); fflush( stdout ); if( ( ret = x509_crt_parse_file( &issuer_crt, opt.issuer_crt ) ) != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! x509_crt_parse_file returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! x509_crt_parse_file returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } @@ -414,13 +420,13 @@ int main( int argc, char *argv[] ) if( ret < 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! x509_dn_gets returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! x509_dn_gets returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } opt.issuer_name = issuer_name; - printf( " ok\n" ); + polarssl_printf( " ok\n" ); } #if defined(POLARSSL_X509_CSR_PARSE_C) @@ -431,13 +437,13 @@ int main( int argc, char *argv[] ) /* * 1.0.b. Load the CSR */ - printf( " . Loading the certificate request ..." ); + polarssl_printf( " . Loading the certificate request ..." ); fflush( stdout ); if( ( ret = x509_csr_parse_file( &csr, opt.request_file ) ) != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! x509_csr_parse_file returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! x509_csr_parse_file returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } @@ -446,14 +452,14 @@ int main( int argc, char *argv[] ) if( ret < 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! x509_dn_gets returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! x509_dn_gets returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } opt.subject_name = subject_name; subject_key = &csr.pk; - printf( " ok\n" ); + polarssl_printf( " ok\n" ); } #endif /* POLARSSL_X509_CSR_PARSE_C */ @@ -462,7 +468,7 @@ int main( int argc, char *argv[] ) */ if( !opt.selfsign && !strlen( opt.request_file ) ) { - printf( " . Loading the subject key ..." ); + polarssl_printf( " . Loading the subject key ..." ); fflush( stdout ); ret = pk_parse_keyfile( &loaded_subject_key, opt.subject_key, @@ -470,14 +476,14 @@ int main( int argc, char *argv[] ) if( ret != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! pk_parse_keyfile returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! pk_parse_keyfile returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); } - printf( " . Loading the issuer key ..." ); + polarssl_printf( " . Loading the issuer key ..." ); fflush( stdout ); ret = pk_parse_keyfile( &loaded_issuer_key, opt.issuer_key, @@ -485,7 +491,7 @@ int main( int argc, char *argv[] ) if( ret != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! pk_parse_keyfile returned -x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! pk_parse_keyfile returned -x%02x - %s\n\n", -ret, buf ); goto exit; } @@ -499,13 +505,13 @@ int main( int argc, char *argv[] ) mpi_cmp_mpi( &pk_rsa( issuer_crt.pk )->E, &pk_rsa( *issuer_key )->E ) != 0 ) { - printf( " failed\n ! issuer_key does not match issuer certificate\n\n" ); + polarssl_printf( " failed\n ! issuer_key does not match issuer certificate\n\n" ); ret = -1; goto exit; } } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); if( opt.selfsign ) { @@ -522,25 +528,25 @@ int main( int argc, char *argv[] ) if( ( ret = x509write_crt_set_subject_name( &crt, opt.subject_name ) ) != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! x509write_crt_set_subject_name returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! x509write_crt_set_subject_name returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } if( ( ret = x509write_crt_set_issuer_name( &crt, opt.issuer_name ) ) != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! x509write_crt_set_issuer_name returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! x509write_crt_set_issuer_name returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } - printf( " . Setting certificate values ..." ); + polarssl_printf( " . Setting certificate values ..." ); fflush( stdout ); ret = x509write_crt_set_serial( &crt, &serial ); if( ret != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! x509write_crt_set_serial returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! x509write_crt_set_serial returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } @@ -548,13 +554,13 @@ int main( int argc, char *argv[] ) if( ret != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! x509write_crt_set_validity returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! x509write_crt_set_validity returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); - printf( " . Adding the Basic Constraints extension ..." ); + polarssl_printf( " . Adding the Basic Constraints extension ..." ); fflush( stdout ); ret = x509write_crt_set_basic_constraints( &crt, opt.is_ca, @@ -562,87 +568,87 @@ int main( int argc, char *argv[] ) if( ret != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! x509write_crt_set_basic_contraints returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! x509write_crt_set_basic_contraints returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); #if defined(POLARSSL_SHA1_C) - printf( " . Adding the Subject Key Identifier ..." ); + polarssl_printf( " . Adding the Subject Key Identifier ..." ); fflush( stdout ); ret = x509write_crt_set_subject_key_identifier( &crt ); if( ret != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! x509write_crt_set_subject_key_identifier returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! x509write_crt_set_subject_key_identifier returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); - printf( " . Adding the Authority Key Identifier ..." ); + polarssl_printf( " . Adding the Authority Key Identifier ..." ); fflush( stdout ); ret = x509write_crt_set_authority_key_identifier( &crt ); if( ret != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! x509write_crt_set_authority_key_identifier returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! x509write_crt_set_authority_key_identifier returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); #endif /* POLARSSL_SHA1_C */ if( opt.key_usage ) { - printf( " . Adding the Key Usage extension ..." ); + polarssl_printf( " . Adding the Key Usage extension ..." ); fflush( stdout ); ret = x509write_crt_set_key_usage( &crt, opt.key_usage ); if( ret != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! x509write_crt_set_key_usage returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! x509write_crt_set_key_usage returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); } if( opt.ns_cert_type ) { - printf( " . Adding the NS Cert Type extension ..." ); + polarssl_printf( " . Adding the NS Cert Type extension ..." ); fflush( stdout ); ret = x509write_crt_set_ns_cert_type( &crt, opt.ns_cert_type ); if( ret != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! x509write_crt_set_ns_cert_type returned -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! x509write_crt_set_ns_cert_type returned -0x%02x - %s\n\n", -ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); } /* * 1.2. Writing the request */ - printf( " . Writing the certificate..." ); + polarssl_printf( " . Writing the certificate..." ); fflush( stdout ); if( ( ret = write_certificate( &crt, opt.output_file, ctr_drbg_random, &ctr_drbg ) ) != 0 ) { polarssl_strerror( ret, buf, 1024 ); - printf( " failed\n ! write_certifcate -0x%02x - %s\n\n", -ret, buf ); + polarssl_printf( " failed\n ! write_certifcate -0x%02x - %s\n\n", -ret, buf ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); exit: x509write_crt_free( &crt ); @@ -653,7 +659,7 @@ exit: entropy_free( &entropy ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/x509/crl_app.c b/programs/x509/crl_app.c index 4d914524b..8d10e3bd2 100644 --- a/programs/x509/crl_app.c +++ b/programs/x509/crl_app.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include #include @@ -39,7 +45,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " "POLARSSL_X509_CRL_PARSE_C and/or POLARSSL_FS_IO not defined.\n"); return( 0 ); } @@ -78,7 +84,7 @@ int main( int argc, char *argv[] ) if( argc == 0 ) { usage: - printf( USAGE ); + polarssl_printf( USAGE ); goto exit; } @@ -100,39 +106,39 @@ int main( int argc, char *argv[] ) /* * 1.1. Load the CRL */ - printf( "\n . Loading the CRL ..." ); + polarssl_printf( "\n . Loading the CRL ..." ); fflush( stdout ); ret = x509_crl_parse_file( &crl, opt.filename ); if( ret != 0 ) { - printf( " failed\n ! x509_crl_parse_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crl_parse_file returned %d\n\n", ret ); x509_crl_free( &crl ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.2 Print the CRL */ - printf( " . CRL information ...\n" ); + polarssl_printf( " . CRL information ...\n" ); ret = x509_crl_info( (char *) buf, sizeof( buf ) - 1, " ", &crl ); if( ret == -1 ) { - printf( " failed\n ! x509_crl_info returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_crl_info returned %d\n\n", ret ); x509_crl_free( &crl ); goto exit; } - printf( "%s\n", buf ); + polarssl_printf( "%s\n", buf ); exit: x509_crl_free( &crl ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/programs/x509/req_app.c b/programs/x509/req_app.c index ced2d3ecc..bf9610af2 100644 --- a/programs/x509/req_app.c +++ b/programs/x509/req_app.c @@ -26,6 +26,12 @@ #include POLARSSL_CONFIG_FILE #endif +#if defined(POLARSSL_PLATFORM_C) +#include "polarssl/platform.h" +#else +#define polarssl_printf printf +#endif + #include #include #include @@ -39,7 +45,7 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " + polarssl_printf("POLARSSL_BIGNUM_C and/or POLARSSL_RSA_C and/or " "POLARSSL_X509_CSR_PARSE_C and/or POLARSSL_FS_IO not defined.\n"); return( 0 ); } @@ -78,7 +84,7 @@ int main( int argc, char *argv[] ) if( argc == 0 ) { usage: - printf( USAGE ); + polarssl_printf( USAGE ); goto exit; } @@ -100,39 +106,39 @@ int main( int argc, char *argv[] ) /* * 1.1. Load the CSR */ - printf( "\n . Loading the CSR ..." ); + polarssl_printf( "\n . Loading the CSR ..." ); fflush( stdout ); ret = x509_csr_parse_file( &csr, opt.filename ); if( ret != 0 ) { - printf( " failed\n ! x509_csr_parse_file returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_csr_parse_file returned %d\n\n", ret ); x509_csr_free( &csr ); goto exit; } - printf( " ok\n" ); + polarssl_printf( " ok\n" ); /* * 1.2 Print the CSR */ - printf( " . CSR information ...\n" ); + polarssl_printf( " . CSR information ...\n" ); ret = x509_csr_info( (char *) buf, sizeof( buf ) - 1, " ", &csr ); if( ret == -1 ) { - printf( " failed\n ! x509_csr_info returned %d\n\n", ret ); + polarssl_printf( " failed\n ! x509_csr_info returned %d\n\n", ret ); x509_csr_free( &csr ); goto exit; } - printf( "%s\n", buf ); + polarssl_printf( "%s\n", buf ); exit: x509_csr_free( &csr ); #if defined(_WIN32) - printf( " + Press Enter to exit this program.\n" ); + polarssl_printf( " + Press Enter to exit this program.\n" ); fflush( stdout ); getchar(); #endif diff --git a/tests/scripts/generate_code.pl b/tests/scripts/generate_code.pl index 318629fe1..45913781d 100755 --- a/tests/scripts/generate_code.pl +++ b/tests/scripts/generate_code.pl @@ -6,11 +6,11 @@ use strict; my $suite_dir = shift or die "Missing suite directory"; my $suite_name = shift or die "Missing suite name"; my $data_name = shift or die "Missing data name"; +my $test_main_file = do { my $arg = shift; defined($arg) ? $arg : $suite_dir."/main_test.function" }; my $test_file = $data_name.".c"; my $test_helper_file = $suite_dir."/helpers.function"; my $test_case_file = $suite_dir."/".$suite_name.".function"; my $test_case_data = $suite_dir."/".$data_name.".data"; -my $test_main_file = $suite_dir."/main_test.function"; my $line_separator = $/; undef $/; @@ -172,7 +172,7 @@ $function_pre_code $param_defs if( cnt != $param_count ) { - fprintf( stderr, "\\nIncorrect argument count (%d != %d)\\n", cnt, $param_count ); + polarssl_fprintf( stderr, "\\nIncorrect argument count (%d != %d)\\n", cnt, $param_count ); return( 2 ); } diff --git a/tests/suites/main_test.function b/tests/suites/main_test.function index 9ebd9c3db..4a5e1041d 100644 --- a/tests/suites/main_test.function +++ b/tests/suites/main_test.function @@ -5,6 +5,7 @@ #include "polarssl/platform.h" #else #define polarssl_printf printf +#define polarssl_fprintf fprintf #define polarssl_malloc malloc #define polarssl_free free #endif @@ -25,8 +26,8 @@ static int test_assert( int correct, const char *test ) test_errors++; if( test_errors == 1 ) - printf( "FAILED\n" ); - printf( " %s\n", test ); + polarssl_printf( "FAILED\n" ); + polarssl_printf( " %s\n", test ); return( 1 ); } @@ -41,7 +42,7 @@ int verify_string( char **str ) if( (*str)[0] != '"' || (*str)[strlen( *str ) - 1] != '"' ) { - printf( "Expected string (with \"\") for parameter and got: %s\n", *str ); + polarssl_printf( "Expected string (with \"\") for parameter and got: %s\n", *str ); return( -1 ); } @@ -94,7 +95,7 @@ int verify_int( char *str, int *value ) MAPPING_CODE - printf( "Expected integer for parameter and got: %s\n", str ); + polarssl_printf( "Expected integer for parameter and got: %s\n", str ); return( -1 ); } @@ -120,7 +121,7 @@ int dispatch_test(int cnt, char *params[50]) #if defined(TEST_SUITE_ACTIVE) DISPATCH_FUNCTION { - fprintf( stdout, "FAILED\nSkipping unknown test function '%s'\n", params[0] ); + polarssl_fprintf( stdout, "FAILED\nSkipping unknown test function '%s'\n", params[0] ); fflush( stdout ); return( 1 ); } @@ -224,7 +225,7 @@ int main() file = fopen( filename, "r" ); if( file == NULL ) { - fprintf( stderr, "Failed to open\n" ); + polarssl_fprintf( stderr, "Failed to open\n" ); return( 1 ); } @@ -234,11 +235,11 @@ int main() if( ( ret = get_line( file, buf, sizeof(buf) ) ) != 0 ) break; - fprintf( stdout, "%s%.66s", test_errors ? "\n" : "", buf ); - fprintf( stdout, " " ); + polarssl_fprintf( stdout, "%s%.66s", test_errors ? "\n" : "", buf ); + polarssl_fprintf( stdout, " " ); for( i = strlen( buf ) + 1; i < 67; i++ ) - fprintf( stdout, "." ); - fprintf( stdout, " " ); + polarssl_fprintf( stdout, "." ); + polarssl_fprintf( stdout, " " ); fflush( stdout ); total_tests++; @@ -267,17 +268,17 @@ int main() if( skip == 1 || ret == 3 ) { total_skipped++; - fprintf( stdout, "----\n" ); + polarssl_fprintf( stdout, "----\n" ); fflush( stdout ); } else if( ret == 0 && test_errors == 0 ) { - fprintf( stdout, "PASS\n" ); + polarssl_fprintf( stdout, "PASS\n" ); fflush( stdout ); } else if( ret == 2 ) { - fprintf( stderr, "FAILED: FATAL PARSE ERROR\n" ); + polarssl_fprintf( stderr, "FAILED: FATAL PARSE ERROR\n" ); fclose(file); exit( 2 ); } @@ -288,19 +289,19 @@ int main() break; if( strlen(buf) != 0 ) { - fprintf( stderr, "Should be empty %d\n", (int) strlen(buf) ); + polarssl_fprintf( stderr, "Should be empty %d\n", (int) strlen(buf) ); return( 1 ); } } fclose(file); - fprintf( stdout, "\n----------------------------------------------------------------------------\n\n"); + polarssl_fprintf( stdout, "\n----------------------------------------------------------------------------\n\n"); if( total_errors == 0 ) - fprintf( stdout, "PASSED" ); + polarssl_fprintf( stdout, "PASSED" ); else - fprintf( stdout, "FAILED" ); + polarssl_fprintf( stdout, "FAILED" ); - fprintf( stdout, " (%d / %d tests (%d skipped))\n", + polarssl_fprintf( stdout, " (%d / %d tests (%d skipped))\n", total_tests - total_errors, total_tests, total_skipped ); #if defined(POLARSSL_MEMORY_BUFFER_ALLOC_C) && \ diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index 89b40b7d6..4329dccfe 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -445,8 +445,6 @@ void x509_parse_rsassa_pss_params( char *hex_params, int params_tag, my_ret = x509_get_rsassa_pss_params( ¶ms, &my_msg_md, &my_mgf_md, &my_salt_len ); - if( my_ret != ref_ret ) printf( "\n%04X\n", - my_ret ); - TEST_ASSERT( my_ret == ref_ret ); if( ref_ret == 0 )