Switch to the new code style
Signed-off-by: David Horstmann <david.horstmann@arm.com>
diff --git a/programs/aes/crypt_and_hash.c b/programs/aes/crypt_and_hash.c
index 476c20e..0187648 100644
--- a/programs/aes/crypt_and_hash.c
+++ b/programs/aes/crypt_and_hash.c
@@ -28,7 +28,7 @@
#include "mbedtls/platform.h"
#if defined(MBEDTLS_CIPHER_C) && defined(MBEDTLS_MD_C) && \
- defined(MBEDTLS_FS_IO)
+ defined(MBEDTLS_FS_IO)
#include "mbedtls/cipher.h"
#include "mbedtls/md.h"
#include "mbedtls/platform_util.h"
@@ -59,15 +59,15 @@
#if !defined(MBEDTLS_CIPHER_C) || !defined(MBEDTLS_MD_C) || \
!defined(MBEDTLS_FS_IO)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_CIPHER_C and/or MBEDTLS_MD_C and/or MBEDTLS_FS_IO not defined.\n");
- mbedtls_exit( 0 );
+ mbedtls_exit(0);
}
#else
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1, i;
unsigned n;
@@ -91,138 +91,121 @@
#if defined(_WIN32_WCE)
long filesize, offset;
#elif defined(_WIN32)
- LARGE_INTEGER li_size;
+ LARGE_INTEGER li_size;
__int64 filesize, offset;
#else
- off_t filesize, offset;
+ off_t filesize, offset;
#endif
- mbedtls_cipher_init( &cipher_ctx );
- mbedtls_md_init( &md_ctx );
+ mbedtls_cipher_init(&cipher_ctx);
+ mbedtls_md_init(&md_ctx);
/*
* Parse the command-line arguments.
*/
- if( argc != 7 )
- {
+ if (argc != 7) {
const int *list;
- mbedtls_printf( USAGE );
+ mbedtls_printf(USAGE);
- mbedtls_printf( "Available ciphers:\n" );
+ mbedtls_printf("Available ciphers:\n");
list = mbedtls_cipher_list();
- while( *list )
- {
- cipher_info = mbedtls_cipher_info_from_type( *list );
- mbedtls_printf( " %s\n", mbedtls_cipher_info_get_name( cipher_info ) );
+ while (*list) {
+ cipher_info = mbedtls_cipher_info_from_type(*list);
+ mbedtls_printf(" %s\n", mbedtls_cipher_info_get_name(cipher_info));
list++;
}
- mbedtls_printf( "\nAvailable message digests:\n" );
+ mbedtls_printf("\nAvailable message digests:\n");
list = mbedtls_md_list();
- while( *list )
- {
- md_info = mbedtls_md_info_from_type( *list );
- mbedtls_printf( " %s\n", mbedtls_md_get_name( md_info ) );
+ while (*list) {
+ md_info = mbedtls_md_info_from_type(*list);
+ mbedtls_printf(" %s\n", mbedtls_md_get_name(md_info));
list++;
}
goto exit;
}
- mode = atoi( argv[1] );
+ mode = atoi(argv[1]);
- if( mode != MODE_ENCRYPT && mode != MODE_DECRYPT )
- {
- mbedtls_fprintf( stderr, "invalid operation mode\n" );
+ if (mode != MODE_ENCRYPT && mode != MODE_DECRYPT) {
+ mbedtls_fprintf(stderr, "invalid operation mode\n");
goto exit;
}
- if( strcmp( argv[2], argv[3] ) == 0 )
- {
- mbedtls_fprintf( stderr, "input and output filenames must differ\n" );
+ if (strcmp(argv[2], argv[3]) == 0) {
+ mbedtls_fprintf(stderr, "input and output filenames must differ\n");
goto exit;
}
- if( ( fin = fopen( argv[2], "rb" ) ) == NULL )
- {
- mbedtls_fprintf( stderr, "fopen(%s,rb) failed\n", argv[2] );
+ if ((fin = fopen(argv[2], "rb")) == NULL) {
+ mbedtls_fprintf(stderr, "fopen(%s,rb) failed\n", argv[2]);
goto exit;
}
- if( ( fout = fopen( argv[3], "wb+" ) ) == NULL )
- {
- mbedtls_fprintf( stderr, "fopen(%s,wb+) failed\n", argv[3] );
+ if ((fout = fopen(argv[3], "wb+")) == NULL) {
+ mbedtls_fprintf(stderr, "fopen(%s,wb+) failed\n", argv[3]);
goto exit;
}
/* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */
- mbedtls_setbuf( fin, NULL );
- mbedtls_setbuf( fout, NULL );
+ mbedtls_setbuf(fin, NULL);
+ mbedtls_setbuf(fout, NULL);
/*
* Read the Cipher and MD from the command line
*/
- cipher_info = mbedtls_cipher_info_from_string( argv[4] );
- if( cipher_info == NULL )
- {
- mbedtls_fprintf( stderr, "Cipher '%s' not found\n", argv[4] );
+ cipher_info = mbedtls_cipher_info_from_string(argv[4]);
+ if (cipher_info == NULL) {
+ mbedtls_fprintf(stderr, "Cipher '%s' not found\n", argv[4]);
goto exit;
}
- if( ( ret = mbedtls_cipher_setup( &cipher_ctx, cipher_info) ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_cipher_setup failed\n" );
+ if ((ret = mbedtls_cipher_setup(&cipher_ctx, cipher_info)) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_cipher_setup failed\n");
goto exit;
}
- md_info = mbedtls_md_info_from_string( argv[5] );
- if( md_info == NULL )
- {
- mbedtls_fprintf( stderr, "Message Digest '%s' not found\n", argv[5] );
+ md_info = mbedtls_md_info_from_string(argv[5]);
+ if (md_info == NULL) {
+ mbedtls_fprintf(stderr, "Message Digest '%s' not found\n", argv[5]);
goto exit;
}
- if( mbedtls_md_setup( &md_ctx, md_info, 1 ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_setup failed\n" );
+ if (mbedtls_md_setup(&md_ctx, md_info, 1) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_setup failed\n");
goto exit;
}
/*
* Read the secret key from file or command line
*/
- if( ( fkey = fopen( argv[6], "rb" ) ) != NULL )
- {
- keylen = fread( key, 1, sizeof( key ), fkey );
- fclose( fkey );
- }
- else
- {
- if( memcmp( argv[6], "hex:", 4 ) == 0 )
- {
+ if ((fkey = fopen(argv[6], "rb")) != NULL) {
+ keylen = fread(key, 1, sizeof(key), fkey);
+ fclose(fkey);
+ } else {
+ if (memcmp(argv[6], "hex:", 4) == 0) {
p = &argv[6][4];
keylen = 0;
- while( sscanf( p, "%02X", (unsigned int*) &n ) > 0 &&
- keylen < (int) sizeof( key ) )
- {
+ while (sscanf(p, "%02X", (unsigned int *) &n) > 0 &&
+ keylen < (int) sizeof(key)) {
key[keylen++] = (unsigned char) n;
p += 2;
}
- }
- else
- {
- keylen = strlen( argv[6] );
+ } else {
+ keylen = strlen(argv[6]);
- if( keylen > (int) sizeof( key ) )
- keylen = (int) sizeof( key );
+ if (keylen > (int) sizeof(key)) {
+ keylen = (int) sizeof(key);
+ }
- memcpy( key, argv[6], keylen );
+ memcpy(key, argv[6], keylen);
}
}
#if defined(_WIN32_WCE)
- filesize = fseek( fin, 0L, SEEK_END );
+ filesize = fseek(fin, 0L, SEEK_END);
#else
#if defined(_WIN32)
/*
@@ -230,72 +213,64 @@
*/
li_size.QuadPart = 0;
li_size.LowPart =
- SetFilePointer( (HANDLE) _get_osfhandle( _fileno( fin ) ),
- li_size.LowPart, &li_size.HighPart, FILE_END );
+ SetFilePointer((HANDLE) _get_osfhandle(_fileno(fin)),
+ li_size.LowPart, &li_size.HighPart, FILE_END);
- if( li_size.LowPart == 0xFFFFFFFF && GetLastError() != NO_ERROR )
- {
- mbedtls_fprintf( stderr, "SetFilePointer(0,FILE_END) failed\n" );
+ if (li_size.LowPart == 0xFFFFFFFF && GetLastError() != NO_ERROR) {
+ mbedtls_fprintf(stderr, "SetFilePointer(0,FILE_END) failed\n");
goto exit;
}
filesize = li_size.QuadPart;
#else
- if( ( filesize = lseek( fileno( fin ), 0, SEEK_END ) ) < 0 )
- {
- perror( "lseek" );
+ if ((filesize = lseek(fileno(fin), 0, SEEK_END)) < 0) {
+ perror("lseek");
goto exit;
}
#endif
#endif
- if( fseek( fin, 0, SEEK_SET ) < 0 )
- {
- mbedtls_fprintf( stderr, "fseek(0,SEEK_SET) failed\n" );
+ if (fseek(fin, 0, SEEK_SET) < 0) {
+ mbedtls_fprintf(stderr, "fseek(0,SEEK_SET) failed\n");
goto exit;
}
- if( mode == MODE_ENCRYPT )
- {
+ if (mode == MODE_ENCRYPT) {
/*
* Generate the initialization vector as:
* IV = MD( filesize || filename )[0..15]
*/
- for( i = 0; i < 8; i++ )
- buffer[i] = (unsigned char)( filesize >> ( i << 3 ) );
+ for (i = 0; i < 8; i++) {
+ buffer[i] = (unsigned char) (filesize >> (i << 3));
+ }
p = argv[2];
- if( mbedtls_md_starts( &md_ctx ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_starts() returned error\n" );
+ if (mbedtls_md_starts(&md_ctx) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_starts() returned error\n");
goto exit;
}
- if( mbedtls_md_update( &md_ctx, buffer, 8 ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_update() returned error\n" );
+ if (mbedtls_md_update(&md_ctx, buffer, 8) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_update() returned error\n");
goto exit;
}
- if( mbedtls_md_update( &md_ctx, ( unsigned char * ) p, strlen( p ) )
- != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_update() returned error\n" );
+ if (mbedtls_md_update(&md_ctx, (unsigned char *) p, strlen(p))
+ != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_update() returned error\n");
goto exit;
}
- if( mbedtls_md_finish( &md_ctx, digest ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_finish() returned error\n" );
+ if (mbedtls_md_finish(&md_ctx, digest) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_finish() returned error\n");
goto exit;
}
- memcpy( IV, digest, 16 );
+ memcpy(IV, digest, 16);
/*
* Append the IV at the beginning of the output.
*/
- if( fwrite( IV, 1, 16, fout ) != 16 )
- {
- mbedtls_fprintf( stderr, "fwrite(%d bytes) failed\n", 16 );
+ if (fwrite(IV, 1, 16, fout) != 16) {
+ mbedtls_fprintf(stderr, "fwrite(%d bytes) failed\n", 16);
goto exit;
}
@@ -303,131 +278,111 @@
* Hash the IV and the secret key together 8192 times
* using the result to setup the AES context and HMAC.
*/
- memset( digest, 0, 32 );
- memcpy( digest, IV, 16 );
+ memset(digest, 0, 32);
+ memcpy(digest, IV, 16);
- for( i = 0; i < 8192; i++ )
- {
- if( mbedtls_md_starts( &md_ctx ) != 0 )
- {
- mbedtls_fprintf( stderr,
- "mbedtls_md_starts() returned error\n" );
+ for (i = 0; i < 8192; i++) {
+ if (mbedtls_md_starts(&md_ctx) != 0) {
+ mbedtls_fprintf(stderr,
+ "mbedtls_md_starts() returned error\n");
goto exit;
}
- if( mbedtls_md_update( &md_ctx, digest, 32 ) != 0 )
- {
- mbedtls_fprintf( stderr,
- "mbedtls_md_update() returned error\n" );
+ if (mbedtls_md_update(&md_ctx, digest, 32) != 0) {
+ mbedtls_fprintf(stderr,
+ "mbedtls_md_update() returned error\n");
goto exit;
}
- if( mbedtls_md_update( &md_ctx, key, keylen ) != 0 )
- {
- mbedtls_fprintf( stderr,
- "mbedtls_md_update() returned error\n" );
+ if (mbedtls_md_update(&md_ctx, key, keylen) != 0) {
+ mbedtls_fprintf(stderr,
+ "mbedtls_md_update() returned error\n");
goto exit;
}
- if( mbedtls_md_finish( &md_ctx, digest ) != 0 )
- {
- mbedtls_fprintf( stderr,
- "mbedtls_md_finish() returned error\n" );
+ if (mbedtls_md_finish(&md_ctx, digest) != 0) {
+ mbedtls_fprintf(stderr,
+ "mbedtls_md_finish() returned error\n");
goto exit;
}
}
- if( mbedtls_cipher_setkey( &cipher_ctx,
- digest,
- (int) mbedtls_cipher_info_get_key_bitlen( cipher_info ),
- MBEDTLS_ENCRYPT ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_cipher_setkey() returned error\n");
+ if (mbedtls_cipher_setkey(&cipher_ctx,
+ digest,
+ (int) mbedtls_cipher_info_get_key_bitlen(cipher_info),
+ MBEDTLS_ENCRYPT) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_cipher_setkey() returned error\n");
goto exit;
}
- if( mbedtls_cipher_set_iv( &cipher_ctx, IV, 16 ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_cipher_set_iv() returned error\n");
+ if (mbedtls_cipher_set_iv(&cipher_ctx, IV, 16) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_cipher_set_iv() returned error\n");
goto exit;
}
- if( mbedtls_cipher_reset( &cipher_ctx ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_cipher_reset() returned error\n");
+ if (mbedtls_cipher_reset(&cipher_ctx) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_cipher_reset() returned error\n");
goto exit;
}
- if( mbedtls_md_hmac_starts( &md_ctx, digest, 32 ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_hmac_starts() returned error\n" );
+ if (mbedtls_md_hmac_starts(&md_ctx, digest, 32) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_hmac_starts() returned error\n");
goto exit;
}
/*
* Encrypt and write the ciphertext.
*/
- for( offset = 0; offset < filesize; offset += mbedtls_cipher_get_block_size( &cipher_ctx ) )
- {
- ilen = ( (unsigned int) filesize - offset > mbedtls_cipher_get_block_size( &cipher_ctx ) ) ?
- mbedtls_cipher_get_block_size( &cipher_ctx ) : (unsigned int) ( filesize - offset );
+ for (offset = 0; offset < filesize; offset += mbedtls_cipher_get_block_size(&cipher_ctx)) {
+ ilen = ((unsigned int) filesize - offset > mbedtls_cipher_get_block_size(&cipher_ctx)) ?
+ mbedtls_cipher_get_block_size(&cipher_ctx) : (unsigned int) (filesize - offset);
- if( fread( buffer, 1, ilen, fin ) != ilen )
- {
- mbedtls_fprintf( stderr, "fread(%ld bytes) failed\n", (long) ilen );
+ if (fread(buffer, 1, ilen, fin) != ilen) {
+ mbedtls_fprintf(stderr, "fread(%ld bytes) failed\n", (long) ilen);
goto exit;
}
- if( mbedtls_cipher_update( &cipher_ctx, buffer, ilen, output, &olen ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_cipher_update() returned error\n");
+ if (mbedtls_cipher_update(&cipher_ctx, buffer, ilen, output, &olen) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_cipher_update() returned error\n");
goto exit;
}
- if( mbedtls_md_hmac_update( &md_ctx, output, olen ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_hmac_update() returned error\n" );
+ if (mbedtls_md_hmac_update(&md_ctx, output, olen) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_hmac_update() returned error\n");
goto exit;
}
- if( fwrite( output, 1, olen, fout ) != olen )
- {
- mbedtls_fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen );
+ if (fwrite(output, 1, olen, fout) != olen) {
+ mbedtls_fprintf(stderr, "fwrite(%ld bytes) failed\n", (long) olen);
goto exit;
}
}
- if( mbedtls_cipher_finish( &cipher_ctx, output, &olen ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_cipher_finish() returned error\n" );
+ if (mbedtls_cipher_finish(&cipher_ctx, output, &olen) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_cipher_finish() returned error\n");
goto exit;
}
- if( mbedtls_md_hmac_update( &md_ctx, output, olen ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_hmac_update() returned error\n" );
+ if (mbedtls_md_hmac_update(&md_ctx, output, olen) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_hmac_update() returned error\n");
goto exit;
}
- if( fwrite( output, 1, olen, fout ) != olen )
- {
- mbedtls_fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen );
+ if (fwrite(output, 1, olen, fout) != olen) {
+ mbedtls_fprintf(stderr, "fwrite(%ld bytes) failed\n", (long) olen);
goto exit;
}
/*
* Finally write the HMAC.
*/
- if( mbedtls_md_hmac_finish( &md_ctx, digest ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_hmac_finish() returned error\n" );
+ if (mbedtls_md_hmac_finish(&md_ctx, digest) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_hmac_finish() returned error\n");
goto exit;
}
- if( fwrite( digest, 1, mbedtls_md_get_size( md_info ), fout ) != mbedtls_md_get_size( md_info ) )
- {
- mbedtls_fprintf( stderr, "fwrite(%d bytes) failed\n", mbedtls_md_get_size( md_info ) );
+ if (fwrite(digest, 1, mbedtls_md_get_size(md_info), fout) != mbedtls_md_get_size(md_info)) {
+ mbedtls_fprintf(stderr, "fwrite(%d bytes) failed\n", mbedtls_md_get_size(md_info));
goto exit;
}
}
- if( mode == MODE_DECRYPT )
- {
+ if (mode == MODE_DECRYPT) {
/*
* The encrypted file must be structured as follows:
*
@@ -437,134 +392,116 @@
* N*16 .. (N+1)*16 - 1 Encrypted Block #N
* (N+1)*16 .. (N+1)*16 + n Hash(ciphertext)
*/
- if( filesize < 16 + mbedtls_md_get_size( md_info ) )
- {
- mbedtls_fprintf( stderr, "File too short to be encrypted.\n" );
+ if (filesize < 16 + mbedtls_md_get_size(md_info)) {
+ mbedtls_fprintf(stderr, "File too short to be encrypted.\n");
goto exit;
}
- if( mbedtls_cipher_get_block_size( &cipher_ctx ) == 0 )
- {
- mbedtls_fprintf( stderr, "Invalid cipher block size: 0. \n" );
+ if (mbedtls_cipher_get_block_size(&cipher_ctx) == 0) {
+ mbedtls_fprintf(stderr, "Invalid cipher block size: 0. \n");
goto exit;
}
/*
* Check the file size.
*/
- if( mbedtls_cipher_info_get_mode( cipher_info ) != MBEDTLS_MODE_GCM &&
- ( ( filesize - mbedtls_md_get_size( md_info ) ) %
- mbedtls_cipher_get_block_size( &cipher_ctx ) ) != 0 )
- {
- mbedtls_fprintf( stderr, "File content not a multiple of the block size (%u).\n",
- mbedtls_cipher_get_block_size( &cipher_ctx ));
+ if (mbedtls_cipher_info_get_mode(cipher_info) != MBEDTLS_MODE_GCM &&
+ ((filesize - mbedtls_md_get_size(md_info)) %
+ mbedtls_cipher_get_block_size(&cipher_ctx)) != 0) {
+ mbedtls_fprintf(stderr, "File content not a multiple of the block size (%u).\n",
+ mbedtls_cipher_get_block_size(&cipher_ctx));
goto exit;
}
/*
* Subtract the IV + HMAC length.
*/
- filesize -= ( 16 + mbedtls_md_get_size( md_info ) );
+ filesize -= (16 + mbedtls_md_get_size(md_info));
/*
* Read the IV and original filesize modulo 16.
*/
- if( fread( buffer, 1, 16, fin ) != 16 )
- {
- mbedtls_fprintf( stderr, "fread(%d bytes) failed\n", 16 );
+ if (fread(buffer, 1, 16, fin) != 16) {
+ mbedtls_fprintf(stderr, "fread(%d bytes) failed\n", 16);
goto exit;
}
- memcpy( IV, buffer, 16 );
+ memcpy(IV, buffer, 16);
/*
* Hash the IV and the secret key together 8192 times
* using the result to setup the AES context and HMAC.
*/
- memset( digest, 0, 32 );
- memcpy( digest, IV, 16 );
+ memset(digest, 0, 32);
+ memcpy(digest, IV, 16);
- for( i = 0; i < 8192; i++ )
- {
- if( mbedtls_md_starts( &md_ctx ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_starts() returned error\n" );
+ for (i = 0; i < 8192; i++) {
+ if (mbedtls_md_starts(&md_ctx) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_starts() returned error\n");
goto exit;
}
- if( mbedtls_md_update( &md_ctx, digest, 32 ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_update() returned error\n" );
+ if (mbedtls_md_update(&md_ctx, digest, 32) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_update() returned error\n");
goto exit;
}
- if( mbedtls_md_update( &md_ctx, key, keylen ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_update() returned error\n" );
+ if (mbedtls_md_update(&md_ctx, key, keylen) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_update() returned error\n");
goto exit;
}
- if( mbedtls_md_finish( &md_ctx, digest ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_finish() returned error\n" );
+ if (mbedtls_md_finish(&md_ctx, digest) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_finish() returned error\n");
goto exit;
}
}
- if( mbedtls_cipher_setkey( &cipher_ctx,
- digest,
- (int) mbedtls_cipher_info_get_key_bitlen( cipher_info ),
- MBEDTLS_DECRYPT ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_cipher_setkey() returned error\n" );
+ if (mbedtls_cipher_setkey(&cipher_ctx,
+ digest,
+ (int) mbedtls_cipher_info_get_key_bitlen(cipher_info),
+ MBEDTLS_DECRYPT) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_cipher_setkey() returned error\n");
goto exit;
}
- if( mbedtls_cipher_set_iv( &cipher_ctx, IV, 16 ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_cipher_set_iv() returned error\n" );
+ if (mbedtls_cipher_set_iv(&cipher_ctx, IV, 16) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_cipher_set_iv() returned error\n");
goto exit;
}
- if( mbedtls_cipher_reset( &cipher_ctx ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_cipher_reset() returned error\n" );
+ if (mbedtls_cipher_reset(&cipher_ctx) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_cipher_reset() returned error\n");
goto exit;
}
- if( mbedtls_md_hmac_starts( &md_ctx, digest, 32 ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_hmac_starts() returned error\n" );
+ if (mbedtls_md_hmac_starts(&md_ctx, digest, 32) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_hmac_starts() returned error\n");
goto exit;
}
/*
* Decrypt and write the plaintext.
*/
- for( offset = 0; offset < filesize; offset += mbedtls_cipher_get_block_size( &cipher_ctx ) )
- {
- ilen = ( (unsigned int) filesize - offset > mbedtls_cipher_get_block_size( &cipher_ctx ) ) ?
- mbedtls_cipher_get_block_size( &cipher_ctx ) : (unsigned int) ( filesize - offset );
+ for (offset = 0; offset < filesize; offset += mbedtls_cipher_get_block_size(&cipher_ctx)) {
+ ilen = ((unsigned int) filesize - offset > mbedtls_cipher_get_block_size(&cipher_ctx)) ?
+ mbedtls_cipher_get_block_size(&cipher_ctx) : (unsigned int) (filesize - offset);
- if( fread( buffer, 1, ilen, fin ) != ilen )
- {
- mbedtls_fprintf( stderr, "fread(%u bytes) failed\n",
- mbedtls_cipher_get_block_size( &cipher_ctx ) );
+ if (fread(buffer, 1, ilen, fin) != ilen) {
+ mbedtls_fprintf(stderr, "fread(%u bytes) failed\n",
+ mbedtls_cipher_get_block_size(&cipher_ctx));
goto exit;
}
- if( mbedtls_md_hmac_update( &md_ctx, buffer, ilen ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_hmac_update() returned error\n" );
+ if (mbedtls_md_hmac_update(&md_ctx, buffer, ilen) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_hmac_update() returned error\n");
goto exit;
}
- if( mbedtls_cipher_update( &cipher_ctx, buffer, ilen, output,
- &olen ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_cipher_update() returned error\n" );
+ if (mbedtls_cipher_update(&cipher_ctx, buffer, ilen, output,
+ &olen) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_cipher_update() returned error\n");
goto exit;
}
- if( fwrite( output, 1, olen, fout ) != olen )
- {
- mbedtls_fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen );
+ if (fwrite(output, 1, olen, fout) != olen) {
+ mbedtls_fprintf(stderr, "fwrite(%ld bytes) failed\n", (long) olen);
goto exit;
}
}
@@ -572,42 +509,38 @@
/*
* Verify the message authentication code.
*/
- if( mbedtls_md_hmac_finish( &md_ctx, digest ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_md_hmac_finish() returned error\n" );
+ if (mbedtls_md_hmac_finish(&md_ctx, digest) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_md_hmac_finish() returned error\n");
goto exit;
}
- if( fread( buffer, 1, mbedtls_md_get_size( md_info ), fin ) != mbedtls_md_get_size( md_info ) )
- {
- mbedtls_fprintf( stderr, "fread(%d bytes) failed\n", mbedtls_md_get_size( md_info ) );
+ if (fread(buffer, 1, mbedtls_md_get_size(md_info), fin) != mbedtls_md_get_size(md_info)) {
+ mbedtls_fprintf(stderr, "fread(%d bytes) failed\n", mbedtls_md_get_size(md_info));
goto exit;
}
/* Use constant-time buffer comparison */
diff = 0;
- for( i = 0; i < mbedtls_md_get_size( md_info ); i++ )
+ for (i = 0; i < mbedtls_md_get_size(md_info); i++) {
diff |= digest[i] ^ buffer[i];
+ }
- if( diff != 0 )
- {
- mbedtls_fprintf( stderr, "HMAC check failed: wrong key, "
- "or file corrupted.\n" );
+ if (diff != 0) {
+ mbedtls_fprintf(stderr, "HMAC check failed: wrong key, "
+ "or file corrupted.\n");
goto exit;
}
/*
* Write the final block of data
*/
- if( mbedtls_cipher_finish( &cipher_ctx, output, &olen ) != 0 )
- {
- mbedtls_fprintf( stderr, "mbedtls_cipher_finish() returned error\n" );
+ if (mbedtls_cipher_finish(&cipher_ctx, output, &olen) != 0) {
+ mbedtls_fprintf(stderr, "mbedtls_cipher_finish() returned error\n");
goto exit;
}
- if( fwrite( output, 1, olen, fout ) != olen )
- {
- mbedtls_fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen );
+ if (fwrite(output, 1, olen, fout) != olen) {
+ mbedtls_fprintf(stderr, "fwrite(%ld bytes) failed\n", (long) olen);
goto exit;
}
}
@@ -615,26 +548,29 @@
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- if( fin )
- fclose( fin );
- if( fout )
- fclose( fout );
+ if (fin) {
+ fclose(fin);
+ }
+ if (fout) {
+ fclose(fout);
+ }
/* Zeroize all command line arguments to also cover
the case when the user has missed or reordered some,
in which case the key might not be in argv[6]. */
- for( i = 0; i < argc; i++ )
- mbedtls_platform_zeroize( argv[i], strlen( argv[i] ) );
+ for (i = 0; i < argc; i++) {
+ mbedtls_platform_zeroize(argv[i], strlen(argv[i]));
+ }
- mbedtls_platform_zeroize( IV, sizeof( IV ) );
- mbedtls_platform_zeroize( key, sizeof( key ) );
- mbedtls_platform_zeroize( buffer, sizeof( buffer ) );
- mbedtls_platform_zeroize( output, sizeof( output ) );
- mbedtls_platform_zeroize( digest, sizeof( digest ) );
+ mbedtls_platform_zeroize(IV, sizeof(IV));
+ mbedtls_platform_zeroize(key, sizeof(key));
+ mbedtls_platform_zeroize(buffer, sizeof(buffer));
+ mbedtls_platform_zeroize(output, sizeof(output));
+ mbedtls_platform_zeroize(digest, sizeof(digest));
- mbedtls_cipher_free( &cipher_ctx );
- mbedtls_md_free( &md_ctx );
+ mbedtls_cipher_free(&cipher_ctx);
+ mbedtls_md_free(&md_ctx);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_CIPHER_C && MBEDTLS_MD_C && MBEDTLS_FS_IO */
diff --git a/programs/cipher/cipher_aead_demo.c b/programs/cipher/cipher_aead_demo.c
index 18bd66c..ce39256 100644
--- a/programs/cipher/cipher_aead_demo.c
+++ b/programs/cipher/cipher_aead_demo.c
@@ -55,19 +55,19 @@
#if !defined(MBEDTLS_CIPHER_C) || \
!defined(MBEDTLS_AES_C) || !defined(MBEDTLS_GCM_C) || \
!defined(MBEDTLS_CHACHAPOLY_C)
-int main( void )
+int main(void)
{
- printf( "MBEDTLS_MD_C and/or "
- "MBEDTLS_AES_C and/or MBEDTLS_GCM_C and/or "
- "MBEDTLS_CHACHAPOLY_C not defined\r\n" );
- return( 0 );
+ printf("MBEDTLS_MD_C and/or "
+ "MBEDTLS_AES_C and/or MBEDTLS_GCM_C and/or "
+ "MBEDTLS_CHACHAPOLY_C not defined\r\n");
+ return 0;
}
#else
/* The real program starts here. */
const char usage[] =
-"Usage: cipher_aead_demo [aes128-gcm|aes256-gcm|aes128-gcm_8|chachapoly]";
+ "Usage: cipher_aead_demo [aes128-gcm|aes256-gcm|aes128-gcm_8|chachapoly]";
/* Dummy data for encryption: IV/nonce, additional data, 2-part message */
const unsigned char iv1[12] = { 0x00 };
@@ -82,39 +82,40 @@
const unsigned char msg2_part2[] = { 0x15, 0x16, 0x17 };
/* Maximum total size of the messages */
-#define MSG1_SIZE ( sizeof( msg1_part1 ) + sizeof( msg1_part2 ) )
-#define MSG2_SIZE ( sizeof( msg2_part1 ) + sizeof( msg2_part2 ) )
-#define MSG_MAX_SIZE ( MSG1_SIZE > MSG2_SIZE ? MSG1_SIZE : MSG2_SIZE )
+#define MSG1_SIZE (sizeof(msg1_part1) + sizeof(msg1_part2))
+#define MSG2_SIZE (sizeof(msg2_part1) + sizeof(msg2_part2))
+#define MSG_MAX_SIZE (MSG1_SIZE > MSG2_SIZE ? MSG1_SIZE : MSG2_SIZE)
/* Dummy key material - never do this in production!
* 32-byte is enough to all the key size supported by this program. */
const unsigned char key_bytes[32] = { 0x2a };
/* Print the contents of a buffer in hex */
-void print_buf( const char *title, unsigned char *buf, size_t len )
+void print_buf(const char *title, unsigned char *buf, size_t len)
{
- printf( "%s:", title );
- for( size_t i = 0; i < len; i++ )
- printf( " %02x", buf[i] );
- printf( "\n" );
+ printf("%s:", title);
+ for (size_t i = 0; i < len; i++) {
+ printf(" %02x", buf[i]);
+ }
+ printf("\n");
}
/* Run an Mbed TLS function and bail out if it fails.
* A string description of the error code can be recovered with:
* programs/util/strerror <value> */
-#define CHK( expr ) \
+#define CHK(expr) \
do \
{ \
- ret = ( expr ); \
- if( ret != 0 ) \
+ ret = (expr); \
+ if (ret != 0) \
{ \
- printf( "Error %d at line %d: %s\n", \
- ret, \
- __LINE__, \
- #expr ); \
+ printf("Error %d at line %d: %s\n", \
+ ret, \
+ __LINE__, \
+ #expr); \
goto exit; \
} \
- } while( 0 )
+ } while (0)
/*
* Prepare encryption material:
@@ -122,41 +123,41 @@
* - set up key
* - outputs: context and tag length, which together hold all the information
*/
-static int aead_prepare( const char *info,
- mbedtls_cipher_context_t *ctx,
- size_t *tag_len )
+static int aead_prepare(const char *info,
+ mbedtls_cipher_context_t *ctx,
+ size_t *tag_len)
{
int ret;
/* Convert arg to type + tag_len */
mbedtls_cipher_type_t type;
- if( strcmp( info, "aes128-gcm" ) == 0 ) {
+ if (strcmp(info, "aes128-gcm") == 0) {
type = MBEDTLS_CIPHER_AES_128_GCM;
*tag_len = 16;
- } else if( strcmp( info, "aes256-gcm" ) == 0 ) {
+ } else if (strcmp(info, "aes256-gcm") == 0) {
type = MBEDTLS_CIPHER_AES_256_GCM;
*tag_len = 16;
- } else if( strcmp( info, "aes128-gcm_8" ) == 0 ) {
+ } else if (strcmp(info, "aes128-gcm_8") == 0) {
type = MBEDTLS_CIPHER_AES_128_GCM;
*tag_len = 8;
- } else if( strcmp( info, "chachapoly" ) == 0 ) {
+ } else if (strcmp(info, "chachapoly") == 0) {
type = MBEDTLS_CIPHER_CHACHA20_POLY1305;
*tag_len = 16;
} else {
- puts( usage );
- return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA );
+ puts(usage);
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
}
/* Prepare context for the given type */
- CHK( mbedtls_cipher_setup( ctx,
- mbedtls_cipher_info_from_type( type ) ) );
+ CHK(mbedtls_cipher_setup(ctx,
+ mbedtls_cipher_info_from_type(type)));
/* Import key */
- int key_len = mbedtls_cipher_get_key_bitlen( ctx );
- CHK( mbedtls_cipher_setkey( ctx, key_bytes, key_len, MBEDTLS_ENCRYPT ) );
+ int key_len = mbedtls_cipher_get_key_bitlen(ctx);
+ CHK(mbedtls_cipher_setkey(ctx, key_bytes, key_len, MBEDTLS_ENCRYPT));
exit:
- return( ret );
+ return ret;
}
/*
@@ -165,30 +166,30 @@
* All of this information was present in the command line argument, but his
* function demonstrates how each piece can be recovered from (ctx, tag_len).
*/
-static void aead_info( const mbedtls_cipher_context_t *ctx, size_t tag_len )
+static void aead_info(const mbedtls_cipher_context_t *ctx, size_t tag_len)
{
- mbedtls_cipher_type_t type = mbedtls_cipher_get_type( ctx );
- const mbedtls_cipher_info_t *info = mbedtls_cipher_info_from_type( type );
- const char *ciph = mbedtls_cipher_info_get_name( info );
- int key_bits = mbedtls_cipher_get_key_bitlen( ctx );
- mbedtls_cipher_mode_t mode = mbedtls_cipher_get_cipher_mode( ctx );
+ mbedtls_cipher_type_t type = mbedtls_cipher_get_type(ctx);
+ const mbedtls_cipher_info_t *info = mbedtls_cipher_info_from_type(type);
+ const char *ciph = mbedtls_cipher_info_get_name(info);
+ int key_bits = mbedtls_cipher_get_key_bitlen(ctx);
+ mbedtls_cipher_mode_t mode = mbedtls_cipher_get_cipher_mode(ctx);
const char *mode_str = mode == MBEDTLS_MODE_GCM ? "GCM"
: mode == MBEDTLS_MODE_CHACHAPOLY ? "ChachaPoly"
: "???";
- printf( "%s, %d, %s, %u\n",
- ciph, key_bits, mode_str, (unsigned) tag_len );
+ printf("%s, %d, %s, %u\n",
+ ciph, key_bits, mode_str, (unsigned) tag_len);
}
/*
* Encrypt a 2-part message.
*/
-static int aead_encrypt( mbedtls_cipher_context_t *ctx, size_t tag_len,
- const unsigned char *iv, size_t iv_len,
- const unsigned char *ad, size_t ad_len,
- const unsigned char *part1, size_t part1_len,
- const unsigned char *part2, size_t part2_len )
+static int aead_encrypt(mbedtls_cipher_context_t *ctx, size_t tag_len,
+ const unsigned char *iv, size_t iv_len,
+ const unsigned char *ad, size_t ad_len,
+ const unsigned char *part1, size_t part1_len,
+ const unsigned char *part2, size_t part2_len)
{
int ret;
size_t olen;
@@ -196,76 +197,75 @@
unsigned char out[MSG_MAX_SIZE + MAX_TAG_LENGTH];
unsigned char *p = out;
- CHK( mbedtls_cipher_set_iv( ctx, iv, iv_len ) );
- CHK( mbedtls_cipher_reset( ctx ) );
- CHK( mbedtls_cipher_update_ad( ctx, ad, ad_len ) );
- CHK( mbedtls_cipher_update( ctx, part1, part1_len, p, &olen ) );
+ CHK(mbedtls_cipher_set_iv(ctx, iv, iv_len));
+ CHK(mbedtls_cipher_reset(ctx));
+ CHK(mbedtls_cipher_update_ad(ctx, ad, ad_len));
+ CHK(mbedtls_cipher_update(ctx, part1, part1_len, p, &olen));
p += olen;
- CHK( mbedtls_cipher_update( ctx, part2, part2_len, p, &olen ) );
+ CHK(mbedtls_cipher_update(ctx, part2, part2_len, p, &olen));
p += olen;
- CHK( mbedtls_cipher_finish( ctx, p, &olen ) );
+ CHK(mbedtls_cipher_finish(ctx, p, &olen));
p += olen;
- CHK( mbedtls_cipher_write_tag( ctx, p, tag_len ) );
+ CHK(mbedtls_cipher_write_tag(ctx, p, tag_len));
p += tag_len;
olen = p - out;
- print_buf( "out", out, olen );
+ print_buf("out", out, olen);
exit:
- return( ret );
+ return ret;
}
/*
* AEAD demo: set up key/alg, print out info, encrypt messages.
*/
-static int aead_demo( const char *info )
+static int aead_demo(const char *info)
{
int ret = 0;
mbedtls_cipher_context_t ctx;
size_t tag_len;
- mbedtls_cipher_init( &ctx );
+ mbedtls_cipher_init(&ctx);
- CHK( aead_prepare( info, &ctx, &tag_len ) );
+ CHK(aead_prepare(info, &ctx, &tag_len));
- aead_info( &ctx, tag_len );
+ aead_info(&ctx, tag_len);
- CHK( aead_encrypt( &ctx, tag_len,
- iv1, sizeof( iv1 ), add_data1, sizeof( add_data1 ),
- msg1_part1, sizeof( msg1_part1 ),
- msg1_part2, sizeof( msg1_part2 ) ) );
- CHK( aead_encrypt( &ctx, tag_len,
- iv2, sizeof( iv2 ), add_data2, sizeof( add_data2 ),
- msg2_part1, sizeof( msg2_part1 ),
- msg2_part2, sizeof( msg2_part2 ) ) );
+ CHK(aead_encrypt(&ctx, tag_len,
+ iv1, sizeof(iv1), add_data1, sizeof(add_data1),
+ msg1_part1, sizeof(msg1_part1),
+ msg1_part2, sizeof(msg1_part2)));
+ CHK(aead_encrypt(&ctx, tag_len,
+ iv2, sizeof(iv2), add_data2, sizeof(add_data2),
+ msg2_part1, sizeof(msg2_part1),
+ msg2_part2, sizeof(msg2_part2)));
exit:
- mbedtls_cipher_free( &ctx );
+ mbedtls_cipher_free(&ctx);
- return( ret );
+ return ret;
}
/*
* Main function
*/
-int main( int argc, char **argv )
+int main(int argc, char **argv)
{
/* Check usage */
- if( argc != 2 )
- {
- puts( usage );
- return( 1 );
+ if (argc != 2) {
+ puts(usage);
+ return 1;
}
int ret;
/* Run the demo */
- CHK( aead_demo( argv[1] ) );
+ CHK(aead_demo(argv[1]));
exit:
- return( ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE );
+ return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
#endif
diff --git a/programs/fuzz/common.c b/programs/fuzz/common.c
index c554bc6..75021bb 100644
--- a/programs/fuzz/common.c
+++ b/programs/fuzz/common.c
@@ -6,7 +6,7 @@
#include "mbedtls/ctr_drbg.h"
#if defined(MBEDTLS_PLATFORM_TIME_ALT)
-mbedtls_time_t dummy_constant_time( mbedtls_time_t* time )
+mbedtls_time_t dummy_constant_time(mbedtls_time_t *time)
{
(void) time;
return 0x5af2a056;
@@ -16,54 +16,54 @@
void dummy_init()
{
#if defined(MBEDTLS_PLATFORM_TIME_ALT)
- mbedtls_platform_set_time( dummy_constant_time );
+ mbedtls_platform_set_time(dummy_constant_time);
#else
fprintf(stderr, "Warning: fuzzing without constant time\n");
#endif
}
-int dummy_send( void *ctx, const unsigned char *buf, size_t len )
+int dummy_send(void *ctx, const unsigned char *buf, size_t len)
{
//silence warning about unused parameter
(void) ctx;
(void) buf;
//pretends we wrote everything ok
- if( len > INT_MAX ) {
- return( -1 );
+ if (len > INT_MAX) {
+ return -1;
}
- return( (int) len );
+ return (int) len;
}
-int fuzz_recv( void *ctx, unsigned char *buf, size_t len )
+int fuzz_recv(void *ctx, unsigned char *buf, size_t len)
{
//reads from the buffer from fuzzer
- fuzzBufferOffset_t * biomemfuzz = (fuzzBufferOffset_t *) ctx;
+ fuzzBufferOffset_t *biomemfuzz = (fuzzBufferOffset_t *) ctx;
- if(biomemfuzz->Offset == biomemfuzz->Size) {
+ if (biomemfuzz->Offset == biomemfuzz->Size) {
//EOF
- return( 0 );
+ return 0;
}
- if( len > INT_MAX ) {
- return( -1 );
+ if (len > INT_MAX) {
+ return -1;
}
- if( len + biomemfuzz->Offset > biomemfuzz->Size ) {
+ if (len + biomemfuzz->Offset > biomemfuzz->Size) {
//do not overflow
len = biomemfuzz->Size - biomemfuzz->Offset;
}
memcpy(buf, biomemfuzz->Data + biomemfuzz->Offset, len);
biomemfuzz->Offset += len;
- return( (int) len );
+ return (int) len;
}
-int dummy_random( void *p_rng, unsigned char *output, size_t output_len )
+int dummy_random(void *p_rng, unsigned char *output, size_t output_len)
{
int ret;
size_t i;
#if defined(MBEDTLS_CTR_DRBG_C)
//mbedtls_ctr_drbg_random requires a valid mbedtls_ctr_drbg_context in p_rng
- if( p_rng != NULL ) {
+ if (p_rng != NULL) {
//use mbedtls_ctr_drbg_random to find bugs in it
ret = mbedtls_ctr_drbg_random(p_rng, output, output_len);
} else {
@@ -74,14 +74,14 @@
(void) p_rng;
ret = 0;
#endif
- for (i=0; i<output_len; i++) {
+ for (i = 0; i < output_len; i++) {
//replace result with pseudo random
output[i] = (unsigned char) rand();
}
- return( ret );
+ return ret;
}
-int dummy_entropy( void *data, unsigned char *output, size_t len )
+int dummy_entropy(void *data, unsigned char *output, size_t len)
{
size_t i;
(void) data;
@@ -89,15 +89,15 @@
//use mbedtls_entropy_func to find bugs in it
//test performance impact of entropy
//ret = mbedtls_entropy_func(data, output, len);
- for (i=0; i<len; i++) {
+ for (i = 0; i < len; i++) {
//replace result with pseudo random
output[i] = (unsigned char) rand();
}
- return( 0 );
+ return 0;
}
-int fuzz_recv_timeout( void *ctx, unsigned char *buf, size_t len,
- uint32_t timeout )
+int fuzz_recv_timeout(void *ctx, unsigned char *buf, size_t len,
+ uint32_t timeout)
{
(void) timeout;
diff --git a/programs/fuzz/common.h b/programs/fuzz/common.h
index 7bb7b87..bc817bd 100644
--- a/programs/fuzz/common.h
+++ b/programs/fuzz/common.h
@@ -6,21 +6,20 @@
#include <stddef.h>
#include <stdint.h>
-typedef struct fuzzBufferOffset
-{
+typedef struct fuzzBufferOffset {
const uint8_t *Data;
size_t Size;
size_t Offset;
} fuzzBufferOffset_t;
#if defined(MBEDTLS_HAVE_TIME)
-mbedtls_time_t dummy_constant_time( mbedtls_time_t* time );
+mbedtls_time_t dummy_constant_time(mbedtls_time_t *time);
#endif
void dummy_init();
-int dummy_send( void *ctx, const unsigned char *buf, size_t len );
-int fuzz_recv( void *ctx, unsigned char *buf, size_t len );
-int dummy_random( void *p_rng, unsigned char *output, size_t output_len );
-int dummy_entropy( void *data, unsigned char *output, size_t len );
-int fuzz_recv_timeout( void *ctx, unsigned char *buf, size_t len,
- uint32_t timeout );
+int dummy_send(void *ctx, const unsigned char *buf, size_t len);
+int fuzz_recv(void *ctx, unsigned char *buf, size_t len);
+int dummy_random(void *p_rng, unsigned char *output, size_t output_len);
+int dummy_entropy(void *data, unsigned char *output, size_t len);
+int fuzz_recv_timeout(void *ctx, unsigned char *buf, size_t len,
+ uint32_t timeout);
diff --git a/programs/fuzz/fuzz_client.c b/programs/fuzz/fuzz_client.c
index ab2d134..56a5efe 100644
--- a/programs/fuzz/fuzz_client.c
+++ b/programs/fuzz/fuzz_client.c
@@ -32,7 +32,8 @@
#endif /* MBEDTLS_SSL_CLI_C && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C */
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
+{
#if defined(MBEDTLS_SSL_CLI_C) && \
defined(MBEDTLS_ENTROPY_C) && \
defined(MBEDTLS_CTR_DRBG_C)
@@ -48,10 +49,11 @@
if (initialized == 0) {
#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C)
- mbedtls_x509_crt_init( &cacert );
- if (mbedtls_x509_crt_parse( &cacert, (const unsigned char *) mbedtls_test_cas_pem,
- mbedtls_test_cas_pem_len ) != 0)
+ mbedtls_x509_crt_init(&cacert);
+ if (mbedtls_x509_crt_parse(&cacert, (const unsigned char *) mbedtls_test_cas_pem,
+ mbedtls_test_cas_pem_len) != 0) {
return 1;
+ }
#endif
alpn_list[0] = "HTTP";
@@ -71,98 +73,108 @@
//Avoid warnings if compile options imply no options
(void) options;
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- mbedtls_ctr_drbg_init( &ctr_drbg );
- mbedtls_entropy_init( &entropy );
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ mbedtls_entropy_init(&entropy);
- if( mbedtls_ctr_drbg_seed( &ctr_drbg, dummy_entropy, &entropy,
- (const unsigned char *) pers, strlen( pers ) ) != 0 )
+ if (mbedtls_ctr_drbg_seed(&ctr_drbg, dummy_entropy, &entropy,
+ (const unsigned char *) pers, strlen(pers)) != 0) {
goto exit;
+ }
- if( mbedtls_ssl_config_defaults( &conf,
+ if (mbedtls_ssl_config_defaults(&conf,
MBEDTLS_SSL_IS_CLIENT,
MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT ) != 0 )
+ MBEDTLS_SSL_PRESET_DEFAULT) != 0) {
goto exit;
+ }
#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
if (options & 2) {
- mbedtls_ssl_conf_psk( &conf, psk, sizeof( psk ),
- (const unsigned char *) psk_id, sizeof( psk_id ) - 1 );
+ mbedtls_ssl_conf_psk(&conf, psk, sizeof(psk),
+ (const unsigned char *) psk_id, sizeof(psk_id) - 1);
}
#endif
#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C)
if (options & 4) {
- mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL );
- mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_REQUIRED );
+ mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL);
+ mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_REQUIRED);
} else
#endif
{
- mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_NONE );
+ mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_NONE);
}
#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET)
- mbedtls_ssl_conf_extended_master_secret( &conf, (options & 0x10) ? MBEDTLS_SSL_EXTENDED_MS_DISABLED : MBEDTLS_SSL_EXTENDED_MS_ENABLED);
+ mbedtls_ssl_conf_extended_master_secret(&conf,
+ (options &
+ 0x10) ? MBEDTLS_SSL_EXTENDED_MS_DISABLED : MBEDTLS_SSL_EXTENDED_MS_ENABLED);
#endif
#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC)
- mbedtls_ssl_conf_encrypt_then_mac( &conf, (options & 0x20) ? MBEDTLS_SSL_ETM_DISABLED : MBEDTLS_SSL_ETM_ENABLED);
+ mbedtls_ssl_conf_encrypt_then_mac(&conf,
+ (options &
+ 0x20) ? MBEDTLS_SSL_ETM_DISABLED : MBEDTLS_SSL_ETM_ENABLED);
#endif
#if defined(MBEDTLS_SSL_RENEGOTIATION)
- mbedtls_ssl_conf_renegotiation( &conf, (options & 0x80) ? MBEDTLS_SSL_RENEGOTIATION_ENABLED : MBEDTLS_SSL_RENEGOTIATION_DISABLED );
+ mbedtls_ssl_conf_renegotiation(&conf,
+ (options &
+ 0x80) ? MBEDTLS_SSL_RENEGOTIATION_ENABLED : MBEDTLS_SSL_RENEGOTIATION_DISABLED);
#endif
#if defined(MBEDTLS_SSL_SESSION_TICKETS)
- mbedtls_ssl_conf_session_tickets( &conf, (options & 0x100) ? MBEDTLS_SSL_SESSION_TICKETS_DISABLED : MBEDTLS_SSL_SESSION_TICKETS_ENABLED );
+ mbedtls_ssl_conf_session_tickets(&conf,
+ (options &
+ 0x100) ? MBEDTLS_SSL_SESSION_TICKETS_DISABLED : MBEDTLS_SSL_SESSION_TICKETS_ENABLED);
#endif
#if defined(MBEDTLS_SSL_ALPN)
if (options & 0x200) {
- mbedtls_ssl_conf_alpn_protocols( &conf, alpn_list );
+ mbedtls_ssl_conf_alpn_protocols(&conf, alpn_list);
}
#endif
//There may be other options to add :
// mbedtls_ssl_conf_cert_profile, mbedtls_ssl_conf_sig_hashes
srand(1);
- mbedtls_ssl_conf_rng( &conf, dummy_random, &ctr_drbg );
+ mbedtls_ssl_conf_rng(&conf, dummy_random, &ctr_drbg);
- if( mbedtls_ssl_setup( &ssl, &conf ) != 0 )
+ if (mbedtls_ssl_setup(&ssl, &conf) != 0) {
goto exit;
+ }
#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C)
if ((options & 1) == 0) {
- if( mbedtls_ssl_set_hostname( &ssl, "localhost" ) != 0 )
+ if (mbedtls_ssl_set_hostname(&ssl, "localhost") != 0) {
goto exit;
+ }
}
#endif
biomemfuzz.Data = Data;
biomemfuzz.Size = Size-2;
biomemfuzz.Offset = 0;
- mbedtls_ssl_set_bio( &ssl, &biomemfuzz, dummy_send, fuzz_recv, NULL );
+ mbedtls_ssl_set_bio(&ssl, &biomemfuzz, dummy_send, fuzz_recv, NULL);
- ret = mbedtls_ssl_handshake( &ssl );
- if( ret == 0 )
- {
+ ret = mbedtls_ssl_handshake(&ssl);
+ if (ret == 0) {
//keep reading data from server until the end
- do
- {
- len = sizeof( buf ) - 1;
- ret = mbedtls_ssl_read( &ssl, buf, len );
+ do {
+ len = sizeof(buf) - 1;
+ ret = mbedtls_ssl_read(&ssl, buf, len);
- if( ret == MBEDTLS_ERR_SSL_WANT_READ )
+ if (ret == MBEDTLS_ERR_SSL_WANT_READ) {
continue;
- else if( ret <= 0 )
+ } else if (ret <= 0) {
//EOF or error
break;
- }
- while( 1 );
+ }
+ } while (1);
}
exit:
- mbedtls_entropy_free( &entropy );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_ssl_config_free( &conf );
- mbedtls_ssl_free( &ssl );
+ mbedtls_entropy_free(&entropy);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_ssl_config_free(&conf);
+ mbedtls_ssl_free(&ssl);
#else
(void) Data;
diff --git a/programs/fuzz/fuzz_dtlsclient.c b/programs/fuzz/fuzz_dtlsclient.c
index 16f6014..a58f6f4 100644
--- a/programs/fuzz/fuzz_dtlsclient.c
+++ b/programs/fuzz/fuzz_dtlsclient.c
@@ -26,7 +26,8 @@
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
+{
#if defined(MBEDTLS_SSL_PROTO_DTLS) && \
defined(MBEDTLS_SSL_CLI_C) && \
defined(MBEDTLS_ENTROPY_C) && \
@@ -44,77 +45,80 @@
if (initialized == 0) {
#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C)
- mbedtls_x509_crt_init( &cacert );
- if (mbedtls_x509_crt_parse( &cacert, (const unsigned char *) mbedtls_test_cas_pem,
- mbedtls_test_cas_pem_len ) != 0)
+ mbedtls_x509_crt_init(&cacert);
+ if (mbedtls_x509_crt_parse(&cacert, (const unsigned char *) mbedtls_test_cas_pem,
+ mbedtls_test_cas_pem_len) != 0) {
return 1;
+ }
#endif
dummy_init();
initialized = 1;
}
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- mbedtls_ctr_drbg_init( &ctr_drbg );
- mbedtls_entropy_init( &entropy );
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ mbedtls_entropy_init(&entropy);
srand(1);
- if( mbedtls_ctr_drbg_seed( &ctr_drbg, dummy_entropy, &entropy,
- (const unsigned char *) pers, strlen( pers ) ) != 0 )
+ if (mbedtls_ctr_drbg_seed(&ctr_drbg, dummy_entropy, &entropy,
+ (const unsigned char *) pers, strlen(pers)) != 0) {
goto exit;
+ }
- if( mbedtls_ssl_config_defaults( &conf,
+ if (mbedtls_ssl_config_defaults(&conf,
MBEDTLS_SSL_IS_CLIENT,
MBEDTLS_SSL_TRANSPORT_DATAGRAM,
- MBEDTLS_SSL_PRESET_DEFAULT ) != 0 )
+ MBEDTLS_SSL_PRESET_DEFAULT) != 0) {
goto exit;
+ }
#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C)
- mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL );
+ mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL);
#endif
- mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_NONE );
- mbedtls_ssl_conf_rng( &conf, dummy_random, &ctr_drbg );
+ mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_NONE);
+ mbedtls_ssl_conf_rng(&conf, dummy_random, &ctr_drbg);
- if( mbedtls_ssl_setup( &ssl, &conf ) != 0 )
+ if (mbedtls_ssl_setup(&ssl, &conf) != 0) {
goto exit;
+ }
- mbedtls_ssl_set_timer_cb( &ssl, &timer, mbedtls_timing_set_delay,
- mbedtls_timing_get_delay );
+ mbedtls_ssl_set_timer_cb(&ssl, &timer, mbedtls_timing_set_delay,
+ mbedtls_timing_get_delay);
#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C)
- if( mbedtls_ssl_set_hostname( &ssl, "localhost" ) != 0 )
+ if (mbedtls_ssl_set_hostname(&ssl, "localhost") != 0) {
goto exit;
+ }
#endif
biomemfuzz.Data = Data;
biomemfuzz.Size = Size;
biomemfuzz.Offset = 0;
- mbedtls_ssl_set_bio( &ssl, &biomemfuzz, dummy_send, fuzz_recv, fuzz_recv_timeout );
+ mbedtls_ssl_set_bio(&ssl, &biomemfuzz, dummy_send, fuzz_recv, fuzz_recv_timeout);
- ret = mbedtls_ssl_handshake( &ssl );
- if( ret == 0 )
- {
+ ret = mbedtls_ssl_handshake(&ssl);
+ if (ret == 0) {
//keep reading data from server until the end
- do
- {
- len = sizeof( buf ) - 1;
- ret = mbedtls_ssl_read( &ssl, buf, len );
+ do {
+ len = sizeof(buf) - 1;
+ ret = mbedtls_ssl_read(&ssl, buf, len);
- if( ret == MBEDTLS_ERR_SSL_WANT_READ )
+ if (ret == MBEDTLS_ERR_SSL_WANT_READ) {
continue;
- else if( ret <= 0 )
+ } else if (ret <= 0) {
//EOF or error
break;
- }
- while( 1 );
+ }
+ } while (1);
}
exit:
- mbedtls_entropy_free( &entropy );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_ssl_config_free( &conf );
- mbedtls_ssl_free( &ssl );
+ mbedtls_entropy_free(&entropy);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_ssl_config_free(&conf);
+ mbedtls_ssl_free(&ssl);
#else
(void) Data;
diff --git a/programs/fuzz/fuzz_dtlsserver.c b/programs/fuzz/fuzz_dtlsserver.c
index 17caab2..0078385 100644
--- a/programs/fuzz/fuzz_dtlsserver.c
+++ b/programs/fuzz/fuzz_dtlsserver.c
@@ -17,10 +17,10 @@
defined(MBEDTLS_ENTROPY_C) && \
defined(MBEDTLS_CTR_DRBG_C) && \
defined(MBEDTLS_TIMING_C) && \
- ( defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \
- defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) )
+ (defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \
+ defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
const char *pers = "fuzz_dtlsserver";
-const unsigned char client_ip[4] = {0x7F, 0, 0, 1};
+const unsigned char client_ip[4] = { 0x7F, 0, 0, 1 };
static int initialized = 0;
#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C)
static mbedtls_x509_crt srvcert;
@@ -29,14 +29,15 @@
#endif
#endif // MBEDTLS_SSL_PROTO_DTLS
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
+{
#if defined(MBEDTLS_SSL_PROTO_DTLS) && \
defined(MBEDTLS_SSL_SRV_C) && \
defined(MBEDTLS_ENTROPY_C) && \
defined(MBEDTLS_CTR_DRBG_C) && \
defined(MBEDTLS_TIMING_C) && \
- ( defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \
- defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) )
+ (defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \
+ defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
int ret;
size_t len;
mbedtls_ssl_context ssl;
@@ -48,104 +49,115 @@
unsigned char buf[4096];
fuzzBufferOffset_t biomemfuzz;
- mbedtls_ctr_drbg_init( &ctr_drbg );
- mbedtls_entropy_init( &entropy );
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ mbedtls_entropy_init(&entropy);
- if( mbedtls_ctr_drbg_seed( &ctr_drbg, dummy_entropy, &entropy,
- ( const unsigned char * ) pers, strlen( pers ) ) != 0 )
+ if (mbedtls_ctr_drbg_seed(&ctr_drbg, dummy_entropy, &entropy,
+ (const unsigned char *) pers, strlen(pers)) != 0) {
goto exit;
+ }
if (initialized == 0) {
#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C)
- mbedtls_x509_crt_init( &srvcert );
- mbedtls_pk_init( &pkey );
- if (mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_srv_crt,
- mbedtls_test_srv_crt_len ) != 0)
+ mbedtls_x509_crt_init(&srvcert);
+ mbedtls_pk_init(&pkey);
+ if (mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_srv_crt,
+ mbedtls_test_srv_crt_len) != 0) {
return 1;
- if (mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_cas_pem,
- mbedtls_test_cas_pem_len ) != 0)
+ }
+ if (mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_cas_pem,
+ mbedtls_test_cas_pem_len) != 0) {
return 1;
- if (mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_srv_key,
+ }
+ if (mbedtls_pk_parse_key(&pkey, (const unsigned char *) mbedtls_test_srv_key,
mbedtls_test_srv_key_len, NULL, 0,
- dummy_random, &ctr_drbg ) != 0)
+ dummy_random, &ctr_drbg) != 0) {
return 1;
+ }
#endif
dummy_init();
initialized = 1;
}
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- mbedtls_ssl_cookie_init( &cookie_ctx );
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
+ mbedtls_ssl_cookie_init(&cookie_ctx);
- if( mbedtls_ssl_config_defaults( &conf,
+ if (mbedtls_ssl_config_defaults(&conf,
MBEDTLS_SSL_IS_SERVER,
MBEDTLS_SSL_TRANSPORT_DATAGRAM,
- MBEDTLS_SSL_PRESET_DEFAULT ) != 0 )
+ MBEDTLS_SSL_PRESET_DEFAULT) != 0) {
goto exit;
+ }
srand(1);
- mbedtls_ssl_conf_rng( &conf, dummy_random, &ctr_drbg );
+ mbedtls_ssl_conf_rng(&conf, dummy_random, &ctr_drbg);
#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C)
- mbedtls_ssl_conf_ca_chain( &conf, srvcert.next, NULL );
- if( mbedtls_ssl_conf_own_cert( &conf, &srvcert, &pkey ) != 0 )
+ mbedtls_ssl_conf_ca_chain(&conf, srvcert.next, NULL);
+ if (mbedtls_ssl_conf_own_cert(&conf, &srvcert, &pkey) != 0) {
goto exit;
+ }
#endif
- if( mbedtls_ssl_cookie_setup( &cookie_ctx, dummy_random, &ctr_drbg ) != 0 )
+ if (mbedtls_ssl_cookie_setup(&cookie_ctx, dummy_random, &ctr_drbg) != 0) {
goto exit;
+ }
- mbedtls_ssl_conf_dtls_cookies( &conf, mbedtls_ssl_cookie_write, mbedtls_ssl_cookie_check, &cookie_ctx );
+ mbedtls_ssl_conf_dtls_cookies(&conf,
+ mbedtls_ssl_cookie_write,
+ mbedtls_ssl_cookie_check,
+ &cookie_ctx);
- if( mbedtls_ssl_setup( &ssl, &conf ) != 0 )
+ if (mbedtls_ssl_setup(&ssl, &conf) != 0) {
goto exit;
+ }
- mbedtls_ssl_set_timer_cb( &ssl, &timer, mbedtls_timing_set_delay,
- mbedtls_timing_get_delay );
+ mbedtls_ssl_set_timer_cb(&ssl, &timer, mbedtls_timing_set_delay,
+ mbedtls_timing_get_delay);
biomemfuzz.Data = Data;
biomemfuzz.Size = Size;
biomemfuzz.Offset = 0;
- mbedtls_ssl_set_bio( &ssl, &biomemfuzz, dummy_send, fuzz_recv, fuzz_recv_timeout );
- if( mbedtls_ssl_set_client_transport_id( &ssl, client_ip, sizeof(client_ip) ) != 0 )
+ mbedtls_ssl_set_bio(&ssl, &biomemfuzz, dummy_send, fuzz_recv, fuzz_recv_timeout);
+ if (mbedtls_ssl_set_client_transport_id(&ssl, client_ip, sizeof(client_ip)) != 0) {
goto exit;
+ }
- ret = mbedtls_ssl_handshake( &ssl );
+ ret = mbedtls_ssl_handshake(&ssl);
if (ret == MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED) {
biomemfuzz.Offset = ssl.next_record_offset;
- mbedtls_ssl_session_reset( &ssl );
- mbedtls_ssl_set_bio( &ssl, &biomemfuzz, dummy_send, fuzz_recv, fuzz_recv_timeout );
- if( mbedtls_ssl_set_client_transport_id( &ssl, client_ip, sizeof(client_ip) ) != 0 )
+ mbedtls_ssl_session_reset(&ssl);
+ mbedtls_ssl_set_bio(&ssl, &biomemfuzz, dummy_send, fuzz_recv, fuzz_recv_timeout);
+ if (mbedtls_ssl_set_client_transport_id(&ssl, client_ip, sizeof(client_ip)) != 0) {
goto exit;
+ }
- ret = mbedtls_ssl_handshake( &ssl );
+ ret = mbedtls_ssl_handshake(&ssl);
- if( ret == 0 )
- {
+ if (ret == 0) {
//keep reading data from server until the end
- do
- {
- len = sizeof( buf ) - 1;
- ret = mbedtls_ssl_read( &ssl, buf, len );
- if( ret == MBEDTLS_ERR_SSL_WANT_READ )
+ do {
+ len = sizeof(buf) - 1;
+ ret = mbedtls_ssl_read(&ssl, buf, len);
+ if (ret == MBEDTLS_ERR_SSL_WANT_READ) {
continue;
- else if( ret <= 0 )
+ } else if (ret <= 0) {
//EOF or error
break;
- }
- while( 1 );
+ }
+ } while (1);
}
}
exit:
- mbedtls_ssl_cookie_free( &cookie_ctx );
- mbedtls_entropy_free( &entropy );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_ssl_config_free( &conf );
- mbedtls_ssl_free( &ssl );
+ mbedtls_ssl_cookie_free(&cookie_ctx);
+ mbedtls_entropy_free(&entropy);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_ssl_config_free(&conf);
+ mbedtls_ssl_free(&ssl);
#else
(void) Data;
diff --git a/programs/fuzz/fuzz_pkcs7.c b/programs/fuzz/fuzz_pkcs7.c
index 960007d..2056913 100644
--- a/programs/fuzz/fuzz_pkcs7.c
+++ b/programs/fuzz/fuzz_pkcs7.c
@@ -1,15 +1,16 @@
#include <stdint.h>
#include "mbedtls/pkcs7.h"
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
+{
#ifdef MBEDTLS_PKCS7_C
mbedtls_pkcs7 pkcs7;
- mbedtls_pkcs7_init( &pkcs7 );
+ mbedtls_pkcs7_init(&pkcs7);
- mbedtls_pkcs7_parse_der( &pkcs7, Data, Size );
+ mbedtls_pkcs7_parse_der(&pkcs7, Data, Size);
- mbedtls_pkcs7_free( &pkcs7 );
+ mbedtls_pkcs7_free(&pkcs7);
#else
(void) Data;
(void) Size;
diff --git a/programs/fuzz/fuzz_privkey.c b/programs/fuzz/fuzz_privkey.c
index 81ea1bc..39c23e2 100644
--- a/programs/fuzz/fuzz_privkey.c
+++ b/programs/fuzz/fuzz_privkey.c
@@ -15,7 +15,8 @@
const char *pers = "fuzz_privkey";
#endif // MBEDTLS_PK_PARSE_C && MBEDTLS_CTR_DRBG_C && MBEDTLS_ENTROPY_C
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
+{
#if defined(MBEDTLS_PK_PARSE_C) && defined(MBEDTLS_CTR_DRBG_C) && defined(MBEDTLS_ENTROPY_C)
int ret;
mbedtls_pk_context pk;
@@ -27,64 +28,62 @@
Size = MAX_LEN;
}
- mbedtls_ctr_drbg_init( &ctr_drbg );
- mbedtls_entropy_init( &entropy );
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ mbedtls_entropy_init(&entropy);
- if( mbedtls_ctr_drbg_seed( &ctr_drbg, dummy_entropy, &entropy,
- ( const unsigned char * ) pers, strlen( pers ) ) != 0 )
+ if (mbedtls_ctr_drbg_seed(&ctr_drbg, dummy_entropy, &entropy,
+ (const unsigned char *) pers, strlen(pers)) != 0) {
return 1;
+ }
- mbedtls_pk_init( &pk );
- ret = mbedtls_pk_parse_key( &pk, Data, Size, NULL, 0,
- dummy_random, &ctr_drbg );
+ mbedtls_pk_init(&pk);
+ ret = mbedtls_pk_parse_key(&pk, Data, Size, NULL, 0,
+ dummy_random, &ctr_drbg);
if (ret == 0) {
#if defined(MBEDTLS_RSA_C)
- if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_RSA )
- {
+ if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_RSA) {
mbedtls_mpi N, P, Q, D, E, DP, DQ, QP;
mbedtls_rsa_context *rsa;
- mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q );
- mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP );
- mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP );
+ mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q);
+ mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP);
+ mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP);
- rsa = mbedtls_pk_rsa( pk );
- if ( mbedtls_rsa_export( rsa, &N, &P, &Q, &D, &E ) != 0 ) {
+ rsa = mbedtls_pk_rsa(pk);
+ if (mbedtls_rsa_export(rsa, &N, &P, &Q, &D, &E) != 0) {
abort();
}
- if ( mbedtls_rsa_export_crt( rsa, &DP, &DQ, &QP ) != 0 ) {
+ if (mbedtls_rsa_export_crt(rsa, &DP, &DQ, &QP) != 0) {
abort();
}
- mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q );
- mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP );
- mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP );
- }
- else
+ mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q);
+ mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP);
+ mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP);
+ } else
#endif
#if defined(MBEDTLS_ECP_C)
- if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_ECKEY ||
- mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_ECKEY_DH )
- {
- mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( pk );
+ if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_ECKEY ||
+ mbedtls_pk_get_type(&pk) == MBEDTLS_PK_ECKEY_DH) {
+ mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(pk);
mbedtls_ecp_group_id grp_id = ecp->grp.id;
const mbedtls_ecp_curve_info *curve_info =
- mbedtls_ecp_curve_info_from_grp_id( grp_id );
+ mbedtls_ecp_curve_info_from_grp_id(grp_id);
/* If the curve is not supported, the key should not have been
* accepted. */
- if( curve_info == NULL )
- abort( );
- }
- else
+ if (curve_info == NULL) {
+ abort();
+ }
+ } else
#endif
{
/* The key is valid but is not of a supported type.
* This should not happen. */
- abort( );
+ abort();
}
}
- mbedtls_pk_free( &pk );
+ mbedtls_pk_free(&pk);
#else
(void) Data;
(void) Size;
diff --git a/programs/fuzz/fuzz_pubkey.c b/programs/fuzz/fuzz_pubkey.c
index 655d5d6..7f5e4aa 100644
--- a/programs/fuzz/fuzz_pubkey.c
+++ b/programs/fuzz/fuzz_pubkey.c
@@ -4,70 +4,69 @@
#include <stdlib.h>
#include "mbedtls/pk.h"
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
+{
#ifdef MBEDTLS_PK_PARSE_C
int ret;
mbedtls_pk_context pk;
- mbedtls_pk_init( &pk );
- ret = mbedtls_pk_parse_public_key( &pk, Data, Size );
+ mbedtls_pk_init(&pk);
+ ret = mbedtls_pk_parse_public_key(&pk, Data, Size);
if (ret == 0) {
#if defined(MBEDTLS_RSA_C)
- if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_RSA )
- {
+ if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_RSA) {
mbedtls_mpi N, P, Q, D, E, DP, DQ, QP;
mbedtls_rsa_context *rsa;
- mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q );
- mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP );
- mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP );
+ mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q);
+ mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP);
+ mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP);
- rsa = mbedtls_pk_rsa( pk );
- if ( mbedtls_rsa_export( rsa, &N, NULL, NULL, NULL, &E ) != 0 ) {
+ rsa = mbedtls_pk_rsa(pk);
+ if (mbedtls_rsa_export(rsa, &N, NULL, NULL, NULL, &E) != 0) {
abort();
}
- if ( mbedtls_rsa_export( rsa, &N, &P, &Q, &D, &E ) != MBEDTLS_ERR_RSA_BAD_INPUT_DATA ) {
+ if (mbedtls_rsa_export(rsa, &N, &P, &Q, &D, &E) != MBEDTLS_ERR_RSA_BAD_INPUT_DATA) {
abort();
}
- if ( mbedtls_rsa_export_crt( rsa, &DP, &DQ, &QP ) != MBEDTLS_ERR_RSA_BAD_INPUT_DATA ) {
+ if (mbedtls_rsa_export_crt(rsa, &DP, &DQ, &QP) != MBEDTLS_ERR_RSA_BAD_INPUT_DATA) {
abort();
}
- mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q );
- mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP );
- mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP );
+ mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q);
+ mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP);
+ mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP);
- }
- else
+ } else
#endif
#if defined(MBEDTLS_ECP_C)
- if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_ECKEY ||
- mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_ECKEY_DH )
- {
- mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( pk );
+ if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_ECKEY ||
+ mbedtls_pk_get_type(&pk) == MBEDTLS_PK_ECKEY_DH) {
+ mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(pk);
mbedtls_ecp_group_id grp_id = ecp->grp.id;
const mbedtls_ecp_curve_info *curve_info =
- mbedtls_ecp_curve_info_from_grp_id( grp_id );
+ mbedtls_ecp_curve_info_from_grp_id(grp_id);
/* If the curve is not supported, the key should not have been
* accepted. */
- if( curve_info == NULL )
- abort( );
+ if (curve_info == NULL) {
+ abort();
+ }
/* It's a public key, so the private value should not have
* been changed from its initialization to 0. */
- if( mbedtls_mpi_cmp_int( &ecp->d, 0 ) != 0 )
- abort( );
- }
- else
+ if (mbedtls_mpi_cmp_int(&ecp->d, 0) != 0) {
+ abort();
+ }
+ } else
#endif
{
/* The key is valid but is not of a supported type.
* This should not happen. */
- abort( );
+ abort();
}
}
- mbedtls_pk_free( &pk );
+ mbedtls_pk_free(&pk);
#else
(void) Data;
(void) Size;
diff --git a/programs/fuzz/fuzz_server.c b/programs/fuzz/fuzz_server.c
index 95f43b8..cd021e1 100644
--- a/programs/fuzz/fuzz_server.c
+++ b/programs/fuzz/fuzz_server.c
@@ -32,7 +32,8 @@
#endif // MBEDTLS_SSL_SRV_C && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
+{
#if defined(MBEDTLS_SSL_SRV_C) && \
defined(MBEDTLS_ENTROPY_C) && \
defined(MBEDTLS_CTR_DRBG_C)
@@ -55,28 +56,32 @@
}
options = Data[Size - 1];
- mbedtls_ctr_drbg_init( &ctr_drbg );
- mbedtls_entropy_init( &entropy );
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ mbedtls_entropy_init(&entropy);
- if( mbedtls_ctr_drbg_seed( &ctr_drbg, dummy_entropy, &entropy,
- ( const unsigned char * ) pers, strlen( pers ) ) != 0 )
+ if (mbedtls_ctr_drbg_seed(&ctr_drbg, dummy_entropy, &entropy,
+ (const unsigned char *) pers, strlen(pers)) != 0) {
return 1;
+ }
if (initialized == 0) {
#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C)
- mbedtls_x509_crt_init( &srvcert );
- mbedtls_pk_init( &pkey );
- if (mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_srv_crt,
- mbedtls_test_srv_crt_len ) != 0)
+ mbedtls_x509_crt_init(&srvcert);
+ mbedtls_pk_init(&pkey);
+ if (mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_srv_crt,
+ mbedtls_test_srv_crt_len) != 0) {
return 1;
- if (mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_cas_pem,
- mbedtls_test_cas_pem_len ) != 0)
+ }
+ if (mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_cas_pem,
+ mbedtls_test_cas_pem_len) != 0) {
return 1;
- if (mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_srv_key,
+ }
+ if (mbedtls_pk_parse_key(&pkey, (const unsigned char *) mbedtls_test_srv_key,
mbedtls_test_srv_key_len, NULL, 0,
- dummy_random, &ctr_drbg ) != 0)
+ dummy_random, &ctr_drbg) != 0) {
return 1;
+ }
#endif
alpn_list[0] = "HTTP";
@@ -87,99 +92,108 @@
initialized = 1;
}
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C)
- mbedtls_ssl_ticket_init( &ticket_ctx );
+ mbedtls_ssl_ticket_init(&ticket_ctx);
#endif
- if( mbedtls_ssl_config_defaults( &conf,
+ if (mbedtls_ssl_config_defaults(&conf,
MBEDTLS_SSL_IS_SERVER,
MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT ) != 0 )
+ MBEDTLS_SSL_PRESET_DEFAULT) != 0) {
goto exit;
+ }
srand(1);
- mbedtls_ssl_conf_rng( &conf, dummy_random, &ctr_drbg );
+ mbedtls_ssl_conf_rng(&conf, dummy_random, &ctr_drbg);
#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C)
- mbedtls_ssl_conf_ca_chain( &conf, srvcert.next, NULL );
- if( mbedtls_ssl_conf_own_cert( &conf, &srvcert, &pkey ) != 0 )
+ mbedtls_ssl_conf_ca_chain(&conf, srvcert.next, NULL);
+ if (mbedtls_ssl_conf_own_cert(&conf, &srvcert, &pkey) != 0) {
goto exit;
+ }
#endif
- mbedtls_ssl_conf_cert_req_ca_list( &conf, (options & 0x1) ? MBEDTLS_SSL_CERT_REQ_CA_LIST_ENABLED : MBEDTLS_SSL_CERT_REQ_CA_LIST_DISABLED );
+ mbedtls_ssl_conf_cert_req_ca_list(&conf,
+ (options &
+ 0x1) ? MBEDTLS_SSL_CERT_REQ_CA_LIST_ENABLED : MBEDTLS_SSL_CERT_REQ_CA_LIST_DISABLED);
#if defined(MBEDTLS_SSL_ALPN)
if (options & 0x2) {
- mbedtls_ssl_conf_alpn_protocols( &conf, alpn_list );
+ mbedtls_ssl_conf_alpn_protocols(&conf, alpn_list);
}
#endif
#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C)
- if( options & 0x4 )
- {
- if( mbedtls_ssl_ticket_setup( &ticket_ctx,
+ if (options & 0x4) {
+ if (mbedtls_ssl_ticket_setup(&ticket_ctx,
dummy_random, &ctr_drbg,
MBEDTLS_CIPHER_AES_256_GCM,
- 86400 ) != 0 )
+ 86400) != 0) {
goto exit;
+ }
- mbedtls_ssl_conf_session_tickets_cb( &conf,
+ mbedtls_ssl_conf_session_tickets_cb(&conf,
mbedtls_ssl_ticket_write,
mbedtls_ssl_ticket_parse,
- &ticket_ctx );
+ &ticket_ctx);
}
#endif
#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET)
- mbedtls_ssl_conf_extended_master_secret( &conf, (options & 0x10) ? MBEDTLS_SSL_EXTENDED_MS_DISABLED : MBEDTLS_SSL_EXTENDED_MS_ENABLED);
+ mbedtls_ssl_conf_extended_master_secret(&conf,
+ (options &
+ 0x10) ? MBEDTLS_SSL_EXTENDED_MS_DISABLED : MBEDTLS_SSL_EXTENDED_MS_ENABLED);
#endif
#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC)
- mbedtls_ssl_conf_encrypt_then_mac( &conf, (options & 0x20) ? MBEDTLS_SSL_ETM_ENABLED : MBEDTLS_SSL_ETM_DISABLED);
+ mbedtls_ssl_conf_encrypt_then_mac(&conf,
+ (options &
+ 0x20) ? MBEDTLS_SSL_ETM_ENABLED : MBEDTLS_SSL_ETM_DISABLED);
#endif
#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
if (options & 0x40) {
- mbedtls_ssl_conf_psk( &conf, psk, sizeof( psk ),
- (const unsigned char *) psk_id, sizeof( psk_id ) - 1 );
+ mbedtls_ssl_conf_psk(&conf, psk, sizeof(psk),
+ (const unsigned char *) psk_id, sizeof(psk_id) - 1);
}
#endif
#if defined(MBEDTLS_SSL_RENEGOTIATION)
- mbedtls_ssl_conf_renegotiation( &conf, (options & 0x80) ? MBEDTLS_SSL_RENEGOTIATION_ENABLED : MBEDTLS_SSL_RENEGOTIATION_DISABLED );
+ mbedtls_ssl_conf_renegotiation(&conf,
+ (options &
+ 0x80) ? MBEDTLS_SSL_RENEGOTIATION_ENABLED : MBEDTLS_SSL_RENEGOTIATION_DISABLED);
#endif
- if( mbedtls_ssl_setup( &ssl, &conf ) != 0 )
+ if (mbedtls_ssl_setup(&ssl, &conf) != 0) {
goto exit;
+ }
biomemfuzz.Data = Data;
biomemfuzz.Size = Size-1;
biomemfuzz.Offset = 0;
- mbedtls_ssl_set_bio( &ssl, &biomemfuzz, dummy_send, fuzz_recv, NULL );
+ mbedtls_ssl_set_bio(&ssl, &biomemfuzz, dummy_send, fuzz_recv, NULL);
- mbedtls_ssl_session_reset( &ssl );
- ret = mbedtls_ssl_handshake( &ssl );
- if( ret == 0 )
- {
+ mbedtls_ssl_session_reset(&ssl);
+ ret = mbedtls_ssl_handshake(&ssl);
+ if (ret == 0) {
//keep reading data from server until the end
- do
- {
- len = sizeof( buf ) - 1;
- ret = mbedtls_ssl_read( &ssl, buf, len );
+ do {
+ len = sizeof(buf) - 1;
+ ret = mbedtls_ssl_read(&ssl, buf, len);
- if( ret == MBEDTLS_ERR_SSL_WANT_READ )
+ if (ret == MBEDTLS_ERR_SSL_WANT_READ) {
continue;
- else if( ret <= 0 )
+ } else if (ret <= 0) {
//EOF or error
break;
- }
- while( 1 );
+ }
+ } while (1);
}
exit:
#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C)
- mbedtls_ssl_ticket_free( &ticket_ctx );
+ mbedtls_ssl_ticket_free(&ticket_ctx);
#endif
- mbedtls_entropy_free( &entropy );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_ssl_config_free( &conf );
- mbedtls_ssl_free( &ssl );
+ mbedtls_entropy_free(&entropy);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_ssl_config_free(&conf);
+ mbedtls_ssl_free(&ssl);
#else
(void) Data;
diff --git a/programs/fuzz/fuzz_x509crl.c b/programs/fuzz/fuzz_x509crl.c
index 65fc37f..6ff0c05 100644
--- a/programs/fuzz/fuzz_x509crl.c
+++ b/programs/fuzz/fuzz_x509crl.c
@@ -3,23 +3,24 @@
#include <stdint.h>
#include "mbedtls/x509_crl.h"
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
+{
#ifdef MBEDTLS_X509_CRL_PARSE_C
int ret;
mbedtls_x509_crl crl;
unsigned char buf[4096];
- mbedtls_x509_crl_init( &crl );
- ret = mbedtls_x509_crl_parse( &crl, Data, Size );
+ mbedtls_x509_crl_init(&crl);
+ ret = mbedtls_x509_crl_parse(&crl, Data, Size);
#if !defined(MBEDTLS_X509_REMOVE_INFO)
if (ret == 0) {
- ret = mbedtls_x509_crl_info( (char *) buf, sizeof( buf ) - 1, " ", &crl );
+ ret = mbedtls_x509_crl_info((char *) buf, sizeof(buf) - 1, " ", &crl);
}
#else
((void) ret);
((void) buf);
#endif /* !MBEDTLS_X509_REMOVE_INFO */
- mbedtls_x509_crl_free( &crl );
+ mbedtls_x509_crl_free(&crl);
#else
(void) Data;
(void) Size;
diff --git a/programs/fuzz/fuzz_x509crt.c b/programs/fuzz/fuzz_x509crt.c
index bd8bdff..858c1ff 100644
--- a/programs/fuzz/fuzz_x509crt.c
+++ b/programs/fuzz/fuzz_x509crt.c
@@ -3,23 +3,24 @@
#include <stdint.h>
#include "mbedtls/x509_crt.h"
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
+{
#ifdef MBEDTLS_X509_CRT_PARSE_C
int ret;
mbedtls_x509_crt crt;
unsigned char buf[4096];
- mbedtls_x509_crt_init( &crt );
- ret = mbedtls_x509_crt_parse( &crt, Data, Size );
+ mbedtls_x509_crt_init(&crt);
+ ret = mbedtls_x509_crt_parse(&crt, Data, Size);
#if !defined(MBEDTLS_X509_REMOVE_INFO)
if (ret == 0) {
- ret = mbedtls_x509_crt_info( (char *) buf, sizeof( buf ) - 1, " ", &crt );
+ ret = mbedtls_x509_crt_info((char *) buf, sizeof(buf) - 1, " ", &crt);
}
#else
((void) ret);
((void) buf);
#endif /* !MBEDTLS_X509_REMOVE_INFO */
- mbedtls_x509_crt_free( &crt );
+ mbedtls_x509_crt_free(&crt);
#else
(void) Data;
(void) Size;
diff --git a/programs/fuzz/fuzz_x509csr.c b/programs/fuzz/fuzz_x509csr.c
index a9205be..39fb4cb 100644
--- a/programs/fuzz/fuzz_x509csr.c
+++ b/programs/fuzz/fuzz_x509csr.c
@@ -3,23 +3,24 @@
#include <stdint.h>
#include "mbedtls/x509_csr.h"
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size)
+{
#ifdef MBEDTLS_X509_CSR_PARSE_C
int ret;
mbedtls_x509_csr csr;
unsigned char buf[4096];
- mbedtls_x509_csr_init( &csr );
- ret = mbedtls_x509_csr_parse( &csr, Data, Size );
+ mbedtls_x509_csr_init(&csr);
+ ret = mbedtls_x509_csr_parse(&csr, Data, Size);
#if !defined(MBEDTLS_X509_REMOVE_INFO)
if (ret == 0) {
- ret = mbedtls_x509_csr_info( (char *) buf, sizeof( buf ) - 1, " ", &csr );
+ ret = mbedtls_x509_csr_info((char *) buf, sizeof(buf) - 1, " ", &csr);
}
#else
((void) ret);
((void) buf);
#endif /* !MBEDTLS_X509_REMOVE_INFO */
- mbedtls_x509_csr_free( &csr );
+ mbedtls_x509_csr_free(&csr);
#else
(void) Data;
(void) Size;
diff --git a/programs/fuzz/onefile.c b/programs/fuzz/onefile.c
index 730be36..4f80cdc 100644
--- a/programs/fuzz/onefile.c
+++ b/programs/fuzz/onefile.c
@@ -9,9 +9,9 @@
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size);
-int main(int argc, char** argv)
+int main(int argc, char **argv)
{
- FILE * fp;
+ FILE *fp;
uint8_t *Data;
size_t Size;
@@ -53,4 +53,3 @@
fclose(fp);
return 0;
}
-
diff --git a/programs/hash/generic_sum.c b/programs/hash/generic_sum.c
index 6f49e79..e2e49e3 100644
--- a/programs/hash/generic_sum.c
+++ b/programs/hash/generic_sum.c
@@ -29,43 +29,47 @@
#endif
#if !defined(MBEDTLS_MD_C) || !defined(MBEDTLS_FS_IO)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_MD_C and/or MBEDTLS_FS_IO not defined.\n");
- mbedtls_exit( 0 );
+ mbedtls_exit(0);
}
#else
-static int generic_wrapper( const mbedtls_md_info_t *md_info, char *filename, unsigned char *sum )
+static int generic_wrapper(const mbedtls_md_info_t *md_info, char *filename, unsigned char *sum)
{
- int ret = mbedtls_md_file( md_info, filename, sum );
+ int ret = mbedtls_md_file(md_info, filename, sum);
- if( ret == 1 )
- mbedtls_fprintf( stderr, "failed to open: %s\n", filename );
+ if (ret == 1) {
+ mbedtls_fprintf(stderr, "failed to open: %s\n", filename);
+ }
- if( ret == 2 )
- mbedtls_fprintf( stderr, "failed to read: %s\n", filename );
+ if (ret == 2) {
+ mbedtls_fprintf(stderr, "failed to read: %s\n", filename);
+ }
- return( ret );
+ return ret;
}
-static int generic_print( const mbedtls_md_info_t *md_info, char *filename )
+static int generic_print(const mbedtls_md_info_t *md_info, char *filename)
{
int i;
unsigned char sum[MBEDTLS_MD_MAX_SIZE];
- if( generic_wrapper( md_info, filename, sum ) != 0 )
- return( 1 );
+ if (generic_wrapper(md_info, filename, sum) != 0) {
+ return 1;
+ }
- for( i = 0; i < mbedtls_md_get_size( md_info ); i++ )
- mbedtls_printf( "%02x", sum[i] );
+ for (i = 0; i < mbedtls_md_get_size(md_info); i++) {
+ mbedtls_printf("%02x", sum[i]);
+ }
- mbedtls_printf( " %s\n", filename );
- return( 0 );
+ mbedtls_printf(" %s\n", filename);
+ return 0;
}
-static int generic_check( const mbedtls_md_info_t *md_info, char *filename )
+static int generic_check(const mbedtls_md_info_t *md_info, char *filename)
{
int i;
size_t n;
@@ -81,141 +85,137 @@
char buf[MBEDTLS_MD_MAX_SIZE * 2 + 1];
#endif
- if( ( f = fopen( filename, "rb" ) ) == NULL )
- {
- mbedtls_printf( "failed to open: %s\n", filename );
- return( 1 );
+ if ((f = fopen(filename, "rb")) == NULL) {
+ mbedtls_printf("failed to open: %s\n", filename);
+ return 1;
}
nb_err1 = nb_err2 = 0;
nb_tot1 = nb_tot2 = 0;
- memset( line, 0, sizeof( line ) );
+ memset(line, 0, sizeof(line));
- n = sizeof( line );
+ n = sizeof(line);
- while( fgets( line, (int) n - 1, f ) != NULL )
- {
- n = strlen( line );
+ while (fgets(line, (int) n - 1, f) != NULL) {
+ n = strlen(line);
- if( n < (size_t) 2 * mbedtls_md_get_size( md_info ) + 4 )
- {
- mbedtls_printf("No '%s' hash found on line.\n", mbedtls_md_get_name( md_info ));
+ if (n < (size_t) 2 * mbedtls_md_get_size(md_info) + 4) {
+ mbedtls_printf("No '%s' hash found on line.\n", mbedtls_md_get_name(md_info));
continue;
}
- if( line[2 * mbedtls_md_get_size( md_info )] != ' ' || line[2 * mbedtls_md_get_size( md_info ) + 1] != ' ' )
- {
- mbedtls_printf("No '%s' hash found on line.\n", mbedtls_md_get_name( md_info ));
+ if (line[2 * mbedtls_md_get_size(md_info)] != ' ' ||
+ line[2 * mbedtls_md_get_size(md_info) + 1] != ' ') {
+ mbedtls_printf("No '%s' hash found on line.\n", mbedtls_md_get_name(md_info));
continue;
}
- if( line[n - 1] == '\n' ) { n--; line[n] = '\0'; }
- if( line[n - 1] == '\r' ) { n--; line[n] = '\0'; }
+ if (line[n - 1] == '\n') {
+ n--; line[n] = '\0';
+ }
+ if (line[n - 1] == '\r') {
+ n--; line[n] = '\0';
+ }
nb_tot1++;
- if( generic_wrapper( md_info, line + 2 + 2 * mbedtls_md_get_size( md_info ), sum ) != 0 )
- {
+ if (generic_wrapper(md_info, line + 2 + 2 * mbedtls_md_get_size(md_info), sum) != 0) {
nb_err1++;
continue;
}
nb_tot2++;
- for( i = 0; i < mbedtls_md_get_size( md_info ); i++ )
- sprintf( buf + i * 2, "%02x", sum[i] );
+ for (i = 0; i < mbedtls_md_get_size(md_info); i++) {
+ sprintf(buf + i * 2, "%02x", sum[i]);
+ }
/* Use constant-time buffer comparison */
diff = 0;
- for( i = 0; i < 2 * mbedtls_md_get_size( md_info ); i++ )
+ for (i = 0; i < 2 * mbedtls_md_get_size(md_info); i++) {
diff |= line[i] ^ buf[i];
-
- if( diff != 0 )
- {
- nb_err2++;
- mbedtls_fprintf( stderr, "wrong checksum: %s\n", line + 66 );
}
- n = sizeof( line );
+ if (diff != 0) {
+ nb_err2++;
+ mbedtls_fprintf(stderr, "wrong checksum: %s\n", line + 66);
+ }
+
+ n = sizeof(line);
}
- if( nb_err1 != 0 )
- {
- mbedtls_printf( "WARNING: %d (out of %d) input files could "
- "not be read\n", nb_err1, nb_tot1 );
+ if (nb_err1 != 0) {
+ mbedtls_printf("WARNING: %d (out of %d) input files could "
+ "not be read\n", nb_err1, nb_tot1);
}
- if( nb_err2 != 0 )
- {
- mbedtls_printf( "WARNING: %d (out of %d) computed checksums did "
- "not match\n", nb_err2, nb_tot2 );
+ if (nb_err2 != 0) {
+ mbedtls_printf("WARNING: %d (out of %d) computed checksums did "
+ "not match\n", nb_err2, nb_tot2);
}
- fclose( f );
+ fclose(f);
- return( nb_err1 != 0 || nb_err2 != 0 );
+ return nb_err1 != 0 || nb_err2 != 0;
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1, i;
int exit_code = MBEDTLS_EXIT_FAILURE;
const mbedtls_md_info_t *md_info;
mbedtls_md_context_t md_ctx;
- mbedtls_md_init( &md_ctx );
+ mbedtls_md_init(&md_ctx);
- if( argc == 1 )
- {
+ if (argc == 1) {
const int *list;
- mbedtls_printf( "print mode: generic_sum <mbedtls_md> <file> <file> ...\n" );
- mbedtls_printf( "check mode: generic_sum <mbedtls_md> -c <checksum file>\n" );
+ mbedtls_printf("print mode: generic_sum <mbedtls_md> <file> <file> ...\n");
+ mbedtls_printf("check mode: generic_sum <mbedtls_md> -c <checksum file>\n");
- mbedtls_printf( "\nAvailable message digests:\n" );
+ mbedtls_printf("\nAvailable message digests:\n");
list = mbedtls_md_list();
- while( *list )
- {
- md_info = mbedtls_md_info_from_type( *list );
- mbedtls_printf( " %s\n", mbedtls_md_get_name( md_info ) );
+ while (*list) {
+ md_info = mbedtls_md_info_from_type(*list);
+ mbedtls_printf(" %s\n", mbedtls_md_get_name(md_info));
list++;
}
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
/*
* Read the MD from the command line
*/
- md_info = mbedtls_md_info_from_string( argv[1] );
- if( md_info == NULL )
- {
- mbedtls_fprintf( stderr, "Message Digest '%s' not found\n", argv[1] );
- mbedtls_exit( exit_code );
+ md_info = mbedtls_md_info_from_string(argv[1]);
+ if (md_info == NULL) {
+ mbedtls_fprintf(stderr, "Message Digest '%s' not found\n", argv[1]);
+ mbedtls_exit(exit_code);
}
- if( mbedtls_md_setup( &md_ctx, md_info, 0 ) )
- {
- mbedtls_fprintf( stderr, "Failed to initialize context.\n" );
- mbedtls_exit( exit_code );
+ if (mbedtls_md_setup(&md_ctx, md_info, 0)) {
+ mbedtls_fprintf(stderr, "Failed to initialize context.\n");
+ mbedtls_exit(exit_code);
}
ret = 0;
- if( argc == 4 && strcmp( "-c", argv[2] ) == 0 )
- {
- ret |= generic_check( md_info, argv[3] );
+ if (argc == 4 && strcmp("-c", argv[2]) == 0) {
+ ret |= generic_check(md_info, argv[3]);
goto exit;
}
- for( i = 2; i < argc; i++ )
- ret |= generic_print( md_info, argv[i] );
+ for (i = 2; i < argc; i++) {
+ ret |= generic_print(md_info, argv[i]);
+ }
- if ( ret == 0 )
+ if (ret == 0) {
exit_code = MBEDTLS_EXIT_SUCCESS;
+ }
exit:
- mbedtls_md_free( &md_ctx );
+ mbedtls_md_free(&md_ctx);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_MD_C && MBEDTLS_FS_IO */
diff --git a/programs/hash/hello.c b/programs/hash/hello.c
index 3ef0652..7bb27ad 100644
--- a/programs/hash/hello.c
+++ b/programs/hash/hello.c
@@ -26,30 +26,32 @@
#endif
#if !defined(MBEDTLS_MD5_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_MD5_C not defined.\n");
- mbedtls_exit( 0 );
+ mbedtls_exit(0);
}
#else
-int main( void )
+int main(void)
{
int i, ret;
unsigned char digest[16];
char str[] = "Hello, world!";
- mbedtls_printf( "\n MD5('%s') = ", str );
+ mbedtls_printf("\n MD5('%s') = ", str);
- if( ( ret = mbedtls_md5( (unsigned char *) str, 13, digest ) ) != 0 )
- mbedtls_exit( MBEDTLS_EXIT_FAILURE );
+ if ((ret = mbedtls_md5((unsigned char *) str, 13, digest)) != 0) {
+ mbedtls_exit(MBEDTLS_EXIT_FAILURE);
+ }
- for( i = 0; i < 16; i++ )
- mbedtls_printf( "%02x", digest[i] );
+ for (i = 0; i < 16; i++) {
+ mbedtls_printf("%02x", digest[i]);
+ }
- mbedtls_printf( "\n\n" );
+ mbedtls_printf("\n\n");
- mbedtls_exit( MBEDTLS_EXIT_SUCCESS );
+ mbedtls_exit(MBEDTLS_EXIT_SUCCESS);
}
#endif /* MBEDTLS_MD5_C */
diff --git a/programs/hash/md_hmac_demo.c b/programs/hash/md_hmac_demo.c
index d4cc3cc..4c812fb 100644
--- a/programs/hash/md_hmac_demo.c
+++ b/programs/hash/md_hmac_demo.c
@@ -49,10 +49,10 @@
/* If the build options we need are not enabled, compile a placeholder. */
#if !defined(MBEDTLS_MD_C)
-int main( void )
+int main(void)
{
- printf( "MBEDTLS_MD_C not defined\r\n" );
- return( 0 );
+ printf("MBEDTLS_MD_C not defined\r\n");
+ return 0;
}
#else
@@ -69,30 +69,31 @@
const unsigned char key_bytes[32] = { 0 };
/* Print the contents of a buffer in hex */
-void print_buf( const char *title, unsigned char *buf, size_t len )
+void print_buf(const char *title, unsigned char *buf, size_t len)
{
- printf( "%s:", title );
- for( size_t i = 0; i < len; i++ )
- printf( " %02x", buf[i] );
- printf( "\n" );
+ printf("%s:", title);
+ for (size_t i = 0; i < len; i++) {
+ printf(" %02x", buf[i]);
+ }
+ printf("\n");
}
/* Run an Mbed TLS function and bail out if it fails.
* A string description of the error code can be recovered with:
* programs/util/strerror <value> */
-#define CHK( expr ) \
+#define CHK(expr) \
do \
{ \
- ret = ( expr ); \
- if( ret != 0 ) \
+ ret = (expr); \
+ if (ret != 0) \
{ \
- printf( "Error %d at line %d: %s\n", \
- ret, \
- __LINE__, \
- #expr ); \
+ printf("Error %d at line %d: %s\n", \
+ ret, \
+ __LINE__, \
+ #expr); \
goto exit; \
} \
- } while( 0 )
+ } while (0)
/*
* This function demonstrates computation of the HMAC of two messages using
@@ -106,42 +107,42 @@
mbedtls_md_context_t ctx;
- mbedtls_md_init( &ctx );
+ mbedtls_md_init(&ctx);
/* prepare context and load key */
// the last argument to setup is 1 to enable HMAC (not just hashing)
- const mbedtls_md_info_t *info = mbedtls_md_info_from_type( alg );
- CHK( mbedtls_md_setup( &ctx, info, 1 ) );
- CHK( mbedtls_md_hmac_starts( &ctx, key_bytes, sizeof( key_bytes ) ) );
+ const mbedtls_md_info_t *info = mbedtls_md_info_from_type(alg);
+ CHK(mbedtls_md_setup(&ctx, info, 1));
+ CHK(mbedtls_md_hmac_starts(&ctx, key_bytes, sizeof(key_bytes)));
/* compute HMAC(key, msg1_part1 | msg1_part2) */
- CHK( mbedtls_md_hmac_update( &ctx, msg1_part1, sizeof( msg1_part1 ) ) );
- CHK( mbedtls_md_hmac_update( &ctx, msg1_part2, sizeof( msg1_part2 ) ) );
- CHK( mbedtls_md_hmac_finish( &ctx, out ) );
- print_buf( "msg1", out, mbedtls_md_get_size( info ) );
+ CHK(mbedtls_md_hmac_update(&ctx, msg1_part1, sizeof(msg1_part1)));
+ CHK(mbedtls_md_hmac_update(&ctx, msg1_part2, sizeof(msg1_part2)));
+ CHK(mbedtls_md_hmac_finish(&ctx, out));
+ print_buf("msg1", out, mbedtls_md_get_size(info));
/* compute HMAC(key, msg2_part1 | msg2_part2) */
- CHK( mbedtls_md_hmac_reset( &ctx ) ); // prepare for new operation
- CHK( mbedtls_md_hmac_update( &ctx, msg2_part1, sizeof( msg2_part1 ) ) );
- CHK( mbedtls_md_hmac_update( &ctx, msg2_part2, sizeof( msg2_part2 ) ) );
- CHK( mbedtls_md_hmac_finish( &ctx, out ) );
- print_buf( "msg2", out, mbedtls_md_get_size( info ) );
+ CHK(mbedtls_md_hmac_reset(&ctx)); // prepare for new operation
+ CHK(mbedtls_md_hmac_update(&ctx, msg2_part1, sizeof(msg2_part1)));
+ CHK(mbedtls_md_hmac_update(&ctx, msg2_part2, sizeof(msg2_part2)));
+ CHK(mbedtls_md_hmac_finish(&ctx, out));
+ print_buf("msg2", out, mbedtls_md_get_size(info));
exit:
- mbedtls_md_free( &ctx );
- mbedtls_platform_zeroize( out, sizeof( out ) );
+ mbedtls_md_free(&ctx);
+ mbedtls_platform_zeroize(out, sizeof(out));
- return( ret );
+ return ret;
}
int main(void)
{
int ret;
- CHK( hmac_demo() );
+ CHK(hmac_demo());
exit:
- return( ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE );
+ return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
#endif
diff --git a/programs/pkey/dh_client.c b/programs/pkey/dh_client.c
index 3619cb2..bc58a15 100644
--- a/programs/pkey/dh_client.c
+++ b/programs/pkey/dh_client.c
@@ -46,18 +46,18 @@
!defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_SHA256_C) || \
!defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_SHA1_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_AES_C and/or MBEDTLS_DHM_C and/or MBEDTLS_ENTROPY_C "
- "and/or MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO and/or "
- "MBEDTLS_CTR_DRBG_C not defined.\n");
- mbedtls_exit( 0 );
+ "and/or MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
+ "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO and/or "
+ "MBEDTLS_CTR_DRBG_C not defined.\n");
+ mbedtls_exit(0);
}
#else
-int main( void )
+int main(void)
{
FILE *f;
@@ -77,111 +77,102 @@
mbedtls_dhm_context dhm;
mbedtls_aes_context aes;
- mbedtls_net_init( &server_fd );
- mbedtls_dhm_init( &dhm );
- mbedtls_aes_init( &aes );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_net_init(&server_fd);
+ mbedtls_dhm_init(&dhm);
+ mbedtls_aes_init(&aes);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
/*
* 1. Setup the RNG
*/
- mbedtls_printf( "\n . Seeding the random number generator" );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator");
+ fflush(stdout);
- mbedtls_entropy_init( &entropy );
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret );
+ mbedtls_entropy_init(&entropy);
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret);
goto exit;
}
/*
* 2. Read the server's public RSA key
*/
- mbedtls_printf( "\n . Reading public key from rsa_pub.txt" );
- fflush( stdout );
+ mbedtls_printf("\n . Reading public key from rsa_pub.txt");
+ fflush(stdout);
- if( ( f = fopen( "rsa_pub.txt", "rb" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Could not open rsa_pub.txt\n" \
- " ! Please run rsa_genkey first\n\n" );
+ if ((f = fopen("rsa_pub.txt", "rb")) == NULL) {
+ mbedtls_printf(" failed\n ! Could not open rsa_pub.txt\n" \
+ " ! Please run rsa_genkey first\n\n");
goto exit;
}
- mbedtls_rsa_init( &rsa );
+ mbedtls_rsa_init(&rsa);
- if( ( ret = mbedtls_mpi_read_file( &rsa.MBEDTLS_PRIVATE(N), 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &rsa.MBEDTLS_PRIVATE(E), 16, f ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_read_file returned %d\n\n", ret );
- fclose( f );
+ if ((ret = mbedtls_mpi_read_file(&rsa.MBEDTLS_PRIVATE(N), 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&rsa.MBEDTLS_PRIVATE(E), 16, f)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_read_file returned %d\n\n", ret);
+ fclose(f);
goto exit;
}
- rsa.MBEDTLS_PRIVATE(len) = ( mbedtls_mpi_bitlen( &rsa.MBEDTLS_PRIVATE(N) ) + 7 ) >> 3;
+ rsa.MBEDTLS_PRIVATE(len) = (mbedtls_mpi_bitlen(&rsa.MBEDTLS_PRIVATE(N)) + 7) >> 3;
- fclose( f );
+ fclose(f);
/*
* 3. Initiate the connection
*/
- mbedtls_printf( "\n . Connecting to tcp/%s/%s", SERVER_NAME,
- SERVER_PORT );
- fflush( stdout );
+ mbedtls_printf("\n . Connecting to tcp/%s/%s", SERVER_NAME,
+ SERVER_PORT);
+ fflush(stdout);
- if( ( ret = mbedtls_net_connect( &server_fd, SERVER_NAME,
- SERVER_PORT, MBEDTLS_NET_PROTO_TCP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_connect returned %d\n\n", ret );
+ if ((ret = mbedtls_net_connect(&server_fd, SERVER_NAME,
+ SERVER_PORT, MBEDTLS_NET_PROTO_TCP)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_connect returned %d\n\n", ret);
goto exit;
}
/*
* 4a. First get the buffer length
*/
- mbedtls_printf( "\n . Receiving the server's DH parameters" );
- fflush( stdout );
+ mbedtls_printf("\n . Receiving the server's DH parameters");
+ fflush(stdout);
- memset( buf, 0, sizeof( buf ) );
+ memset(buf, 0, sizeof(buf));
- if( ( ret = mbedtls_net_recv( &server_fd, buf, 2 ) ) != 2 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_recv returned %d\n\n", ret );
+ if ((ret = mbedtls_net_recv(&server_fd, buf, 2)) != 2) {
+ mbedtls_printf(" failed\n ! mbedtls_net_recv returned %d\n\n", ret);
goto exit;
}
- n = buflen = ( buf[0] << 8 ) | buf[1];
- if( buflen < 1 || buflen > sizeof( buf ) )
- {
- mbedtls_printf( " failed\n ! Got an invalid buffer length\n\n" );
+ n = buflen = (buf[0] << 8) | buf[1];
+ if (buflen < 1 || buflen > sizeof(buf)) {
+ mbedtls_printf(" failed\n ! Got an invalid buffer length\n\n");
goto exit;
}
/*
* 4b. Get the DHM parameters: P, G and Ys = G^Xs mod P
*/
- memset( buf, 0, sizeof( buf ) );
+ memset(buf, 0, sizeof(buf));
- if( ( ret = mbedtls_net_recv( &server_fd, buf, n ) ) != (int) n )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_recv returned %d\n\n", ret );
+ if ((ret = mbedtls_net_recv(&server_fd, buf, n)) != (int) n) {
+ mbedtls_printf(" failed\n ! mbedtls_net_recv returned %d\n\n", ret);
goto exit;
}
p = buf, end = buf + buflen;
- if( ( ret = mbedtls_dhm_read_params( &dhm, &p, end ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_dhm_read_params returned %d\n\n", ret );
+ if ((ret = mbedtls_dhm_read_params(&dhm, &p, end)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_dhm_read_params returned %d\n\n", ret);
goto exit;
}
- n = mbedtls_dhm_get_len( &dhm );
- if( n < 64 || n > 512 )
- {
- mbedtls_printf( " failed\n ! Invalid DHM modulus size\n\n" );
+ n = mbedtls_dhm_get_len(&dhm);
+ if (n < 64 || n > 512) {
+ mbedtls_printf(" failed\n ! Invalid DHM modulus size\n\n");
goto exit;
}
@@ -189,65 +180,60 @@
* 5. Check that the server's RSA signature matches
* the SHA-256 hash of (P,G,Ys)
*/
- mbedtls_printf( "\n . Verifying the server's RSA signature" );
- fflush( stdout );
+ mbedtls_printf("\n . Verifying the server's RSA signature");
+ fflush(stdout);
p += 2;
- if( ( n = (size_t) ( end - p ) ) != rsa.MBEDTLS_PRIVATE(len) )
- {
- mbedtls_printf( " failed\n ! Invalid RSA signature size\n\n" );
+ if ((n = (size_t) (end - p)) != rsa.MBEDTLS_PRIVATE(len)) {
+ mbedtls_printf(" failed\n ! Invalid RSA signature size\n\n");
goto exit;
}
- if( ( ret = mbedtls_sha1( buf, (int)( p - 2 - buf ), hash ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_sha1 returned %d\n\n", ret );
+ if ((ret = mbedtls_sha1(buf, (int) (p - 2 - buf), hash)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_sha1 returned %d\n\n", ret);
goto exit;
}
- if( ( ret = mbedtls_rsa_pkcs1_verify( &rsa, MBEDTLS_MD_SHA256,
- 32, hash, p ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_pkcs1_verify returned %d\n\n", ret );
+ if ((ret = mbedtls_rsa_pkcs1_verify(&rsa, MBEDTLS_MD_SHA256,
+ 32, hash, p)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_pkcs1_verify returned %d\n\n", ret);
goto exit;
}
/*
* 6. Send our public value: Yc = G ^ Xc mod P
*/
- mbedtls_printf( "\n . Sending own public value to server" );
- fflush( stdout );
+ mbedtls_printf("\n . Sending own public value to server");
+ fflush(stdout);
- n = mbedtls_dhm_get_len( &dhm );
- if( ( ret = mbedtls_dhm_make_public( &dhm, (int) n, buf, n,
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_dhm_make_public returned %d\n\n", ret );
+ n = mbedtls_dhm_get_len(&dhm);
+ if ((ret = mbedtls_dhm_make_public(&dhm, (int) n, buf, n,
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_dhm_make_public returned %d\n\n", ret);
goto exit;
}
- if( ( ret = mbedtls_net_send( &server_fd, buf, n ) ) != (int) n )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_send returned %d\n\n", ret );
+ if ((ret = mbedtls_net_send(&server_fd, buf, n)) != (int) n) {
+ mbedtls_printf(" failed\n ! mbedtls_net_send returned %d\n\n", ret);
goto exit;
}
/*
* 7. Derive the shared secret: K = Ys ^ Xc mod P
*/
- mbedtls_printf( "\n . Shared secret: " );
- fflush( stdout );
+ mbedtls_printf("\n . Shared secret: ");
+ fflush(stdout);
- if( ( ret = mbedtls_dhm_calc_secret( &dhm, buf, sizeof( buf ), &n,
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_dhm_calc_secret returned %d\n\n", ret );
+ if ((ret = mbedtls_dhm_calc_secret(&dhm, buf, sizeof(buf), &n,
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_dhm_calc_secret returned %d\n\n", ret);
goto exit;
}
- for( n = 0; n < 16; n++ )
- mbedtls_printf( "%02x", buf[n] );
+ for (n = 0; n < 16; n++) {
+ mbedtls_printf("%02x", buf[n]);
+ }
/*
* 8. Setup the AES-256 decryption key
@@ -257,40 +243,41 @@
* the keying material for the encryption/decryption keys,
* IVs and MACs.
*/
- mbedtls_printf( "...\n . Receiving and decrypting the ciphertext" );
- fflush( stdout );
+ mbedtls_printf("...\n . Receiving and decrypting the ciphertext");
+ fflush(stdout);
- ret = mbedtls_aes_setkey_dec( &aes, buf, 256 );
- if( ret != 0 )
- goto exit;
-
- memset( buf, 0, sizeof( buf ) );
-
- if( ( ret = mbedtls_net_recv( &server_fd, buf, 16 ) ) != 16 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_recv returned %d\n\n", ret );
+ ret = mbedtls_aes_setkey_dec(&aes, buf, 256);
+ if (ret != 0) {
goto exit;
}
- ret = mbedtls_aes_crypt_ecb( &aes, MBEDTLS_AES_DECRYPT, buf, buf );
- if( ret != 0 )
+ memset(buf, 0, sizeof(buf));
+
+ if ((ret = mbedtls_net_recv(&server_fd, buf, 16)) != 16) {
+ mbedtls_printf(" failed\n ! mbedtls_net_recv returned %d\n\n", ret);
goto exit;
+ }
+
+ ret = mbedtls_aes_crypt_ecb(&aes, MBEDTLS_AES_DECRYPT, buf, buf);
+ if (ret != 0) {
+ goto exit;
+ }
buf[16] = '\0';
- mbedtls_printf( "\n . Plaintext is \"%s\"\n\n", (char *) buf );
+ mbedtls_printf("\n . Plaintext is \"%s\"\n\n", (char *) buf);
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_net_free( &server_fd );
+ mbedtls_net_free(&server_fd);
- mbedtls_aes_free( &aes );
- mbedtls_rsa_free( &rsa );
- mbedtls_dhm_free( &dhm );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_aes_free(&aes);
+ mbedtls_rsa_free(&rsa);
+ mbedtls_dhm_free(&dhm);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_AES_C && MBEDTLS_DHM_C && MBEDTLS_ENTROPY_C &&
MBEDTLS_NET_C && MBEDTLS_RSA_C && MBEDTLS_SHA256_C &&
diff --git a/programs/pkey/dh_genprime.c b/programs/pkey/dh_genprime.c
index 3e81d13..25371ba 100644
--- a/programs/pkey/dh_genprime.c
+++ b/programs/pkey/dh_genprime.c
@@ -24,12 +24,12 @@
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \
!defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_GENPRIME)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C and/or "
- "MBEDTLS_FS_IO and/or MBEDTLS_CTR_DRBG_C and/or "
- "MBEDTLS_GENPRIME not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_FS_IO and/or MBEDTLS_CTR_DRBG_C and/or "
+ "MBEDTLS_GENPRIME not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -54,7 +54,7 @@
#define GENERATOR "4"
-int main( int argc, char **argv )
+int main(int argc, char **argv)
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -67,116 +67,107 @@
int i;
char *p, *q;
- mbedtls_mpi_init( &G ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q );
- mbedtls_ctr_drbg_init( &ctr_drbg );
- mbedtls_entropy_init( &entropy );
+ mbedtls_mpi_init(&G); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ mbedtls_entropy_init(&entropy);
- if( argc == 0 )
- {
- usage:
- mbedtls_printf( USAGE );
+ if (argc == 0) {
+usage:
+ mbedtls_printf(USAGE);
goto exit;
}
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
+ if ((q = strchr(p, '=')) == NULL) {
goto usage;
+ }
*q++ = '\0';
- if( strcmp( p, "bits" ) == 0 )
- {
- nbits = atoi( q );
- if( nbits < 0 || nbits > MBEDTLS_MPI_MAX_BITS )
+ if (strcmp(p, "bits") == 0) {
+ nbits = atoi(q);
+ if (nbits < 0 || nbits > MBEDTLS_MPI_MAX_BITS) {
goto usage;
- }
- else
+ }
+ } else {
goto usage;
+ }
}
- if( ( ret = mbedtls_mpi_read_string( &G, 10, GENERATOR ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_read_string returned %d\n", ret );
+ if ((ret = mbedtls_mpi_read_string(&G, 10, GENERATOR)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_read_string returned %d\n", ret);
goto exit;
}
- mbedtls_printf( " ! Generating large primes may take minutes!\n" );
+ mbedtls_printf(" ! Generating large primes may take minutes!\n");
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret );
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n . Generating the modulus, please wait..." );
- fflush( stdout );
+ mbedtls_printf(" ok\n . Generating the modulus, please wait...");
+ fflush(stdout);
/*
* This can take a long time...
*/
- if( ( ret = mbedtls_mpi_gen_prime( &P, nbits, 1,
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_gen_prime returned %d\n\n", ret );
+ if ((ret = mbedtls_mpi_gen_prime(&P, nbits, 1,
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_gen_prime returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n . Verifying that Q = (P-1)/2 is prime..." );
- fflush( stdout );
+ mbedtls_printf(" ok\n . Verifying that Q = (P-1)/2 is prime...");
+ fflush(stdout);
- if( ( ret = mbedtls_mpi_sub_int( &Q, &P, 1 ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_sub_int returned %d\n\n", ret );
+ if ((ret = mbedtls_mpi_sub_int(&Q, &P, 1)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_sub_int returned %d\n\n", ret);
goto exit;
}
- if( ( ret = mbedtls_mpi_div_int( &Q, NULL, &Q, 2 ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_div_int returned %d\n\n", ret );
+ if ((ret = mbedtls_mpi_div_int(&Q, NULL, &Q, 2)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_div_int returned %d\n\n", ret);
goto exit;
}
- if( ( ret = mbedtls_mpi_is_prime_ext( &Q, 50, mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_is_prime returned %d\n\n", ret );
+ if ((ret = mbedtls_mpi_is_prime_ext(&Q, 50, mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_is_prime returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n . Exporting the value in dh_prime.txt..." );
- fflush( stdout );
+ mbedtls_printf(" ok\n . Exporting the value in dh_prime.txt...");
+ fflush(stdout);
- if( ( fout = fopen( "dh_prime.txt", "wb+" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Could not create dh_prime.txt\n\n" );
+ if ((fout = fopen("dh_prime.txt", "wb+")) == NULL) {
+ mbedtls_printf(" failed\n ! Could not create dh_prime.txt\n\n");
goto exit;
}
- if( ( ( ret = mbedtls_mpi_write_file( "P = ", &P, 16, fout ) ) != 0 ) ||
- ( ( ret = mbedtls_mpi_write_file( "G = ", &G, 16, fout ) ) != 0 ) )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_write_file returned %d\n\n", ret );
- fclose( fout );
+ if (((ret = mbedtls_mpi_write_file("P = ", &P, 16, fout)) != 0) ||
+ ((ret = mbedtls_mpi_write_file("G = ", &G, 16, fout)) != 0)) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_write_file returned %d\n\n", ret);
+ fclose(fout);
goto exit;
}
- mbedtls_printf( " ok\n\n" );
- fclose( fout );
+ mbedtls_printf(" ok\n\n");
+ fclose(fout);
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_mpi_free( &G ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_mpi_free(&G); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_FS_IO &&
MBEDTLS_CTR_DRBG_C && MBEDTLS_GENPRIME */
diff --git a/programs/pkey/dh_server.c b/programs/pkey/dh_server.c
index e6f53ed..2514fc0 100644
--- a/programs/pkey/dh_server.c
+++ b/programs/pkey/dh_server.c
@@ -46,18 +46,18 @@
!defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_SHA256_C) || \
!defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_SHA1_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_AES_C and/or MBEDTLS_DHM_C and/or MBEDTLS_ENTROPY_C "
- "and/or MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO and/or "
- "MBEDTLS_CTR_DRBG_C not defined.\n");
- mbedtls_exit( 0 );
+ "and/or MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
+ "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO and/or "
+ "MBEDTLS_CTR_DRBG_C not defined.\n");
+ mbedtls_exit(0);
}
#else
-int main( void )
+int main(void)
{
FILE *f;
@@ -79,195 +79,181 @@
mbedtls_mpi N, P, Q, D, E;
- mbedtls_net_init( &listen_fd );
- mbedtls_net_init( &client_fd );
- mbedtls_dhm_init( &dhm );
- mbedtls_aes_init( &aes );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_net_init(&listen_fd);
+ mbedtls_net_init(&client_fd);
+ mbedtls_dhm_init(&dhm);
+ mbedtls_aes_init(&aes);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
- mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q );
- mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E );
+ mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q);
+ mbedtls_mpi_init(&D); mbedtls_mpi_init(&E);
/*
* 1. Setup the RNG
*/
- mbedtls_printf( "\n . Seeding the random number generator" );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator");
+ fflush(stdout);
- mbedtls_entropy_init( &entropy );
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret );
+ mbedtls_entropy_init(&entropy);
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret);
goto exit;
}
/*
* 2a. Read the server's private RSA key
*/
- mbedtls_printf( "\n . Reading private key from rsa_priv.txt" );
- fflush( stdout );
+ mbedtls_printf("\n . Reading private key from rsa_priv.txt");
+ fflush(stdout);
- if( ( f = fopen( "rsa_priv.txt", "rb" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Could not open rsa_priv.txt\n" \
- " ! Please run rsa_genkey first\n\n" );
+ if ((f = fopen("rsa_priv.txt", "rb")) == NULL) {
+ mbedtls_printf(" failed\n ! Could not open rsa_priv.txt\n" \
+ " ! Please run rsa_genkey first\n\n");
goto exit;
}
- mbedtls_rsa_init( &rsa );
+ mbedtls_rsa_init(&rsa);
- if( ( ret = mbedtls_mpi_read_file( &N , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &E , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &D , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &P , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &Q , 16, f ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_read_file returned %d\n\n",
- ret );
- fclose( f );
+ if ((ret = mbedtls_mpi_read_file(&N, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&E, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&D, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&P, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&Q, 16, f)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_read_file returned %d\n\n",
+ ret);
+ fclose(f);
goto exit;
}
- fclose( f );
+ fclose(f);
- if( ( ret = mbedtls_rsa_import( &rsa, &N, &P, &Q, &D, &E ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_import returned %d\n\n",
- ret );
+ if ((ret = mbedtls_rsa_import(&rsa, &N, &P, &Q, &D, &E)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_import returned %d\n\n",
+ ret);
goto exit;
}
- if( ( ret = mbedtls_rsa_complete( &rsa ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_complete returned %d\n\n",
- ret );
+ if ((ret = mbedtls_rsa_complete(&rsa)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_complete returned %d\n\n",
+ ret);
goto exit;
}
/*
* 2b. Get the DHM modulus and generator
*/
- mbedtls_printf( "\n . Reading DH parameters from dh_prime.txt" );
- fflush( stdout );
+ mbedtls_printf("\n . Reading DH parameters from dh_prime.txt");
+ fflush(stdout);
- if( ( f = fopen( "dh_prime.txt", "rb" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Could not open dh_prime.txt\n" \
- " ! Please run dh_genprime first\n\n" );
+ if ((f = fopen("dh_prime.txt", "rb")) == NULL) {
+ mbedtls_printf(" failed\n ! Could not open dh_prime.txt\n" \
+ " ! Please run dh_genprime first\n\n");
goto exit;
}
- if( mbedtls_mpi_read_file( &dhm.MBEDTLS_PRIVATE(P), 16, f ) != 0 ||
- mbedtls_mpi_read_file( &dhm.MBEDTLS_PRIVATE(G), 16, f ) != 0 )
- {
- mbedtls_printf( " failed\n ! Invalid DH parameter file\n\n" );
- fclose( f );
+ if (mbedtls_mpi_read_file(&dhm.MBEDTLS_PRIVATE(P), 16, f) != 0 ||
+ mbedtls_mpi_read_file(&dhm.MBEDTLS_PRIVATE(G), 16, f) != 0) {
+ mbedtls_printf(" failed\n ! Invalid DH parameter file\n\n");
+ fclose(f);
goto exit;
}
- fclose( f );
+ fclose(f);
/*
* 3. Wait for a client to connect
*/
- mbedtls_printf( "\n . Waiting for a remote connection" );
- fflush( stdout );
+ mbedtls_printf("\n . Waiting for a remote connection");
+ fflush(stdout);
- if( ( ret = mbedtls_net_bind( &listen_fd, NULL, SERVER_PORT, MBEDTLS_NET_PROTO_TCP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_bind returned %d\n\n", ret );
+ if ((ret = mbedtls_net_bind(&listen_fd, NULL, SERVER_PORT, MBEDTLS_NET_PROTO_TCP)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_bind returned %d\n\n", ret);
goto exit;
}
- if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd,
- NULL, 0, NULL ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_accept returned %d\n\n", ret );
+ if ((ret = mbedtls_net_accept(&listen_fd, &client_fd,
+ NULL, 0, NULL)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_accept returned %d\n\n", ret);
goto exit;
}
/*
* 4. Setup the DH parameters (P,G,Ys)
*/
- mbedtls_printf( "\n . Sending the server's DH parameters" );
- fflush( stdout );
+ mbedtls_printf("\n . Sending the server's DH parameters");
+ fflush(stdout);
- memset( buf, 0, sizeof( buf ) );
+ memset(buf, 0, sizeof(buf));
- if( ( ret = mbedtls_dhm_make_params( &dhm, (int) mbedtls_mpi_size( &dhm.MBEDTLS_PRIVATE(P) ), buf, &n,
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_dhm_make_params returned %d\n\n", ret );
+ if ((ret =
+ mbedtls_dhm_make_params(&dhm, (int) mbedtls_mpi_size(&dhm.MBEDTLS_PRIVATE(P)), buf, &n,
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_dhm_make_params returned %d\n\n", ret);
goto exit;
}
/*
* 5. Sign the parameters and send them
*/
- if( ( ret = mbedtls_sha1( buf, n, hash ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_sha1 returned %d\n\n", ret );
+ if ((ret = mbedtls_sha1(buf, n, hash)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_sha1 returned %d\n\n", ret);
goto exit;
}
- buf[n ] = (unsigned char)( rsa.MBEDTLS_PRIVATE(len) >> 8 );
- buf[n + 1] = (unsigned char)( rsa.MBEDTLS_PRIVATE(len) );
+ buf[n] = (unsigned char) (rsa.MBEDTLS_PRIVATE(len) >> 8);
+ buf[n + 1] = (unsigned char) (rsa.MBEDTLS_PRIVATE(len));
- if( ( ret = mbedtls_rsa_pkcs1_sign( &rsa, NULL, NULL, MBEDTLS_MD_SHA256,
- 32, hash, buf + n + 2 ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_pkcs1_sign returned %d\n\n", ret );
+ if ((ret = mbedtls_rsa_pkcs1_sign(&rsa, NULL, NULL, MBEDTLS_MD_SHA256,
+ 32, hash, buf + n + 2)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_pkcs1_sign returned %d\n\n", ret);
goto exit;
}
buflen = n + 2 + rsa.MBEDTLS_PRIVATE(len);
- buf2[0] = (unsigned char)( buflen >> 8 );
- buf2[1] = (unsigned char)( buflen );
+ buf2[0] = (unsigned char) (buflen >> 8);
+ buf2[1] = (unsigned char) (buflen);
- if( ( ret = mbedtls_net_send( &client_fd, buf2, 2 ) ) != 2 ||
- ( ret = mbedtls_net_send( &client_fd, buf, buflen ) ) != (int) buflen )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_send returned %d\n\n", ret );
+ if ((ret = mbedtls_net_send(&client_fd, buf2, 2)) != 2 ||
+ (ret = mbedtls_net_send(&client_fd, buf, buflen)) != (int) buflen) {
+ mbedtls_printf(" failed\n ! mbedtls_net_send returned %d\n\n", ret);
goto exit;
}
/*
* 6. Get the client's public value: Yc = G ^ Xc mod P
*/
- mbedtls_printf( "\n . Receiving the client's public value" );
- fflush( stdout );
+ mbedtls_printf("\n . Receiving the client's public value");
+ fflush(stdout);
- memset( buf, 0, sizeof( buf ) );
+ memset(buf, 0, sizeof(buf));
- n = mbedtls_dhm_get_len( &dhm );
- if( ( ret = mbedtls_net_recv( &client_fd, buf, n ) ) != (int) n )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_recv returned %d\n\n", ret );
+ n = mbedtls_dhm_get_len(&dhm);
+ if ((ret = mbedtls_net_recv(&client_fd, buf, n)) != (int) n) {
+ mbedtls_printf(" failed\n ! mbedtls_net_recv returned %d\n\n", ret);
goto exit;
}
- if( ( ret = mbedtls_dhm_read_public( &dhm, buf, n ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_dhm_read_public returned %d\n\n", ret );
+ if ((ret = mbedtls_dhm_read_public(&dhm, buf, n)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_dhm_read_public returned %d\n\n", ret);
goto exit;
}
/*
* 7. Derive the shared secret: K = Ys ^ Xc mod P
*/
- mbedtls_printf( "\n . Shared secret: " );
- fflush( stdout );
+ mbedtls_printf("\n . Shared secret: ");
+ fflush(stdout);
- if( ( ret = mbedtls_dhm_calc_secret( &dhm, buf, sizeof( buf ), &n,
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_dhm_calc_secret returned %d\n\n", ret );
+ if ((ret = mbedtls_dhm_calc_secret(&dhm, buf, sizeof(buf), &n,
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_dhm_calc_secret returned %d\n\n", ret);
goto exit;
}
- for( n = 0; n < 16; n++ )
- mbedtls_printf( "%02x", buf[n] );
+ for (n = 0; n < 16; n++) {
+ mbedtls_printf("%02x", buf[n]);
+ }
/*
* 8. Setup the AES-256 encryption key
@@ -277,42 +263,43 @@
* the keying material for the encryption/decryption keys
* and MACs.
*/
- mbedtls_printf( "...\n . Encrypting and sending the ciphertext" );
- fflush( stdout );
+ mbedtls_printf("...\n . Encrypting and sending the ciphertext");
+ fflush(stdout);
- ret = mbedtls_aes_setkey_enc( &aes, buf, 256 );
- if( ret != 0 )
+ ret = mbedtls_aes_setkey_enc(&aes, buf, 256);
+ if (ret != 0) {
goto exit;
- memcpy( buf, PLAINTEXT, 16 );
- ret = mbedtls_aes_crypt_ecb( &aes, MBEDTLS_AES_ENCRYPT, buf, buf );
- if( ret != 0 )
- goto exit;
-
- if( ( ret = mbedtls_net_send( &client_fd, buf, 16 ) ) != 16 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_send returned %d\n\n", ret );
+ }
+ memcpy(buf, PLAINTEXT, 16);
+ ret = mbedtls_aes_crypt_ecb(&aes, MBEDTLS_AES_ENCRYPT, buf, buf);
+ if (ret != 0) {
goto exit;
}
- mbedtls_printf( "\n\n" );
+ if ((ret = mbedtls_net_send(&client_fd, buf, 16)) != 16) {
+ mbedtls_printf(" failed\n ! mbedtls_net_send returned %d\n\n", ret);
+ goto exit;
+ }
+
+ mbedtls_printf("\n\n");
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q );
- mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E );
+ mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q);
+ mbedtls_mpi_free(&D); mbedtls_mpi_free(&E);
- mbedtls_net_free( &client_fd );
- mbedtls_net_free( &listen_fd );
+ mbedtls_net_free(&client_fd);
+ mbedtls_net_free(&listen_fd);
- mbedtls_aes_free( &aes );
- mbedtls_rsa_free( &rsa );
- mbedtls_dhm_free( &dhm );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_aes_free(&aes);
+ mbedtls_rsa_free(&rsa);
+ mbedtls_dhm_free(&dhm);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_AES_C && MBEDTLS_DHM_C && MBEDTLS_ENTROPY_C &&
MBEDTLS_NET_C && MBEDTLS_RSA_C && MBEDTLS_SHA256_C &&
diff --git a/programs/pkey/ecdh_curve25519.c b/programs/pkey/ecdh_curve25519.c
index 5dd6bdd..d880a1a 100644
--- a/programs/pkey/ecdh_curve25519.c
+++ b/programs/pkey/ecdh_curve25519.c
@@ -24,13 +24,13 @@
#if !defined(MBEDTLS_ECDH_C) || \
!defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || \
!defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C)
-int main( void )
+int main(void)
{
- mbedtls_printf( "MBEDTLS_ECDH_C and/or "
- "MBEDTLS_ECP_DP_CURVE25519_ENABLED and/or "
- "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C "
- "not defined\n" );
- mbedtls_exit( 0 );
+ mbedtls_printf("MBEDTLS_ECDH_C and/or "
+ "MBEDTLS_ECP_DP_CURVE25519_ENABLED and/or "
+ "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C "
+ "not defined\n");
+ mbedtls_exit(0);
}
#else
@@ -41,7 +41,7 @@
#include <string.h>
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -60,151 +60,142 @@
((void) argc);
((void) argv);
- mbedtls_ecdh_init( &ctx_cli );
- mbedtls_ecdh_init( &ctx_srv );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_ecdh_init(&ctx_cli);
+ mbedtls_ecdh_init(&ctx_srv);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
/*
* Initialize random number generation
*/
- mbedtls_printf( " . Seed the random number generator..." );
- fflush( stdout );
+ mbedtls_printf(" . Seed the random number generator...");
+ fflush(stdout);
- mbedtls_entropy_init( &entropy );
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func,
- &entropy,
- (const unsigned char *) pers,
- sizeof pers ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n",
- ret );
+ mbedtls_entropy_init(&entropy);
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func,
+ &entropy,
+ (const unsigned char *) pers,
+ sizeof pers)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n",
+ ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* Client: initialize context and generate keypair
*/
- mbedtls_printf( " . Set up client context, generate EC key pair..." );
- fflush( stdout );
+ mbedtls_printf(" . Set up client context, generate EC key pair...");
+ fflush(stdout);
- ret = mbedtls_ecdh_setup( &ctx_cli, MBEDTLS_ECP_DP_CURVE25519 );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ecdh_setup returned %d\n", ret );
+ ret = mbedtls_ecdh_setup(&ctx_cli, MBEDTLS_ECP_DP_CURVE25519);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ecdh_setup returned %d\n", ret);
goto exit;
}
- ret = mbedtls_ecdh_make_params( &ctx_cli, &cli_olen, cli_to_srv,
- sizeof( cli_to_srv ),
- mbedtls_ctr_drbg_random, &ctr_drbg );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ecdh_make_params returned %d\n",
- ret );
+ ret = mbedtls_ecdh_make_params(&ctx_cli, &cli_olen, cli_to_srv,
+ sizeof(cli_to_srv),
+ mbedtls_ctr_drbg_random, &ctr_drbg);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ecdh_make_params returned %d\n",
+ ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* Server: initialize context and generate keypair
*/
- mbedtls_printf( " . Server: read params, generate public key..." );
- fflush( stdout );
+ mbedtls_printf(" . Server: read params, generate public key...");
+ fflush(stdout);
- ret = mbedtls_ecdh_read_params( &ctx_srv, &p_cli_to_srv,
- p_cli_to_srv + sizeof( cli_to_srv ) );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ecdh_read_params returned %d\n",
- ret );
+ ret = mbedtls_ecdh_read_params(&ctx_srv, &p_cli_to_srv,
+ p_cli_to_srv + sizeof(cli_to_srv));
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ecdh_read_params returned %d\n",
+ ret);
goto exit;
}
- ret = mbedtls_ecdh_make_public( &ctx_srv, &srv_olen, srv_to_cli,
- sizeof( srv_to_cli ),
- mbedtls_ctr_drbg_random, &ctr_drbg );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ecdh_make_public returned %d\n",
- ret );
+ ret = mbedtls_ecdh_make_public(&ctx_srv, &srv_olen, srv_to_cli,
+ sizeof(srv_to_cli),
+ mbedtls_ctr_drbg_random, &ctr_drbg);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ecdh_make_public returned %d\n",
+ ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* Client: read public key
*/
- mbedtls_printf( " . Client: read public key..." );
- fflush( stdout );
+ mbedtls_printf(" . Client: read public key...");
+ fflush(stdout);
- ret = mbedtls_ecdh_read_public( &ctx_cli, srv_to_cli,
- sizeof( srv_to_cli ) );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ecdh_read_public returned %d\n",
- ret );
+ ret = mbedtls_ecdh_read_public(&ctx_cli, srv_to_cli,
+ sizeof(srv_to_cli));
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ecdh_read_public returned %d\n",
+ ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* Calculate secrets
*/
- mbedtls_printf( " . Calculate secrets..." );
- fflush( stdout );
+ mbedtls_printf(" . Calculate secrets...");
+ fflush(stdout);
- ret = mbedtls_ecdh_calc_secret( &ctx_cli, &cli_olen, secret_cli,
- sizeof( secret_cli ),
- mbedtls_ctr_drbg_random, &ctr_drbg );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ecdh_calc_secret returned %d\n",
- ret );
+ ret = mbedtls_ecdh_calc_secret(&ctx_cli, &cli_olen, secret_cli,
+ sizeof(secret_cli),
+ mbedtls_ctr_drbg_random, &ctr_drbg);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ecdh_calc_secret returned %d\n",
+ ret);
goto exit;
}
- ret = mbedtls_ecdh_calc_secret( &ctx_srv, &srv_olen, secret_srv,
- sizeof( secret_srv ),
- mbedtls_ctr_drbg_random, &ctr_drbg );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ecdh_calc_secret returned %d\n",
- ret );
+ ret = mbedtls_ecdh_calc_secret(&ctx_srv, &srv_olen, secret_srv,
+ sizeof(secret_srv),
+ mbedtls_ctr_drbg_random, &ctr_drbg);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ecdh_calc_secret returned %d\n",
+ ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* Verification: are the computed secrets equal?
*/
- mbedtls_printf( " . Check if both calculated secrets are equal..." );
- fflush( stdout );
+ mbedtls_printf(" . Check if both calculated secrets are equal...");
+ fflush(stdout);
- ret = memcmp( secret_srv, secret_cli, srv_olen );
- if( ret != 0 || ( cli_olen != srv_olen ) )
- {
- mbedtls_printf( " failed\n ! Shared secrets not equal.\n" );
+ ret = memcmp(secret_srv, secret_cli, srv_olen);
+ if (ret != 0 || (cli_olen != srv_olen)) {
+ mbedtls_printf(" failed\n ! Shared secrets not equal.\n");
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_ecdh_free( &ctx_srv );
- mbedtls_ecdh_free( &ctx_cli );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_ecdh_free(&ctx_srv);
+ mbedtls_ecdh_free(&ctx_cli);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_ECDH_C && MBEDTLS_ECP_DP_CURVE25519_ENABLED &&
MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C */
diff --git a/programs/pkey/ecdsa.c b/programs/pkey/ecdsa.c
index 1035bb2..be2ca90 100644
--- a/programs/pkey/ecdsa.c
+++ b/programs/pkey/ecdsa.c
@@ -47,46 +47,46 @@
#if !defined(MBEDTLS_ECDSA_C) || !defined(MBEDTLS_SHA256_C) || \
!defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_ECDSA_C and/or MBEDTLS_SHA256_C and/or "
- "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C not defined\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C not defined\n");
+ mbedtls_exit(0);
}
#else
#if defined(VERBOSE)
-static void dump_buf( const char *title, unsigned char *buf, size_t len )
+static void dump_buf(const char *title, unsigned char *buf, size_t len)
{
size_t i;
- mbedtls_printf( "%s", title );
- for( i = 0; i < len; i++ )
+ mbedtls_printf("%s", title);
+ for (i = 0; i < len; i++) {
mbedtls_printf("%c%c", "0123456789ABCDEF" [buf[i] / 16],
- "0123456789ABCDEF" [buf[i] % 16] );
- mbedtls_printf( "\n" );
+ "0123456789ABCDEF" [buf[i] % 16]);
+ }
+ mbedtls_printf("\n");
}
-static void dump_pubkey( const char *title, mbedtls_ecdsa_context *key )
+static void dump_pubkey(const char *title, mbedtls_ecdsa_context *key)
{
unsigned char buf[300];
size_t len;
- if( mbedtls_ecp_point_write_binary( &key->MBEDTLS_PRIVATE(grp), &key->MBEDTLS_PRIVATE(Q),
- MBEDTLS_ECP_PF_UNCOMPRESSED, &len, buf, sizeof buf ) != 0 )
- {
+ if (mbedtls_ecp_point_write_binary(&key->MBEDTLS_PRIVATE(grp), &key->MBEDTLS_PRIVATE(Q),
+ MBEDTLS_ECP_PF_UNCOMPRESSED, &len, buf, sizeof buf) != 0) {
mbedtls_printf("internal error\n");
return;
}
- dump_buf( title, buf, len );
+ dump_buf(title, buf, len);
}
#else
-#define dump_buf( a, b, c )
-#define dump_pubkey( a, b )
+#define dump_buf(a, b, c)
+#define dump_pubkey(a, b)
#endif
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -100,19 +100,18 @@
const char *pers = "ecdsa";
((void) argv);
- mbedtls_ecdsa_init( &ctx_sign );
- mbedtls_ecdsa_init( &ctx_verify );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_ecdsa_init(&ctx_sign);
+ mbedtls_ecdsa_init(&ctx_verify);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
- memset( sig, 0, sizeof( sig ) );
- memset( message, 0x25, sizeof( message ) );
+ memset(sig, 0, sizeof(sig));
+ memset(message, 0x25, sizeof(message));
- if( argc != 1 )
- {
- mbedtls_printf( "usage: ecdsa\n" );
+ if (argc != 1) {
+ mbedtls_printf("usage: ecdsa\n");
#if defined(_WIN32)
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
#endif
goto exit;
@@ -121,65 +120,61 @@
/*
* Generate a key pair for signing
*/
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- mbedtls_entropy_init( &entropy );
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret );
+ mbedtls_entropy_init(&entropy);
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n . Generating key pair..." );
- fflush( stdout );
+ mbedtls_printf(" ok\n . Generating key pair...");
+ fflush(stdout);
- if( ( ret = mbedtls_ecdsa_genkey( &ctx_sign, ECPARAMS,
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ecdsa_genkey returned %d\n", ret );
+ if ((ret = mbedtls_ecdsa_genkey(&ctx_sign, ECPARAMS,
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ecdsa_genkey returned %d\n", ret);
goto exit;
}
- mbedtls_printf( " ok (key size: %d bits)\n", (int) ctx_sign.MBEDTLS_PRIVATE(grp).pbits );
+ mbedtls_printf(" ok (key size: %d bits)\n", (int) ctx_sign.MBEDTLS_PRIVATE(grp).pbits);
- dump_pubkey( " + Public key: ", &ctx_sign );
+ dump_pubkey(" + Public key: ", &ctx_sign);
/*
* Compute message hash
*/
- mbedtls_printf( " . Computing message hash..." );
- fflush( stdout );
+ mbedtls_printf(" . Computing message hash...");
+ fflush(stdout);
- if( ( ret = mbedtls_sha256( message, sizeof( message ), hash, 0 ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_sha256 returned %d\n", ret );
+ if ((ret = mbedtls_sha256(message, sizeof(message), hash, 0)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_sha256 returned %d\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
- dump_buf( " + Hash: ", hash, sizeof( hash ) );
+ dump_buf(" + Hash: ", hash, sizeof(hash));
/*
* Sign message hash
*/
- mbedtls_printf( " . Signing message hash..." );
- fflush( stdout );
+ mbedtls_printf(" . Signing message hash...");
+ fflush(stdout);
- if( ( ret = mbedtls_ecdsa_write_signature( &ctx_sign, MBEDTLS_MD_SHA256,
- hash, sizeof( hash ),
- sig, sizeof( sig ), &sig_len,
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ecdsa_write_signature returned %d\n", ret );
+ if ((ret = mbedtls_ecdsa_write_signature(&ctx_sign, MBEDTLS_MD_SHA256,
+ hash, sizeof(hash),
+ sig, sizeof(sig), &sig_len,
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ecdsa_write_signature returned %d\n", ret);
goto exit;
}
- mbedtls_printf( " ok (signature length = %u)\n", (unsigned int) sig_len );
+ mbedtls_printf(" ok (signature length = %u)\n", (unsigned int) sig_len);
- dump_buf( " + Signature: ", sig, sig_len );
+ dump_buf(" + Signature: ", sig, sig_len);
/*
* Transfer public information to verifying context
@@ -188,47 +183,47 @@
* 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).
*/
- mbedtls_printf( " . Preparing verification context..." );
- fflush( stdout );
+ mbedtls_printf(" . Preparing verification context...");
+ fflush(stdout);
- if( ( ret = mbedtls_ecp_group_copy( &ctx_verify.MBEDTLS_PRIVATE(grp), &ctx_sign.MBEDTLS_PRIVATE(grp) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ecp_group_copy returned %d\n", ret );
+ if ((ret =
+ mbedtls_ecp_group_copy(&ctx_verify.MBEDTLS_PRIVATE(grp),
+ &ctx_sign.MBEDTLS_PRIVATE(grp))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ecp_group_copy returned %d\n", ret);
goto exit;
}
- if( ( ret = mbedtls_ecp_copy( &ctx_verify.MBEDTLS_PRIVATE(Q), &ctx_sign.MBEDTLS_PRIVATE(Q) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ecp_copy returned %d\n", ret );
+ if ((ret =
+ mbedtls_ecp_copy(&ctx_verify.MBEDTLS_PRIVATE(Q), &ctx_sign.MBEDTLS_PRIVATE(Q))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ecp_copy returned %d\n", ret);
goto exit;
}
/*
* Verify signature
*/
- mbedtls_printf( " ok\n . Verifying signature..." );
- fflush( stdout );
+ mbedtls_printf(" ok\n . Verifying signature...");
+ fflush(stdout);
- if( ( ret = mbedtls_ecdsa_read_signature( &ctx_verify,
- hash, sizeof( hash ),
- sig, sig_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ecdsa_read_signature returned %d\n", ret );
+ if ((ret = mbedtls_ecdsa_read_signature(&ctx_verify,
+ hash, sizeof(hash),
+ sig, sig_len)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ecdsa_read_signature returned %d\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_ecdsa_free( &ctx_verify );
- mbedtls_ecdsa_free( &ctx_sign );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_ecdsa_free(&ctx_verify);
+ mbedtls_ecdsa_free(&ctx_sign);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C &&
ECPARAMS */
diff --git a/programs/pkey/gen_key.c b/programs/pkey/gen_key.c
index 9e5329f..85ee435 100644
--- a/programs/pkey/gen_key.c
+++ b/programs/pkey/gen_key.c
@@ -40,8 +40,8 @@
#define DEV_RANDOM_THRESHOLD 32
-int dev_random_entropy_poll( void *data, unsigned char *output,
- size_t len, size_t *olen )
+int dev_random_entropy_poll(void *data, unsigned char *output,
+ size_t len, size_t *olen)
{
FILE *file;
size_t ret, left = len;
@@ -50,28 +50,27 @@
*olen = 0;
- file = fopen( "/dev/random", "rb" );
- if( file == NULL )
- return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED );
+ file = fopen("/dev/random", "rb");
+ if (file == NULL) {
+ return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+ }
- while( left > 0 )
- {
+ while (left > 0) {
/* /dev/random can return much less than requested. If so, try again */
- ret = fread( p, 1, left, file );
- if( ret == 0 && ferror( file ) )
- {
- fclose( file );
- return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED );
+ ret = fread(p, 1, left, file);
+ if (ret == 0 && ferror(file)) {
+ fclose(file);
+ return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
}
p += ret;
left -= ret;
- sleep( 1 );
+ sleep(1);
}
- fclose( file );
+ fclose(file);
*olen = len;
- return( 0 );
+ return 0;
}
#endif /* !_WIN32 */
#endif
@@ -112,13 +111,13 @@
#if !defined(MBEDTLS_PK_WRITE_C) || !defined(MBEDTLS_PEM_WRITE_C) || \
!defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_ENTROPY_C) || \
!defined(MBEDTLS_CTR_DRBG_C)
-int main( void )
+int main(void)
{
- mbedtls_printf( "MBEDTLS_PK_WRITE_C and/or MBEDTLS_FS_IO and/or "
- "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
- "MBEDTLS_PEM_WRITE_C"
- "not defined.\n" );
- mbedtls_exit( 0 );
+ mbedtls_printf("MBEDTLS_PK_WRITE_C and/or MBEDTLS_FS_IO and/or "
+ "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
+ "MBEDTLS_PEM_WRITE_C"
+ "not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -126,8 +125,7 @@
/*
* global options
*/
-struct options
-{
+struct options {
int type; /* the type of key to generate */
int rsa_keysize; /* length of key in bits */
int ec_curve; /* curve identifier for EC keys */
@@ -136,7 +134,7 @@
int use_dev_random; /* use /dev/random as entropy source */
} opt;
-static int write_private_key( mbedtls_pk_context *key, const char *output_file )
+static int write_private_key(mbedtls_pk_context *key, const char *output_file)
{
int ret;
FILE *f;
@@ -145,37 +143,36 @@
size_t len = 0;
memset(output_buf, 0, 16000);
- if( opt.format == FORMAT_PEM )
- {
- if( ( ret = mbedtls_pk_write_key_pem( key, output_buf, 16000 ) ) != 0 )
- return( ret );
+ if (opt.format == FORMAT_PEM) {
+ if ((ret = mbedtls_pk_write_key_pem(key, output_buf, 16000)) != 0) {
+ return ret;
+ }
- len = strlen( (char *) output_buf );
- }
- else
- {
- if( ( ret = mbedtls_pk_write_key_der( key, output_buf, 16000 ) ) < 0 )
- return( ret );
+ len = strlen((char *) output_buf);
+ } else {
+ if ((ret = mbedtls_pk_write_key_der(key, output_buf, 16000)) < 0) {
+ return ret;
+ }
len = ret;
c = output_buf + sizeof(output_buf) - len;
}
- if( ( f = fopen( output_file, "wb" ) ) == NULL )
- return( -1 );
-
- if( fwrite( c, 1, len, f ) != len )
- {
- fclose( f );
- return( -1 );
+ if ((f = fopen(output_file, "wb")) == NULL) {
+ return -1;
}
- fclose( f );
+ if (fwrite(c, 1, len, f) != len) {
+ fclose(f);
+ return -1;
+ }
- return( 0 );
+ fclose(f);
+
+ return 0;
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -195,24 +192,24 @@
* Set to sane values
*/
- mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q );
- mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP );
- mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP );
+ mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q);
+ mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP);
+ mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP);
- mbedtls_pk_init( &key );
- mbedtls_ctr_drbg_init( &ctr_drbg );
- memset( buf, 0, sizeof( buf ) );
+ mbedtls_pk_init(&key);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ memset(buf, 0, sizeof(buf));
- if( argc == 0 )
- {
- usage:
- mbedtls_printf( USAGE );
+ if (argc == 0) {
+usage:
+ mbedtls_printf(USAGE);
#if defined(MBEDTLS_ECP_C)
- mbedtls_printf( " available ec_curve values:\n" );
+ mbedtls_printf(" available ec_curve values:\n");
curve_info = mbedtls_ecp_curve_list();
- mbedtls_printf( " %s (default)\n", curve_info->name );
- while( ( ++curve_info )->name != NULL )
- mbedtls_printf( " %s\n", curve_info->name );
+ mbedtls_printf(" %s (default)\n", curve_info->name);
+ while ((++curve_info)->name != NULL) {
+ mbedtls_printf(" %s\n", curve_info->name);
+ }
#endif /* MBEDTLS_ECP_C */
goto exit;
}
@@ -224,209 +221,194 @@
opt.format = DFL_FORMAT;
opt.use_dev_random = DFL_USE_DEV_RANDOM;
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
+ if ((q = strchr(p, '=')) == NULL) {
goto usage;
+ }
*q++ = '\0';
- if( strcmp( p, "type" ) == 0 )
- {
- if( strcmp( q, "rsa" ) == 0 )
+ if (strcmp(p, "type") == 0) {
+ if (strcmp(q, "rsa") == 0) {
opt.type = MBEDTLS_PK_RSA;
- else if( strcmp( q, "ec" ) == 0 )
+ } else if (strcmp(q, "ec") == 0) {
opt.type = MBEDTLS_PK_ECKEY;
- else
+ } else {
goto usage;
- }
- else if( strcmp( p, "format" ) == 0 )
- {
- if( strcmp( q, "pem" ) == 0 )
+ }
+ } else if (strcmp(p, "format") == 0) {
+ if (strcmp(q, "pem") == 0) {
opt.format = FORMAT_PEM;
- else if( strcmp( q, "der" ) == 0 )
+ } else if (strcmp(q, "der") == 0) {
opt.format = FORMAT_DER;
- else
+ } else {
goto usage;
- }
- else if( strcmp( p, "rsa_keysize" ) == 0 )
- {
- opt.rsa_keysize = atoi( q );
- if( opt.rsa_keysize < 1024 ||
- opt.rsa_keysize > MBEDTLS_MPI_MAX_BITS )
+ }
+ } else if (strcmp(p, "rsa_keysize") == 0) {
+ opt.rsa_keysize = atoi(q);
+ if (opt.rsa_keysize < 1024 ||
+ opt.rsa_keysize > MBEDTLS_MPI_MAX_BITS) {
goto usage;
+ }
}
#if defined(MBEDTLS_ECP_C)
- else if( strcmp( p, "ec_curve" ) == 0 )
- {
- if( ( curve_info = mbedtls_ecp_curve_info_from_name( q ) ) == NULL )
+ else if (strcmp(p, "ec_curve") == 0) {
+ if ((curve_info = mbedtls_ecp_curve_info_from_name(q)) == NULL) {
goto usage;
+ }
opt.ec_curve = curve_info->grp_id;
}
#endif
- else if( strcmp( p, "filename" ) == 0 )
+ else if (strcmp(p, "filename") == 0) {
opt.filename = q;
- else if( strcmp( p, "use_dev_random" ) == 0 )
- {
- opt.use_dev_random = atoi( q );
- if( opt.use_dev_random < 0 || opt.use_dev_random > 1 )
+ } else if (strcmp(p, "use_dev_random") == 0) {
+ opt.use_dev_random = atoi(q);
+ if (opt.use_dev_random < 0 || opt.use_dev_random > 1) {
goto usage;
- }
- else
+ }
+ } else {
goto usage;
+ }
}
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- mbedtls_entropy_init( &entropy );
+ mbedtls_entropy_init(&entropy);
#if !defined(_WIN32) && defined(MBEDTLS_FS_IO)
- if( opt.use_dev_random )
- {
- if( ( ret = mbedtls_entropy_add_source( &entropy, dev_random_entropy_poll,
- NULL, DEV_RANDOM_THRESHOLD,
- MBEDTLS_ENTROPY_SOURCE_STRONG ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_entropy_add_source returned -0x%04x\n", (unsigned int) -ret );
+ if (opt.use_dev_random) {
+ if ((ret = mbedtls_entropy_add_source(&entropy, dev_random_entropy_poll,
+ NULL, DEV_RANDOM_THRESHOLD,
+ MBEDTLS_ENTROPY_SOURCE_STRONG)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_entropy_add_source returned -0x%04x\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf("\n Using /dev/random, so can take a long time! " );
- fflush( stdout );
+ mbedtls_printf("\n Using /dev/random, so can take a long time! ");
+ fflush(stdout);
}
#endif /* !_WIN32 && MBEDTLS_FS_IO */
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", (unsigned int) -ret );
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n",
+ (unsigned int) -ret);
goto exit;
}
/*
* 1.1. Generate the key
*/
- mbedtls_printf( "\n . Generating the private key ..." );
- fflush( stdout );
+ mbedtls_printf("\n . Generating the private key ...");
+ fflush(stdout);
- if( ( ret = mbedtls_pk_setup( &key,
- mbedtls_pk_info_from_type( (mbedtls_pk_type_t) opt.type ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_setup returned -0x%04x", (unsigned int) -ret );
+ if ((ret = mbedtls_pk_setup(&key,
+ mbedtls_pk_info_from_type((mbedtls_pk_type_t) opt.type))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_setup returned -0x%04x", (unsigned int) -ret);
goto exit;
}
#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_GENPRIME)
- if( opt.type == MBEDTLS_PK_RSA )
- {
- ret = mbedtls_rsa_gen_key( mbedtls_pk_rsa( key ), mbedtls_ctr_drbg_random, &ctr_drbg,
- opt.rsa_keysize, 65537 );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_gen_key returned -0x%04x", (unsigned int) -ret );
+ if (opt.type == MBEDTLS_PK_RSA) {
+ ret = mbedtls_rsa_gen_key(mbedtls_pk_rsa(key), mbedtls_ctr_drbg_random, &ctr_drbg,
+ opt.rsa_keysize, 65537);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_gen_key returned -0x%04x",
+ (unsigned int) -ret);
goto exit;
}
- }
- else
+ } else
#endif /* MBEDTLS_RSA_C */
#if defined(MBEDTLS_ECP_C)
- if( opt.type == MBEDTLS_PK_ECKEY )
- {
- ret = mbedtls_ecp_gen_key( (mbedtls_ecp_group_id) opt.ec_curve,
- mbedtls_pk_ec( key ),
- mbedtls_ctr_drbg_random, &ctr_drbg );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ecp_gen_key returned -0x%04x", (unsigned int) -ret );
+ if (opt.type == MBEDTLS_PK_ECKEY) {
+ ret = mbedtls_ecp_gen_key((mbedtls_ecp_group_id) opt.ec_curve,
+ mbedtls_pk_ec(key),
+ mbedtls_ctr_drbg_random, &ctr_drbg);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ecp_gen_key returned -0x%04x",
+ (unsigned int) -ret);
goto exit;
}
- }
- else
+ } else
#endif /* MBEDTLS_ECP_C */
{
- mbedtls_printf( " failed\n ! key type not supported\n" );
+ mbedtls_printf(" failed\n ! key type not supported\n");
goto exit;
}
/*
* 1.2 Print the key
*/
- mbedtls_printf( " ok\n . Key information:\n" );
+ mbedtls_printf(" ok\n . Key information:\n");
#if defined(MBEDTLS_RSA_C)
- if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_RSA )
- {
- mbedtls_rsa_context *rsa = mbedtls_pk_rsa( key );
+ if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_RSA) {
+ mbedtls_rsa_context *rsa = mbedtls_pk_rsa(key);
- if( ( ret = mbedtls_rsa_export ( rsa, &N, &P, &Q, &D, &E ) ) != 0 ||
- ( ret = mbedtls_rsa_export_crt( rsa, &DP, &DQ, &QP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! could not export RSA parameters\n\n" );
+ if ((ret = mbedtls_rsa_export(rsa, &N, &P, &Q, &D, &E)) != 0 ||
+ (ret = mbedtls_rsa_export_crt(rsa, &DP, &DQ, &QP)) != 0) {
+ mbedtls_printf(" failed\n ! could not export RSA parameters\n\n");
goto exit;
}
- mbedtls_mpi_write_file( "N: ", &N, 16, NULL );
- mbedtls_mpi_write_file( "E: ", &E, 16, NULL );
- mbedtls_mpi_write_file( "D: ", &D, 16, NULL );
- mbedtls_mpi_write_file( "P: ", &P, 16, NULL );
- mbedtls_mpi_write_file( "Q: ", &Q, 16, NULL );
- mbedtls_mpi_write_file( "DP: ", &DP, 16, NULL );
- mbedtls_mpi_write_file( "DQ: ", &DQ, 16, NULL );
- mbedtls_mpi_write_file( "QP: ", &QP, 16, NULL );
- }
- else
+ mbedtls_mpi_write_file("N: ", &N, 16, NULL);
+ mbedtls_mpi_write_file("E: ", &E, 16, NULL);
+ mbedtls_mpi_write_file("D: ", &D, 16, NULL);
+ mbedtls_mpi_write_file("P: ", &P, 16, NULL);
+ mbedtls_mpi_write_file("Q: ", &Q, 16, NULL);
+ mbedtls_mpi_write_file("DP: ", &DP, 16, NULL);
+ mbedtls_mpi_write_file("DQ: ", &DQ, 16, NULL);
+ mbedtls_mpi_write_file("QP: ", &QP, 16, NULL);
+ } else
#endif
#if defined(MBEDTLS_ECP_C)
- if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_ECKEY )
- {
- mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( key );
- mbedtls_printf( "curve: %s\n",
- mbedtls_ecp_curve_info_from_grp_id( ecp->MBEDTLS_PRIVATE(grp).id )->name );
- mbedtls_mpi_write_file( "X_Q: ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL );
- mbedtls_mpi_write_file( "Y_Q: ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL );
- mbedtls_mpi_write_file( "D: ", &ecp->MBEDTLS_PRIVATE(d) , 16, NULL );
- }
- else
+ if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_ECKEY) {
+ mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(key);
+ mbedtls_printf("curve: %s\n",
+ mbedtls_ecp_curve_info_from_grp_id(ecp->MBEDTLS_PRIVATE(grp).id)->name);
+ mbedtls_mpi_write_file("X_Q: ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL);
+ mbedtls_mpi_write_file("Y_Q: ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL);
+ mbedtls_mpi_write_file("D: ", &ecp->MBEDTLS_PRIVATE(d), 16, NULL);
+ } else
#endif
- mbedtls_printf(" ! key type not supported\n");
+ mbedtls_printf(" ! key type not supported\n");
/*
* 1.3 Export key
*/
- mbedtls_printf( " . Writing key to file..." );
+ mbedtls_printf(" . Writing key to file...");
- if( ( ret = write_private_key( &key, opt.filename ) ) != 0 )
- {
- mbedtls_printf( " failed\n" );
+ if ((ret = write_private_key(&key, opt.filename)) != 0) {
+ mbedtls_printf(" failed\n");
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- if( exit_code != MBEDTLS_EXIT_SUCCESS )
- {
+ if (exit_code != MBEDTLS_EXIT_SUCCESS) {
#ifdef MBEDTLS_ERROR_C
- mbedtls_strerror( ret, buf, sizeof( buf ) );
- mbedtls_printf( " - %s\n", buf );
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" - %s\n", buf);
#else
mbedtls_printf("\n");
#endif
}
- mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q );
- mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP );
- mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP );
+ mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q);
+ mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP);
+ mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP);
- mbedtls_pk_free( &key );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_pk_free(&key);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_PK_WRITE_C && MBEDTLS_PEM_WRITE_C && MBEDTLS_FS_IO &&
* MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C */
diff --git a/programs/pkey/key_app.c b/programs/pkey/key_app.c
index 02a19e9..8ed88da 100644
--- a/programs/pkey/key_app.c
+++ b/programs/pkey/key_app.c
@@ -55,12 +55,12 @@
#if !defined(MBEDTLS_BIGNUM_C) || \
!defined(MBEDTLS_PK_PARSE_C) || !defined(MBEDTLS_FS_IO) || \
!defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or "
- "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or "
- "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or "
+ "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -68,15 +68,14 @@
/*
* global options
*/
-struct options
-{
+struct options {
int mode; /* the mode to run the application in */
const char *filename; /* filename of the key file */
const char *password; /* password for the private key */
const char *password_file; /* password_file for the private key */
} opt;
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -94,20 +93,19 @@
/*
* Set to sane values
*/
- mbedtls_entropy_init( &entropy );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_entropy_init(&entropy);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
- mbedtls_pk_init( &pk );
- memset( buf, 0, sizeof(buf) );
+ mbedtls_pk_init(&pk);
+ memset(buf, 0, sizeof(buf));
- mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q );
- mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP );
- mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP );
+ mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q);
+ mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP);
+ mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP);
- if( argc == 0 )
- {
- usage:
- mbedtls_printf( USAGE );
+ if (argc == 0) {
+usage:
+ mbedtls_printf(USAGE);
goto cleanup;
}
@@ -116,206 +114,204 @@
opt.password = DFL_PASSWORD;
opt.password_file = DFL_PASSWORD_FILE;
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
+ if ((q = strchr(p, '=')) == NULL) {
goto usage;
+ }
*q++ = '\0';
- if( strcmp( p, "mode" ) == 0 )
- {
- if( strcmp( q, "private" ) == 0 )
+ if (strcmp(p, "mode") == 0) {
+ if (strcmp(q, "private") == 0) {
opt.mode = MODE_PRIVATE;
- else if( strcmp( q, "public" ) == 0 )
+ } else if (strcmp(q, "public") == 0) {
opt.mode = MODE_PUBLIC;
- else
+ } else {
goto usage;
- }
- else if( strcmp( p, "filename" ) == 0 )
+ }
+ } else if (strcmp(p, "filename") == 0) {
opt.filename = q;
- else if( strcmp( p, "password" ) == 0 )
+ } else if (strcmp(p, "password") == 0) {
opt.password = q;
- else if( strcmp( p, "password_file" ) == 0 )
+ } else if (strcmp(p, "password_file") == 0) {
opt.password_file = q;
- else
+ } else {
goto usage;
+ }
}
- if( opt.mode == MODE_PRIVATE )
- {
- if( strlen( opt.password ) && strlen( opt.password_file ) )
- {
- mbedtls_printf( "Error: cannot have both password and password_file\n" );
+ if (opt.mode == MODE_PRIVATE) {
+ if (strlen(opt.password) && strlen(opt.password_file)) {
+ mbedtls_printf("Error: cannot have both password and password_file\n");
goto usage;
}
- if( strlen( opt.password_file ) )
- {
+ if (strlen(opt.password_file)) {
FILE *f;
- mbedtls_printf( "\n . Loading the password file ..." );
- if( ( f = fopen( opt.password_file, "rb" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! fopen returned NULL\n" );
+ mbedtls_printf("\n . Loading the password file ...");
+ if ((f = fopen(opt.password_file, "rb")) == NULL) {
+ mbedtls_printf(" failed\n ! fopen returned NULL\n");
goto cleanup;
}
- if( fgets( buf, sizeof(buf), f ) == NULL )
- {
- fclose( f );
- mbedtls_printf( "Error: fgets() failed to retrieve password\n" );
+ if (fgets(buf, sizeof(buf), f) == NULL) {
+ fclose(f);
+ mbedtls_printf("Error: fgets() failed to retrieve password\n");
goto cleanup;
}
- fclose( f );
+ fclose(f);
- i = (int) strlen( buf );
- if( buf[i - 1] == '\n' ) buf[i - 1] = '\0';
- if( buf[i - 2] == '\r' ) buf[i - 2] = '\0';
+ i = (int) strlen(buf);
+ if (buf[i - 1] == '\n') {
+ buf[i - 1] = '\0';
+ }
+ if (buf[i - 2] == '\r') {
+ buf[i - 2] = '\0';
+ }
opt.password = buf;
}
/*
* 1.1. Load the key
*/
- mbedtls_printf( "\n . Loading the private key ..." );
- fflush( stdout );
+ mbedtls_printf("\n . Loading the private key ...");
+ fflush(stdout);
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", (unsigned int) -ret );
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n",
+ (unsigned int) -ret);
goto cleanup;
}
- ret = mbedtls_pk_parse_keyfile( &pk, opt.filename, opt.password,
- mbedtls_ctr_drbg_random, &ctr_drbg );
+ ret = mbedtls_pk_parse_keyfile(&pk, opt.filename, opt.password,
+ mbedtls_ctr_drbg_random, &ctr_drbg);
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile returned -0x%04x\n", (unsigned int) -ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile returned -0x%04x\n",
+ (unsigned int) -ret);
goto cleanup;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1.2 Print the key
*/
- mbedtls_printf( " . Key information ...\n" );
+ mbedtls_printf(" . Key information ...\n");
#if defined(MBEDTLS_RSA_C)
- if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_RSA )
- {
- mbedtls_rsa_context *rsa = mbedtls_pk_rsa( pk );
+ if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_RSA) {
+ mbedtls_rsa_context *rsa = mbedtls_pk_rsa(pk);
- if( ( ret = mbedtls_rsa_export ( rsa, &N, &P, &Q, &D, &E ) ) != 0 ||
- ( ret = mbedtls_rsa_export_crt( rsa, &DP, &DQ, &QP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! could not export RSA parameters\n\n" );
+ if ((ret = mbedtls_rsa_export(rsa, &N, &P, &Q, &D, &E)) != 0 ||
+ (ret = mbedtls_rsa_export_crt(rsa, &DP, &DQ, &QP)) != 0) {
+ mbedtls_printf(" failed\n ! could not export RSA parameters\n\n");
goto cleanup;
}
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "N: ", &N, 16, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "E: ", &E, 16, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "D: ", &D, 16, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "P: ", &P, 16, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q: ", &Q, 16, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "DP: ", &DP, 16, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "DQ: ", &DQ, 16, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "QP: ", &QP, 16, NULL ) );
- }
- else
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("N: ", &N, 16, NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("E: ", &E, 16, NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("D: ", &D, 16, NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("P: ", &P, 16, NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q: ", &Q, 16, NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("DP: ", &DP, 16, NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("DQ: ", &DQ, 16, NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("QP: ", &QP, 16, NULL));
+ } else
#endif
#if defined(MBEDTLS_ECP_C)
- if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_ECKEY )
- {
- mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( pk );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q(X): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q(Y): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q(Z): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "D : ", &ecp->MBEDTLS_PRIVATE(d) , 16, NULL ) );
- }
- else
+ if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_ECKEY) {
+ mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(pk);
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q(X): ",
+ &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16,
+ NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q(Y): ",
+ &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16,
+ NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q(Z): ",
+ &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16,
+ NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("D : ", &ecp->MBEDTLS_PRIVATE(d), 16, NULL));
+ } else
#endif
{
- mbedtls_printf("Do not know how to print key information for this type\n" );
+ mbedtls_printf("Do not know how to print key information for this type\n");
goto cleanup;
}
- }
- else if( opt.mode == MODE_PUBLIC )
- {
+ } else if (opt.mode == MODE_PUBLIC) {
/*
* 1.1. Load the key
*/
- mbedtls_printf( "\n . Loading the public key ..." );
- fflush( stdout );
+ mbedtls_printf("\n . Loading the public key ...");
+ fflush(stdout);
- ret = mbedtls_pk_parse_public_keyfile( &pk, opt.filename );
+ ret = mbedtls_pk_parse_public_keyfile(&pk, opt.filename);
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_public_keyfile returned -0x%04x\n", (unsigned int) -ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_public_keyfile returned -0x%04x\n",
+ (unsigned int) -ret);
goto cleanup;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
- mbedtls_printf( " . Key information ...\n" );
+ mbedtls_printf(" . Key information ...\n");
#if defined(MBEDTLS_RSA_C)
- if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_RSA )
- {
- mbedtls_rsa_context *rsa = mbedtls_pk_rsa( pk );
+ if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_RSA) {
+ mbedtls_rsa_context *rsa = mbedtls_pk_rsa(pk);
- if( ( ret = mbedtls_rsa_export( rsa, &N, NULL, NULL,
- NULL, &E ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! could not export RSA parameters\n\n" );
+ if ((ret = mbedtls_rsa_export(rsa, &N, NULL, NULL,
+ NULL, &E)) != 0) {
+ mbedtls_printf(" failed\n ! could not export RSA parameters\n\n");
goto cleanup;
}
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "N: ", &N, 16, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "E: ", &E, 16, NULL ) );
- }
- else
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("N: ", &N, 16, NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("E: ", &E, 16, NULL));
+ } else
#endif
#if defined(MBEDTLS_ECP_C)
- if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_ECKEY )
- {
- mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( pk );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q(X): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q(Y): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q(Z): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, NULL ) );
- }
- else
+ if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_ECKEY) {
+ mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(pk);
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q(X): ",
+ &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16,
+ NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q(Y): ",
+ &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16,
+ NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q(Z): ",
+ &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16,
+ NULL));
+ } else
#endif
{
- mbedtls_printf("Do not know how to print key information for this type\n" );
+ mbedtls_printf("Do not know how to print key information for this type\n");
goto cleanup;
}
- }
- else
+ } else {
goto usage;
+ }
exit_code = MBEDTLS_EXIT_SUCCESS;
cleanup:
#if defined(MBEDTLS_ERROR_C)
- if( exit_code != MBEDTLS_EXIT_SUCCESS )
- {
- mbedtls_strerror( ret, buf, sizeof( buf ) );
- mbedtls_printf( " ! Last error was: %s\n", buf );
+ if (exit_code != MBEDTLS_EXIT_SUCCESS) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" ! Last error was: %s\n", buf);
}
#endif
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_pk_free( &pk );
- mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q );
- mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP );
- mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP );
+ mbedtls_pk_free(&pk);
+ mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q);
+ mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP);
+ mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO &&
MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C */
diff --git a/programs/pkey/key_app_writer.c b/programs/pkey/key_app_writer.c
index 589bee9..2dbb79e 100644
--- a/programs/pkey/key_app_writer.c
+++ b/programs/pkey/key_app_writer.c
@@ -83,12 +83,12 @@
!defined(MBEDTLS_FS_IO) || \
!defined(MBEDTLS_ENTROPY_C) || \
!defined(MBEDTLS_CTR_DRBG_C)
-int main( void )
+int main(void)
{
- mbedtls_printf( "MBEDTLS_PK_PARSE_C and/or MBEDTLS_PK_WRITE_C and/or "
- "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
- "MBEDTLS_FS_IO not defined.\n" );
- mbedtls_exit( 0 );
+ mbedtls_printf("MBEDTLS_PK_PARSE_C and/or MBEDTLS_PK_WRITE_C and/or "
+ "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
+ "MBEDTLS_FS_IO not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -96,8 +96,7 @@
/*
* global options
*/
-struct options
-{
+struct options {
int mode; /* the mode to run the application in */
const char *filename; /* filename of the key file */
int output_mode; /* the output mode to use */
@@ -105,7 +104,7 @@
int output_format; /* the output format to use */
} opt;
-static int write_public_key( mbedtls_pk_context *key, const char *output_file )
+static int write_public_key(mbedtls_pk_context *key, const char *output_file)
{
int ret;
FILE *f;
@@ -116,38 +115,38 @@
memset(output_buf, 0, 16000);
#if defined(MBEDTLS_PEM_WRITE_C)
- if( opt.output_format == OUTPUT_FORMAT_PEM )
- {
- if( ( ret = mbedtls_pk_write_pubkey_pem( key, output_buf, 16000 ) ) != 0 )
- return( ret );
+ if (opt.output_format == OUTPUT_FORMAT_PEM) {
+ if ((ret = mbedtls_pk_write_pubkey_pem(key, output_buf, 16000)) != 0) {
+ return ret;
+ }
- len = strlen( (char *) output_buf );
- }
- else
+ len = strlen((char *) output_buf);
+ } else
#endif
{
- if( ( ret = mbedtls_pk_write_pubkey_der( key, output_buf, 16000 ) ) < 0 )
- return( ret );
+ if ((ret = mbedtls_pk_write_pubkey_der(key, output_buf, 16000)) < 0) {
+ return ret;
+ }
len = ret;
c = output_buf + sizeof(output_buf) - len;
}
- if( ( f = fopen( output_file, "w" ) ) == NULL )
- return( -1 );
-
- if( fwrite( c, 1, len, f ) != len )
- {
- fclose( f );
- return( -1 );
+ if ((f = fopen(output_file, "w")) == NULL) {
+ return -1;
}
- fclose( f );
+ if (fwrite(c, 1, len, f) != len) {
+ fclose(f);
+ return -1;
+ }
- return( 0 );
+ fclose(f);
+
+ return 0;
}
-static int write_private_key( mbedtls_pk_context *key, const char *output_file )
+static int write_private_key(mbedtls_pk_context *key, const char *output_file)
{
int ret;
FILE *f;
@@ -158,38 +157,38 @@
memset(output_buf, 0, 16000);
#if defined(MBEDTLS_PEM_WRITE_C)
- if( opt.output_format == OUTPUT_FORMAT_PEM )
- {
- if( ( ret = mbedtls_pk_write_key_pem( key, output_buf, 16000 ) ) != 0 )
- return( ret );
+ if (opt.output_format == OUTPUT_FORMAT_PEM) {
+ if ((ret = mbedtls_pk_write_key_pem(key, output_buf, 16000)) != 0) {
+ return ret;
+ }
- len = strlen( (char *) output_buf );
- }
- else
+ len = strlen((char *) output_buf);
+ } else
#endif
{
- if( ( ret = mbedtls_pk_write_key_der( key, output_buf, 16000 ) ) < 0 )
- return( ret );
+ if ((ret = mbedtls_pk_write_key_der(key, output_buf, 16000)) < 0) {
+ return ret;
+ }
len = ret;
c = output_buf + sizeof(output_buf) - len;
}
- if( ( f = fopen( output_file, "w" ) ) == NULL )
- return( -1 );
-
- if( fwrite( c, 1, len, f ) != len )
- {
- fclose( f );
- return( -1 );
+ if ((f = fopen(output_file, "w")) == NULL) {
+ return -1;
}
- fclose( f );
+ if (fwrite(c, 1, len, f) != len) {
+ fclose(f);
+ return -1;
+ }
- return( 0 );
+ fclose(f);
+
+ return 0;
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -209,22 +208,21 @@
/*
* Set to sane values
*/
- mbedtls_entropy_init( &entropy );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_entropy_init(&entropy);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
- mbedtls_pk_init( &key );
+ mbedtls_pk_init(&key);
#if defined(MBEDTLS_ERROR_C)
- memset( buf, 0, sizeof( buf ) );
+ memset(buf, 0, sizeof(buf));
#endif
- mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q );
- mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP );
- mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP );
+ mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q);
+ mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP);
+ mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP);
- if( argc == 0 )
- {
- usage:
- mbedtls_printf( USAGE );
+ if (argc == 0) {
+usage:
+ mbedtls_printf(USAGE);
goto exit;
}
@@ -234,218 +232,198 @@
opt.output_file = DFL_OUTPUT_FILENAME;
opt.output_format = DFL_OUTPUT_FORMAT;
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
+ if ((q = strchr(p, '=')) == NULL) {
goto usage;
+ }
*q++ = '\0';
- if( strcmp( p, "mode" ) == 0 )
- {
- if( strcmp( q, "private" ) == 0 )
+ if (strcmp(p, "mode") == 0) {
+ if (strcmp(q, "private") == 0) {
opt.mode = MODE_PRIVATE;
- else if( strcmp( q, "public" ) == 0 )
+ } else if (strcmp(q, "public") == 0) {
opt.mode = MODE_PUBLIC;
- else
+ } else {
goto usage;
- }
- else if( strcmp( p, "output_mode" ) == 0 )
- {
- if( strcmp( q, "private" ) == 0 )
+ }
+ } else if (strcmp(p, "output_mode") == 0) {
+ if (strcmp(q, "private") == 0) {
opt.output_mode = OUTPUT_MODE_PRIVATE;
- else if( strcmp( q, "public" ) == 0 )
+ } else if (strcmp(q, "public") == 0) {
opt.output_mode = OUTPUT_MODE_PUBLIC;
- else
+ } else {
goto usage;
- }
- else if( strcmp( p, "output_format" ) == 0 )
- {
+ }
+ } else if (strcmp(p, "output_format") == 0) {
#if defined(MBEDTLS_PEM_WRITE_C)
- if( strcmp( q, "pem" ) == 0 )
+ if (strcmp(q, "pem") == 0) {
opt.output_format = OUTPUT_FORMAT_PEM;
- else
+ } else
#endif
- if( strcmp( q, "der" ) == 0 )
+ if (strcmp(q, "der") == 0) {
opt.output_format = OUTPUT_FORMAT_DER;
- else
+ } else {
goto usage;
- }
- else if( strcmp( p, "filename" ) == 0 )
+ }
+ } else if (strcmp(p, "filename") == 0) {
opt.filename = q;
- else if( strcmp( p, "output_file" ) == 0 )
+ } else if (strcmp(p, "output_file") == 0) {
opt.output_file = q;
- else
+ } else {
goto usage;
+ }
}
- if( opt.mode == MODE_NONE && opt.output_mode != OUTPUT_MODE_NONE )
- {
- mbedtls_printf( "\nCannot output a key without reading one.\n");
+ if (opt.mode == MODE_NONE && opt.output_mode != OUTPUT_MODE_NONE) {
+ mbedtls_printf("\nCannot output a key without reading one.\n");
goto exit;
}
- if( opt.mode == MODE_PUBLIC && opt.output_mode == OUTPUT_MODE_PRIVATE )
- {
- mbedtls_printf( "\nCannot output a private key from a public key.\n");
+ if (opt.mode == MODE_PUBLIC && opt.output_mode == OUTPUT_MODE_PRIVATE) {
+ mbedtls_printf("\nCannot output a private key from a public key.\n");
goto exit;
}
- if( opt.mode == MODE_PRIVATE )
- {
+ if (opt.mode == MODE_PRIVATE) {
/*
* 1.1. Load the key
*/
- mbedtls_printf( "\n . Loading the private key ..." );
- fflush( stdout );
+ mbedtls_printf("\n . Loading the private key ...");
+ fflush(stdout);
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", (unsigned int) -ret );
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n",
+ (unsigned int) -ret);
goto exit;
}
- ret = mbedtls_pk_parse_keyfile( &key, opt.filename, NULL,
- mbedtls_ctr_drbg_random, &ctr_drbg );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile returned -0x%04x", (unsigned int) -ret );
+ ret = mbedtls_pk_parse_keyfile(&key, opt.filename, NULL,
+ mbedtls_ctr_drbg_random, &ctr_drbg);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile returned -0x%04x",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1.2 Print the key
*/
- mbedtls_printf( " . Key information ...\n" );
+ mbedtls_printf(" . Key information ...\n");
#if defined(MBEDTLS_RSA_C)
- if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_RSA )
- {
- mbedtls_rsa_context *rsa = mbedtls_pk_rsa( key );
+ if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_RSA) {
+ mbedtls_rsa_context *rsa = mbedtls_pk_rsa(key);
- if( ( ret = mbedtls_rsa_export ( rsa, &N, &P, &Q, &D, &E ) ) != 0 ||
- ( ret = mbedtls_rsa_export_crt( rsa, &DP, &DQ, &QP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! could not export RSA parameters\n\n" );
+ if ((ret = mbedtls_rsa_export(rsa, &N, &P, &Q, &D, &E)) != 0 ||
+ (ret = mbedtls_rsa_export_crt(rsa, &DP, &DQ, &QP)) != 0) {
+ mbedtls_printf(" failed\n ! could not export RSA parameters\n\n");
goto exit;
}
- mbedtls_mpi_write_file( "N: ", &N, 16, NULL );
- mbedtls_mpi_write_file( "E: ", &E, 16, NULL );
- mbedtls_mpi_write_file( "D: ", &D, 16, NULL );
- mbedtls_mpi_write_file( "P: ", &P, 16, NULL );
- mbedtls_mpi_write_file( "Q: ", &Q, 16, NULL );
- mbedtls_mpi_write_file( "DP: ", &DP, 16, NULL );
- mbedtls_mpi_write_file( "DQ: ", &DQ, 16, NULL );
- mbedtls_mpi_write_file( "QP: ", &QP, 16, NULL );
- }
- else
+ mbedtls_mpi_write_file("N: ", &N, 16, NULL);
+ mbedtls_mpi_write_file("E: ", &E, 16, NULL);
+ mbedtls_mpi_write_file("D: ", &D, 16, NULL);
+ mbedtls_mpi_write_file("P: ", &P, 16, NULL);
+ mbedtls_mpi_write_file("Q: ", &Q, 16, NULL);
+ mbedtls_mpi_write_file("DP: ", &DP, 16, NULL);
+ mbedtls_mpi_write_file("DQ: ", &DQ, 16, NULL);
+ mbedtls_mpi_write_file("QP: ", &QP, 16, NULL);
+ } else
#endif
#if defined(MBEDTLS_ECP_C)
- if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_ECKEY )
- {
- mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( key );
- mbedtls_mpi_write_file( "Q(X): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL );
- mbedtls_mpi_write_file( "Q(Y): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL );
- mbedtls_mpi_write_file( "Q(Z): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, NULL );
- mbedtls_mpi_write_file( "D : ", &ecp->MBEDTLS_PRIVATE(d) , 16, NULL );
- }
- else
+ if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_ECKEY) {
+ mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(key);
+ mbedtls_mpi_write_file("Q(X): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL);
+ mbedtls_mpi_write_file("Q(Y): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL);
+ mbedtls_mpi_write_file("Q(Z): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, NULL);
+ mbedtls_mpi_write_file("D : ", &ecp->MBEDTLS_PRIVATE(d), 16, NULL);
+ } else
#endif
- mbedtls_printf("key type not supported yet\n");
+ mbedtls_printf("key type not supported yet\n");
- }
- else if( opt.mode == MODE_PUBLIC )
- {
+ } else if (opt.mode == MODE_PUBLIC) {
/*
* 1.1. Load the key
*/
- mbedtls_printf( "\n . Loading the public key ..." );
- fflush( stdout );
+ mbedtls_printf("\n . Loading the public key ...");
+ fflush(stdout);
- ret = mbedtls_pk_parse_public_keyfile( &key, opt.filename );
+ ret = mbedtls_pk_parse_public_keyfile(&key, opt.filename);
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_public_key returned -0x%04x", (unsigned int) -ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_public_key returned -0x%04x",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1.2 Print the key
*/
- mbedtls_printf( " . Key information ...\n" );
+ mbedtls_printf(" . Key information ...\n");
#if defined(MBEDTLS_RSA_C)
- if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_RSA )
- {
- mbedtls_rsa_context *rsa = mbedtls_pk_rsa( key );
+ if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_RSA) {
+ mbedtls_rsa_context *rsa = mbedtls_pk_rsa(key);
- if( ( ret = mbedtls_rsa_export( rsa, &N, NULL, NULL,
- NULL, &E ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! could not export RSA parameters\n\n" );
+ if ((ret = mbedtls_rsa_export(rsa, &N, NULL, NULL,
+ NULL, &E)) != 0) {
+ mbedtls_printf(" failed\n ! could not export RSA parameters\n\n");
goto exit;
}
- mbedtls_mpi_write_file( "N: ", &N, 16, NULL );
- mbedtls_mpi_write_file( "E: ", &E, 16, NULL );
- }
- else
+ mbedtls_mpi_write_file("N: ", &N, 16, NULL);
+ mbedtls_mpi_write_file("E: ", &E, 16, NULL);
+ } else
#endif
#if defined(MBEDTLS_ECP_C)
- if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_ECKEY )
- {
- mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( key );
- mbedtls_mpi_write_file( "Q(X): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL );
- mbedtls_mpi_write_file( "Q(Y): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL );
- mbedtls_mpi_write_file( "Q(Z): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, NULL );
- }
- else
+ if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_ECKEY) {
+ mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(key);
+ mbedtls_mpi_write_file("Q(X): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL);
+ mbedtls_mpi_write_file("Q(Y): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL);
+ mbedtls_mpi_write_file("Q(Z): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, NULL);
+ } else
#endif
- mbedtls_printf("key type not supported yet\n");
- }
- else
+ mbedtls_printf("key type not supported yet\n");
+ } else {
goto usage;
-
- if( opt.output_mode == OUTPUT_MODE_PUBLIC )
- {
- write_public_key( &key, opt.output_file );
}
- if( opt.output_mode == OUTPUT_MODE_PRIVATE )
- {
- write_private_key( &key, opt.output_file );
+
+ if (opt.output_mode == OUTPUT_MODE_PUBLIC) {
+ write_public_key(&key, opt.output_file);
+ }
+ if (opt.output_mode == OUTPUT_MODE_PRIVATE) {
+ write_private_key(&key, opt.output_file);
}
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- if( exit_code != MBEDTLS_EXIT_SUCCESS )
- {
+ if (exit_code != MBEDTLS_EXIT_SUCCESS) {
#ifdef MBEDTLS_ERROR_C
- mbedtls_strerror( ret, buf, sizeof( buf ) );
- mbedtls_printf( " - %s\n", buf );
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" - %s\n", buf);
#else
mbedtls_printf("\n");
#endif
}
- mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q );
- mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP );
- mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP );
+ mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q);
+ mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP);
+ mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP);
- mbedtls_pk_free( &key );
+ mbedtls_pk_free(&key);
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_PK_PARSE_C && MBEDTLS_PK_WRITE_C && MBEDTLS_FS_IO &&
MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C */
diff --git a/programs/pkey/mpi_demo.c b/programs/pkey/mpi_demo.c
index 4c34b99..88d745e 100644
--- a/programs/pkey/mpi_demo.c
+++ b/programs/pkey/mpi_demo.c
@@ -28,70 +28,69 @@
#endif
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_FS_IO)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_FS_IO not defined.\n");
- mbedtls_exit( 0 );
+ mbedtls_exit(0);
}
#else
-int main( void )
+int main(void)
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
mbedtls_mpi E, P, Q, N, H, D, X, Y, Z;
- mbedtls_mpi_init( &E ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &N );
- mbedtls_mpi_init( &H ); mbedtls_mpi_init( &D ); mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y );
- mbedtls_mpi_init( &Z );
+ mbedtls_mpi_init(&E); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); mbedtls_mpi_init(&N);
+ mbedtls_mpi_init(&H); mbedtls_mpi_init(&D); mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y);
+ mbedtls_mpi_init(&Z);
- MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &P, 10, "2789" ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &Q, 10, "3203" ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &E, 10, "257" ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &N, &P, &Q ) );
+ MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&P, 10, "2789"));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&Q, 10, "3203"));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&E, 10, "257"));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&N, &P, &Q));
- mbedtls_printf( "\n Public key:\n\n" );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " N = ", &N, 10, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " E = ", &E, 10, NULL ) );
+ mbedtls_printf("\n Public key:\n\n");
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" N = ", &N, 10, NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" E = ", &E, 10, NULL));
- mbedtls_printf( "\n Private key:\n\n" );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " P = ", &P, 10, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " Q = ", &Q, 10, NULL ) );
+ mbedtls_printf("\n Private key:\n\n");
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" P = ", &P, 10, NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" Q = ", &Q, 10, NULL));
#if defined(MBEDTLS_GENPRIME)
- MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &P, &P, 1 ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &Q, &Q, 1 ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &H, &P, &Q ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( &D, &E, &H ) );
+ MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&P, &P, 1));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&Q, &Q, 1));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&H, &P, &Q));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(&D, &E, &H));
- mbedtls_mpi_write_file( " D = E^-1 mod (P-1)*(Q-1) = ",
- &D, 10, NULL );
+ mbedtls_mpi_write_file(" D = E^-1 mod (P-1)*(Q-1) = ",
+ &D, 10, NULL);
#else
mbedtls_printf("\nTest skipped (MBEDTLS_GENPRIME not defined).\n\n");
#endif
- MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &X, 10, "55555" ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &Y, &X, &E, &N, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &Z, &Y, &D, &N, NULL ) );
+ MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&X, 10, "55555"));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&Y, &X, &E, &N, NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&Z, &Y, &D, &N, NULL));
- mbedtls_printf( "\n RSA operation:\n\n" );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " X (plaintext) = ", &X, 10, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " Y (ciphertext) = X^E mod N = ", &Y, 10, NULL ) );
- MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " Z (decrypted) = Y^D mod N = ", &Z, 10, NULL ) );
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n RSA operation:\n\n");
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" X (plaintext) = ", &X, 10, NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" Y (ciphertext) = X^E mod N = ", &Y, 10, NULL));
+ MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" Z (decrypted) = Y^D mod N = ", &Z, 10, NULL));
+ mbedtls_printf("\n");
exit_code = MBEDTLS_EXIT_SUCCESS;
cleanup:
- mbedtls_mpi_free( &E ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &N );
- mbedtls_mpi_free( &H ); mbedtls_mpi_free( &D ); mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y );
- mbedtls_mpi_free( &Z );
+ mbedtls_mpi_free(&E); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); mbedtls_mpi_free(&N);
+ mbedtls_mpi_free(&H); mbedtls_mpi_free(&D); mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y);
+ mbedtls_mpi_free(&Z);
- if( exit_code != MBEDTLS_EXIT_SUCCESS )
- {
- mbedtls_printf( "\nAn error occurred.\n" );
+ if (exit_code != MBEDTLS_EXIT_SUCCESS) {
+ mbedtls_printf("\nAn error occurred.\n");
}
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_FS_IO */
diff --git a/programs/pkey/pk_decrypt.c b/programs/pkey/pk_decrypt.c
index 0d8388f..8862636 100644
--- a/programs/pkey/pk_decrypt.c
+++ b/programs/pkey/pk_decrypt.c
@@ -36,17 +36,17 @@
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_PK_PARSE_C) || \
!defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_ENTROPY_C) || \
!defined(MBEDTLS_CTR_DRBG_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_PK_PARSE_C and/or "
- "MBEDTLS_FS_IO and/or MBEDTLS_ENTROPY_C and/or "
- "MBEDTLS_CTR_DRBG_C not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_FS_IO and/or MBEDTLS_ENTROPY_C and/or "
+ "MBEDTLS_CTR_DRBG_C not defined.\n");
+ mbedtls_exit(0);
}
#else
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
FILE *f;
int ret = 1;
@@ -61,99 +61,93 @@
const char *pers = "mbedtls_pk_decrypt";
((void) argv);
- mbedtls_pk_init( &pk );
- mbedtls_entropy_init( &entropy );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_pk_init(&pk);
+ mbedtls_entropy_init(&entropy);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
- memset(result, 0, sizeof( result ) );
+ memset(result, 0, sizeof(result));
- if( argc != 2 )
- {
- mbedtls_printf( "usage: mbedtls_pk_decrypt <key_file>\n" );
+ if (argc != 2) {
+ mbedtls_printf("usage: mbedtls_pk_decrypt <key_file>\n");
#if defined(_WIN32)
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
#endif
goto exit;
}
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func,
- &entropy, (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func,
+ &entropy, (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( "\n . Reading private key from '%s'", argv[1] );
- fflush( stdout );
+ mbedtls_printf("\n . Reading private key from '%s'", argv[1]);
+ fflush(stdout);
- if( ( ret = mbedtls_pk_parse_keyfile( &pk, argv[1], "",
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile returned -0x%04x\n", (unsigned int) -ret );
+ if ((ret = mbedtls_pk_parse_keyfile(&pk, argv[1], "",
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile returned -0x%04x\n",
+ (unsigned int) -ret);
goto exit;
}
/*
* Extract the RSA encrypted value from the text file
*/
- if( ( f = fopen( "result-enc.txt", "rb" ) ) == NULL )
- {
- mbedtls_printf( "\n ! Could not open %s\n\n", "result-enc.txt" );
+ if ((f = fopen("result-enc.txt", "rb")) == NULL) {
+ mbedtls_printf("\n ! Could not open %s\n\n", "result-enc.txt");
ret = 1;
goto exit;
}
i = 0;
- while( fscanf( f, "%02X", (unsigned int*) &c ) > 0 &&
- i < (int) sizeof( buf ) )
- {
+ while (fscanf(f, "%02X", (unsigned int *) &c) > 0 &&
+ i < (int) sizeof(buf)) {
buf[i++] = (unsigned char) c;
}
- fclose( f );
+ fclose(f);
/*
* Decrypt the encrypted RSA data and print the result.
*/
- mbedtls_printf( "\n . Decrypting the encrypted data" );
- fflush( stdout );
+ mbedtls_printf("\n . Decrypting the encrypted data");
+ fflush(stdout);
- if( ( ret = mbedtls_pk_decrypt( &pk, buf, i, result, &olen, sizeof(result),
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_decrypt returned -0x%04x\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_pk_decrypt(&pk, buf, i, result, &olen, sizeof(result),
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_decrypt returned -0x%04x\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( "\n . OK\n\n" );
+ mbedtls_printf("\n . OK\n\n");
- mbedtls_printf( "The decrypted result is: '%s'\n\n", result );
+ mbedtls_printf("The decrypted result is: '%s'\n\n", result);
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_pk_free( &pk );
- mbedtls_entropy_free( &entropy );
- mbedtls_ctr_drbg_free( &ctr_drbg );
+ mbedtls_pk_free(&pk);
+ mbedtls_entropy_free(&entropy);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
#if defined(MBEDTLS_ERROR_C)
- if( exit_code != MBEDTLS_EXIT_SUCCESS )
- {
- mbedtls_strerror( ret, (char *) buf, sizeof( buf ) );
- mbedtls_printf( " ! Last error was: %s\n", buf );
+ if (exit_code != MBEDTLS_EXIT_SUCCESS) {
+ mbedtls_strerror(ret, (char *) buf, sizeof(buf));
+ mbedtls_printf(" ! Last error was: %s\n", buf);
}
#endif
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO &&
MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C */
diff --git a/programs/pkey/pk_encrypt.c b/programs/pkey/pk_encrypt.c
index 5d45738..eab3f08 100644
--- a/programs/pkey/pk_encrypt.c
+++ b/programs/pkey/pk_encrypt.c
@@ -36,17 +36,17 @@
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_PK_PARSE_C) || \
!defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_FS_IO) || \
!defined(MBEDTLS_CTR_DRBG_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_PK_PARSE_C and/or "
- "MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO and/or "
- "MBEDTLS_CTR_DRBG_C not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO and/or "
+ "MBEDTLS_CTR_DRBG_C not defined.\n");
+ mbedtls_exit(0);
}
#else
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
FILE *f;
int ret = 1;
@@ -59,103 +59,96 @@
unsigned char buf[512];
const char *pers = "mbedtls_pk_encrypt";
- mbedtls_ctr_drbg_init( &ctr_drbg );
- mbedtls_entropy_init( &entropy );
- mbedtls_pk_init( &pk );
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ mbedtls_entropy_init(&entropy);
+ mbedtls_pk_init(&pk);
- if( argc != 3 )
- {
- mbedtls_printf( "usage: mbedtls_pk_encrypt <key_file> <string of max 100 characters>\n" );
+ if (argc != 3) {
+ mbedtls_printf("usage: mbedtls_pk_encrypt <key_file> <string of max 100 characters>\n");
#if defined(_WIN32)
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
#endif
goto exit;
}
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func,
- &entropy, (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func,
+ &entropy, (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( "\n . Reading public key from '%s'", argv[1] );
- fflush( stdout );
+ mbedtls_printf("\n . Reading public key from '%s'", argv[1]);
+ fflush(stdout);
- if( ( ret = mbedtls_pk_parse_public_keyfile( &pk, argv[1] ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_public_keyfile returned -0x%04x\n", (unsigned int) -ret );
+ if ((ret = mbedtls_pk_parse_public_keyfile(&pk, argv[1])) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_public_keyfile returned -0x%04x\n",
+ (unsigned int) -ret);
goto exit;
}
- if( strlen( argv[2] ) > 100 )
- {
- mbedtls_printf( " Input data larger than 100 characters.\n\n" );
+ if (strlen(argv[2]) > 100) {
+ mbedtls_printf(" Input data larger than 100 characters.\n\n");
goto exit;
}
- memcpy( input, argv[2], strlen( argv[2] ) );
+ memcpy(input, argv[2], strlen(argv[2]));
/*
* Calculate the RSA encryption of the hash.
*/
- mbedtls_printf( "\n . Generating the encrypted value" );
- fflush( stdout );
+ mbedtls_printf("\n . Generating the encrypted value");
+ fflush(stdout);
- if( ( ret = mbedtls_pk_encrypt( &pk, input, strlen( argv[2] ),
- buf, &olen, sizeof(buf),
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_encrypt returned -0x%04x\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_pk_encrypt(&pk, input, strlen(argv[2]),
+ buf, &olen, sizeof(buf),
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_encrypt returned -0x%04x\n",
+ (unsigned int) -ret);
goto exit;
}
/*
* Write the signature into result-enc.txt
*/
- if( ( f = fopen( "result-enc.txt", "wb+" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Could not create %s\n\n",
- "result-enc.txt" );
+ if ((f = fopen("result-enc.txt", "wb+")) == NULL) {
+ mbedtls_printf(" failed\n ! Could not create %s\n\n",
+ "result-enc.txt");
ret = 1;
goto exit;
}
- for( i = 0; i < olen; i++ )
- {
- mbedtls_fprintf( f, "%02X%s", buf[i],
- ( i + 1 ) % 16 == 0 ? "\r\n" : " " );
+ for (i = 0; i < olen; i++) {
+ mbedtls_fprintf(f, "%02X%s", buf[i],
+ (i + 1) % 16 == 0 ? "\r\n" : " ");
}
- fclose( f );
+ fclose(f);
- mbedtls_printf( "\n . Done (created \"%s\")\n\n", "result-enc.txt" );
+ mbedtls_printf("\n . Done (created \"%s\")\n\n", "result-enc.txt");
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_pk_free( &pk );
- mbedtls_entropy_free( &entropy );
- mbedtls_ctr_drbg_free( &ctr_drbg );
+ mbedtls_pk_free(&pk);
+ mbedtls_entropy_free(&entropy);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
#if defined(MBEDTLS_ERROR_C)
- if( exit_code != MBEDTLS_EXIT_SUCCESS )
- {
- mbedtls_strerror( ret, (char *) buf, sizeof( buf ) );
- mbedtls_printf( " ! Last error was: %s\n", buf );
+ if (exit_code != MBEDTLS_EXIT_SUCCESS) {
+ mbedtls_strerror(ret, (char *) buf, sizeof(buf));
+ mbedtls_printf(" ! Last error was: %s\n", buf);
}
#endif
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_PK_PARSE_C && MBEDTLS_ENTROPY_C &&
MBEDTLS_FS_IO && MBEDTLS_CTR_DRBG_C */
diff --git a/programs/pkey/pk_sign.c b/programs/pkey/pk_sign.c
index 301edb8..21a75e9 100644
--- a/programs/pkey/pk_sign.c
+++ b/programs/pkey/pk_sign.c
@@ -25,13 +25,13 @@
!defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_MD_C) || \
!defined(MBEDTLS_PK_PARSE_C) || !defined(MBEDTLS_FS_IO) || \
!defined(MBEDTLS_CTR_DRBG_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C and/or "
- "MBEDTLS_SHA256_C and/or MBEDTLS_MD_C and/or "
- "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or "
- "MBEDTLS_CTR_DRBG_C not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_SHA256_C and/or MBEDTLS_MD_C and/or "
+ "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or "
+ "MBEDTLS_CTR_DRBG_C not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -44,7 +44,7 @@
#include <stdio.h>
#include <string.h>
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
FILE *f;
int ret = 1;
@@ -58,39 +58,37 @@
const char *pers = "mbedtls_pk_sign";
size_t olen = 0;
- mbedtls_entropy_init( &entropy );
- mbedtls_ctr_drbg_init( &ctr_drbg );
- mbedtls_pk_init( &pk );
+ mbedtls_entropy_init(&entropy);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ mbedtls_pk_init(&pk);
- if( argc != 3 )
- {
- mbedtls_printf( "usage: mbedtls_pk_sign <key_file> <filename>\n" );
+ if (argc != 3) {
+ mbedtls_printf("usage: mbedtls_pk_sign <key_file> <filename>\n");
#if defined(_WIN32)
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
#endif
goto exit;
}
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", (unsigned int) -ret );
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( "\n . Reading private key from '%s'", argv[1] );
- fflush( stdout );
+ mbedtls_printf("\n . Reading private key from '%s'", argv[1]);
+ fflush(stdout);
- if( ( ret = mbedtls_pk_parse_keyfile( &pk, argv[1], "",
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! Could not parse '%s'\n", argv[1] );
+ if ((ret = mbedtls_pk_parse_keyfile(&pk, argv[1], "",
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! Could not parse '%s'\n", argv[1]);
goto exit;
}
@@ -98,63 +96,58 @@
* Compute the SHA-256 hash of the input file,
* then calculate the signature of the hash.
*/
- mbedtls_printf( "\n . Generating the SHA-256 signature" );
- fflush( stdout );
+ mbedtls_printf("\n . Generating the SHA-256 signature");
+ fflush(stdout);
- if( ( ret = mbedtls_md_file(
- mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ),
- argv[2], hash ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! Could not open or read %s\n\n", argv[2] );
+ if ((ret = mbedtls_md_file(
+ mbedtls_md_info_from_type(MBEDTLS_MD_SHA256),
+ argv[2], hash)) != 0) {
+ mbedtls_printf(" failed\n ! Could not open or read %s\n\n", argv[2]);
goto exit;
}
- if( ( ret = mbedtls_pk_sign( &pk, MBEDTLS_MD_SHA256, hash, 0,
- buf, sizeof( buf ), &olen,
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_sign returned -0x%04x\n", (unsigned int) -ret );
+ if ((ret = mbedtls_pk_sign(&pk, MBEDTLS_MD_SHA256, hash, 0,
+ buf, sizeof(buf), &olen,
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_sign returned -0x%04x\n", (unsigned int) -ret);
goto exit;
}
/*
* Write the signature into <filename>.sig
*/
- mbedtls_snprintf( filename, sizeof(filename), "%s.sig", argv[2] );
+ mbedtls_snprintf(filename, sizeof(filename), "%s.sig", argv[2]);
- if( ( f = fopen( filename, "wb+" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Could not create %s\n\n", filename );
+ if ((f = fopen(filename, "wb+")) == NULL) {
+ mbedtls_printf(" failed\n ! Could not create %s\n\n", filename);
goto exit;
}
- if( fwrite( buf, 1, olen, f ) != olen )
- {
- mbedtls_printf( "failed\n ! fwrite failed\n\n" );
- fclose( f );
+ if (fwrite(buf, 1, olen, f) != olen) {
+ mbedtls_printf("failed\n ! fwrite failed\n\n");
+ fclose(f);
goto exit;
}
- fclose( f );
+ fclose(f);
- mbedtls_printf( "\n . Done (created \"%s\")\n\n", filename );
+ mbedtls_printf("\n . Done (created \"%s\")\n\n", filename);
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_pk_free( &pk );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_pk_free(&pk);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
#if defined(MBEDTLS_ERROR_C)
- if( exit_code != MBEDTLS_EXIT_SUCCESS )
- {
- mbedtls_strerror( ret, (char *) buf, sizeof(buf) );
- mbedtls_printf( " ! Last error was: %s\n", buf );
+ if (exit_code != MBEDTLS_EXIT_SUCCESS) {
+ mbedtls_strerror(ret, (char *) buf, sizeof(buf));
+ mbedtls_printf(" ! Last error was: %s\n", buf);
}
#endif
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C &&
MBEDTLS_SHA256_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO &&
diff --git a/programs/pkey/pk_verify.c b/programs/pkey/pk_verify.c
index 6b96452..b1fd1b6 100644
--- a/programs/pkey/pk_verify.c
+++ b/programs/pkey/pk_verify.c
@@ -24,12 +24,12 @@
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_MD_C) || \
!defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_PK_PARSE_C) || \
!defined(MBEDTLS_FS_IO)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_MD_C and/or "
- "MBEDTLS_SHA256_C and/or MBEDTLS_PK_PARSE_C and/or "
- "MBEDTLS_FS_IO not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_SHA256_C and/or MBEDTLS_PK_PARSE_C and/or "
+ "MBEDTLS_FS_IO not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -41,7 +41,7 @@
#include <string.h>
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
FILE *f;
int ret = 1;
@@ -52,81 +52,76 @@
unsigned char buf[MBEDTLS_PK_SIGNATURE_MAX_SIZE];
char filename[512];
- mbedtls_pk_init( &pk );
+ mbedtls_pk_init(&pk);
- if( argc != 3 )
- {
- mbedtls_printf( "usage: mbedtls_pk_verify <key_file> <filename>\n" );
+ if (argc != 3) {
+ mbedtls_printf("usage: mbedtls_pk_verify <key_file> <filename>\n");
#if defined(_WIN32)
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
#endif
goto exit;
}
- mbedtls_printf( "\n . Reading public key from '%s'", argv[1] );
- fflush( stdout );
+ mbedtls_printf("\n . Reading public key from '%s'", argv[1]);
+ fflush(stdout);
- if( ( ret = mbedtls_pk_parse_public_keyfile( &pk, argv[1] ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_public_keyfile returned -0x%04x\n", (unsigned int) -ret );
+ if ((ret = mbedtls_pk_parse_public_keyfile(&pk, argv[1])) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_public_keyfile returned -0x%04x\n",
+ (unsigned int) -ret);
goto exit;
}
/*
* Extract the signature from the file
*/
- mbedtls_snprintf( filename, sizeof(filename), "%s.sig", argv[2] );
+ mbedtls_snprintf(filename, sizeof(filename), "%s.sig", argv[2]);
- if( ( f = fopen( filename, "rb" ) ) == NULL )
- {
- mbedtls_printf( "\n ! Could not open %s\n\n", filename );
+ if ((f = fopen(filename, "rb")) == NULL) {
+ mbedtls_printf("\n ! Could not open %s\n\n", filename);
goto exit;
}
- i = fread( buf, 1, sizeof(buf), f );
+ i = fread(buf, 1, sizeof(buf), f);
- fclose( f );
+ fclose(f);
/*
* Compute the SHA-256 hash of the input file and
* verify the signature
*/
- mbedtls_printf( "\n . Verifying the SHA-256 signature" );
- fflush( stdout );
+ mbedtls_printf("\n . Verifying the SHA-256 signature");
+ fflush(stdout);
- if( ( ret = mbedtls_md_file(
- mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ),
- argv[2], hash ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! Could not open or read %s\n\n", argv[2] );
+ if ((ret = mbedtls_md_file(
+ mbedtls_md_info_from_type(MBEDTLS_MD_SHA256),
+ argv[2], hash)) != 0) {
+ mbedtls_printf(" failed\n ! Could not open or read %s\n\n", argv[2]);
goto exit;
}
- if( ( ret = mbedtls_pk_verify( &pk, MBEDTLS_MD_SHA256, hash, 0,
- buf, i ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_verify returned -0x%04x\n", (unsigned int) -ret );
+ if ((ret = mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256, hash, 0,
+ buf, i)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_verify returned -0x%04x\n", (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( "\n . OK (the signature is valid)\n\n" );
+ mbedtls_printf("\n . OK (the signature is valid)\n\n");
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_pk_free( &pk );
+ mbedtls_pk_free(&pk);
#if defined(MBEDTLS_ERROR_C)
- if( exit_code != MBEDTLS_EXIT_SUCCESS )
- {
- mbedtls_strerror( ret, (char *) buf, sizeof(buf) );
- mbedtls_printf( " ! Last error was: %s\n", buf );
+ if (exit_code != MBEDTLS_EXIT_SUCCESS) {
+ mbedtls_strerror(ret, (char *) buf, sizeof(buf));
+ mbedtls_printf(" ! Last error was: %s\n", buf);
}
#endif
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_SHA256_C &&
MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO */
diff --git a/programs/pkey/rsa_decrypt.c b/programs/pkey/rsa_decrypt.c
index 783f3ca..0462ba6 100644
--- a/programs/pkey/rsa_decrypt.c
+++ b/programs/pkey/rsa_decrypt.c
@@ -35,17 +35,17 @@
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_ENTROPY_C) || \
!defined(MBEDTLS_CTR_DRBG_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_FS_IO and/or MBEDTLS_ENTROPY_C and/or "
- "MBEDTLS_CTR_DRBG_C not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_FS_IO and/or MBEDTLS_ENTROPY_C and/or "
+ "MBEDTLS_CTR_DRBG_C not defined.\n");
+ mbedtls_exit(0);
}
#else
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
FILE *f;
int ret = 1;
@@ -61,132 +61,124 @@
const char *pers = "rsa_decrypt";
((void) argv);
- memset(result, 0, sizeof( result ) );
+ memset(result, 0, sizeof(result));
- if( argc != 1 )
- {
- mbedtls_printf( "usage: rsa_decrypt\n" );
+ if (argc != 1) {
+ mbedtls_printf("usage: rsa_decrypt\n");
#if defined(_WIN32)
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
#endif
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- mbedtls_rsa_init( &rsa );
- mbedtls_ctr_drbg_init( &ctr_drbg );
- mbedtls_entropy_init( &entropy );
- mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q );
- mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP );
- mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP );
+ mbedtls_rsa_init(&rsa);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ mbedtls_entropy_init(&entropy);
+ mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q);
+ mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP);
+ mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP);
- ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func,
- &entropy, (const unsigned char *) pers,
- strlen( pers ) );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n",
- ret );
+ ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func,
+ &entropy, (const unsigned char *) pers,
+ strlen(pers));
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n",
+ ret);
goto exit;
}
- mbedtls_printf( "\n . Reading private key from rsa_priv.txt" );
- fflush( stdout );
+ mbedtls_printf("\n . Reading private key from rsa_priv.txt");
+ fflush(stdout);
- if( ( f = fopen( "rsa_priv.txt", "rb" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Could not open rsa_priv.txt\n" \
- " ! Please run rsa_genkey first\n\n" );
+ if ((f = fopen("rsa_priv.txt", "rb")) == NULL) {
+ mbedtls_printf(" failed\n ! Could not open rsa_priv.txt\n" \
+ " ! Please run rsa_genkey first\n\n");
goto exit;
}
- if( ( ret = mbedtls_mpi_read_file( &N , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &E , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &D , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &P , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &Q , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &DP , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &DQ , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &QP , 16, f ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_read_file returned %d\n\n",
- ret );
- fclose( f );
+ if ((ret = mbedtls_mpi_read_file(&N, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&E, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&D, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&P, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&Q, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&DP, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&DQ, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&QP, 16, f)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_read_file returned %d\n\n",
+ ret);
+ fclose(f);
goto exit;
}
- fclose( f );
+ fclose(f);
- if( ( ret = mbedtls_rsa_import( &rsa, &N, &P, &Q, &D, &E ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_import returned %d\n\n",
- ret );
+ if ((ret = mbedtls_rsa_import(&rsa, &N, &P, &Q, &D, &E)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_import returned %d\n\n",
+ ret);
goto exit;
}
- if( ( ret = mbedtls_rsa_complete( &rsa ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_complete returned %d\n\n",
- ret );
+ if ((ret = mbedtls_rsa_complete(&rsa)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_complete returned %d\n\n",
+ ret);
goto exit;
}
/*
* Extract the RSA encrypted value from the text file
*/
- if( ( f = fopen( "result-enc.txt", "rb" ) ) == NULL )
- {
- mbedtls_printf( "\n ! Could not open %s\n\n", "result-enc.txt" );
+ if ((f = fopen("result-enc.txt", "rb")) == NULL) {
+ mbedtls_printf("\n ! Could not open %s\n\n", "result-enc.txt");
goto exit;
}
i = 0;
- while( fscanf( f, "%02X", (unsigned int*) &c ) > 0 &&
- i < (int) sizeof( buf ) )
+ while (fscanf(f, "%02X", (unsigned int *) &c) > 0 &&
+ i < (int) sizeof(buf)) {
buf[i++] = (unsigned char) c;
+ }
- fclose( f );
+ fclose(f);
- if( i != rsa.MBEDTLS_PRIVATE(len) )
- {
- mbedtls_printf( "\n ! Invalid RSA signature format\n\n" );
+ if (i != rsa.MBEDTLS_PRIVATE(len)) {
+ mbedtls_printf("\n ! Invalid RSA signature format\n\n");
goto exit;
}
/*
* Decrypt the encrypted RSA data and print the result.
*/
- mbedtls_printf( "\n . Decrypting the encrypted data" );
- fflush( stdout );
+ mbedtls_printf("\n . Decrypting the encrypted data");
+ fflush(stdout);
- ret = mbedtls_rsa_pkcs1_decrypt( &rsa, mbedtls_ctr_drbg_random,
- &ctr_drbg, &i,
- buf, result, 1024 );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_pkcs1_decrypt returned %d\n\n",
- ret );
+ ret = mbedtls_rsa_pkcs1_decrypt(&rsa, mbedtls_ctr_drbg_random,
+ &ctr_drbg, &i,
+ buf, result, 1024);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_pkcs1_decrypt returned %d\n\n",
+ ret);
goto exit;
}
- mbedtls_printf( "\n . OK\n\n" );
+ mbedtls_printf("\n . OK\n\n");
- mbedtls_printf( "The decrypted result is: '%s'\n\n", result );
+ mbedtls_printf("The decrypted result is: '%s'\n\n", result);
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
- mbedtls_rsa_free( &rsa );
- mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q );
- mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP );
- mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP );
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
+ mbedtls_rsa_free(&rsa);
+ mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q);
+ mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP);
+ mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_FS_IO */
diff --git a/programs/pkey/rsa_encrypt.c b/programs/pkey/rsa_encrypt.c
index 777b22e..2126a9b 100644
--- a/programs/pkey/rsa_encrypt.c
+++ b/programs/pkey/rsa_encrypt.c
@@ -34,17 +34,17 @@
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_FS_IO) || \
!defined(MBEDTLS_CTR_DRBG_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO and/or "
- "MBEDTLS_CTR_DRBG_C not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO and/or "
+ "MBEDTLS_CTR_DRBG_C not defined.\n");
+ mbedtls_exit(0);
}
#else
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
FILE *f;
int ret = 1;
@@ -58,111 +58,104 @@
const char *pers = "rsa_encrypt";
mbedtls_mpi N, E;
- if( argc != 2 )
- {
- mbedtls_printf( "usage: rsa_encrypt <string of max 100 characters>\n" );
+ if (argc != 2) {
+ mbedtls_printf("usage: rsa_encrypt <string of max 100 characters>\n");
#if defined(_WIN32)
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
#endif
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E );
- mbedtls_rsa_init( &rsa );
- mbedtls_ctr_drbg_init( &ctr_drbg );
- mbedtls_entropy_init( &entropy );
+ mbedtls_mpi_init(&N); mbedtls_mpi_init(&E);
+ mbedtls_rsa_init(&rsa);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ mbedtls_entropy_init(&entropy);
- ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func,
- &entropy, (const unsigned char *) pers,
- strlen( pers ) );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n",
- ret );
+ ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func,
+ &entropy, (const unsigned char *) pers,
+ strlen(pers));
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n",
+ ret);
goto exit;
}
- mbedtls_printf( "\n . Reading public key from rsa_pub.txt" );
- fflush( stdout );
+ mbedtls_printf("\n . Reading public key from rsa_pub.txt");
+ fflush(stdout);
- if( ( f = fopen( "rsa_pub.txt", "rb" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Could not open rsa_pub.txt\n" \
- " ! Please run rsa_genkey first\n\n" );
+ if ((f = fopen("rsa_pub.txt", "rb")) == NULL) {
+ mbedtls_printf(" failed\n ! Could not open rsa_pub.txt\n" \
+ " ! Please run rsa_genkey first\n\n");
goto exit;
}
- if( ( ret = mbedtls_mpi_read_file( &N, 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &E, 16, f ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_read_file returned %d\n\n",
- ret );
- fclose( f );
+ if ((ret = mbedtls_mpi_read_file(&N, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&E, 16, f)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_read_file returned %d\n\n",
+ ret);
+ fclose(f);
goto exit;
}
- fclose( f );
+ fclose(f);
- if( ( ret = mbedtls_rsa_import( &rsa, &N, NULL, NULL, NULL, &E ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_import returned %d\n\n",
- ret );
+ if ((ret = mbedtls_rsa_import(&rsa, &N, NULL, NULL, NULL, &E)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_import returned %d\n\n",
+ ret);
goto exit;
}
- if( strlen( argv[1] ) > 100 )
- {
- mbedtls_printf( " Input data larger than 100 characters.\n\n" );
+ if (strlen(argv[1]) > 100) {
+ mbedtls_printf(" Input data larger than 100 characters.\n\n");
goto exit;
}
- memcpy( input, argv[1], strlen( argv[1] ) );
+ memcpy(input, argv[1], strlen(argv[1]));
/*
* Calculate the RSA encryption of the hash.
*/
- mbedtls_printf( "\n . Generating the RSA encrypted value" );
- fflush( stdout );
+ mbedtls_printf("\n . Generating the RSA encrypted value");
+ fflush(stdout);
- ret = mbedtls_rsa_pkcs1_encrypt( &rsa, mbedtls_ctr_drbg_random,
- &ctr_drbg, strlen( argv[1] ), input, buf );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_pkcs1_encrypt returned %d\n\n",
- ret );
+ ret = mbedtls_rsa_pkcs1_encrypt(&rsa, mbedtls_ctr_drbg_random,
+ &ctr_drbg, strlen(argv[1]), input, buf);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_pkcs1_encrypt returned %d\n\n",
+ ret);
goto exit;
}
/*
* Write the signature into result-enc.txt
*/
- if( ( f = fopen( "result-enc.txt", "wb+" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Could not create %s\n\n", "result-enc.txt" );
+ if ((f = fopen("result-enc.txt", "wb+")) == NULL) {
+ mbedtls_printf(" failed\n ! Could not create %s\n\n", "result-enc.txt");
goto exit;
}
- for( i = 0; i < rsa.MBEDTLS_PRIVATE(len); i++ )
- mbedtls_fprintf( f, "%02X%s", buf[i],
- ( i + 1 ) % 16 == 0 ? "\r\n" : " " );
+ for (i = 0; i < rsa.MBEDTLS_PRIVATE(len); i++) {
+ mbedtls_fprintf(f, "%02X%s", buf[i],
+ (i + 1) % 16 == 0 ? "\r\n" : " ");
+ }
- fclose( f );
+ fclose(f);
- mbedtls_printf( "\n . Done (created \"%s\")\n\n", "result-enc.txt" );
+ mbedtls_printf("\n . Done (created \"%s\")\n\n", "result-enc.txt");
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_mpi_free( &N ); mbedtls_mpi_free( &E );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
- mbedtls_rsa_free( &rsa );
+ mbedtls_mpi_free(&N); mbedtls_mpi_free(&E);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
+ mbedtls_rsa_free(&rsa);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_ENTROPY_C &&
MBEDTLS_FS_IO && MBEDTLS_CTR_DRBG_C */
diff --git a/programs/pkey/rsa_genkey.c b/programs/pkey/rsa_genkey.c
index 7acda81..17f6d65 100644
--- a/programs/pkey/rsa_genkey.c
+++ b/programs/pkey/rsa_genkey.c
@@ -39,17 +39,17 @@
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \
!defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_GENPRIME) || \
!defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_CTR_DRBG_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C and/or "
- "MBEDTLS_RSA_C and/or MBEDTLS_GENPRIME and/or "
- "MBEDTLS_FS_IO and/or MBEDTLS_CTR_DRBG_C not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_RSA_C and/or MBEDTLS_GENPRIME and/or "
+ "MBEDTLS_FS_IO and/or MBEDTLS_CTR_DRBG_C not defined.\n");
+ mbedtls_exit(0);
}
#else
-int main( void )
+int main(void)
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -61,98 +61,93 @@
FILE *fpriv = NULL;
const char *pers = "rsa_genkey";
- mbedtls_ctr_drbg_init( &ctr_drbg );
- mbedtls_rsa_init( &rsa );
- mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q );
- mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP );
- mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP );
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ mbedtls_rsa_init(&rsa);
+ mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q);
+ mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP);
+ mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP);
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- mbedtls_entropy_init( &entropy );
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret );
+ mbedtls_entropy_init(&entropy);
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n . Generating the RSA key [ %d-bit ]...", KEY_SIZE );
- fflush( stdout );
+ mbedtls_printf(" ok\n . Generating the RSA key [ %d-bit ]...", KEY_SIZE);
+ fflush(stdout);
- if( ( ret = mbedtls_rsa_gen_key( &rsa, mbedtls_ctr_drbg_random, &ctr_drbg, KEY_SIZE,
- EXPONENT ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_gen_key returned %d\n\n", ret );
+ if ((ret = mbedtls_rsa_gen_key(&rsa, mbedtls_ctr_drbg_random, &ctr_drbg, KEY_SIZE,
+ EXPONENT)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_gen_key returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n . Exporting the public key in rsa_pub.txt...." );
- fflush( stdout );
+ mbedtls_printf(" ok\n . Exporting the public key in rsa_pub.txt....");
+ fflush(stdout);
- if( ( ret = mbedtls_rsa_export ( &rsa, &N, &P, &Q, &D, &E ) ) != 0 ||
- ( ret = mbedtls_rsa_export_crt( &rsa, &DP, &DQ, &QP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! could not export RSA parameters\n\n" );
+ if ((ret = mbedtls_rsa_export(&rsa, &N, &P, &Q, &D, &E)) != 0 ||
+ (ret = mbedtls_rsa_export_crt(&rsa, &DP, &DQ, &QP)) != 0) {
+ mbedtls_printf(" failed\n ! could not export RSA parameters\n\n");
goto exit;
}
- if( ( fpub = fopen( "rsa_pub.txt", "wb+" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! could not open rsa_pub.txt for writing\n\n" );
+ if ((fpub = fopen("rsa_pub.txt", "wb+")) == NULL) {
+ mbedtls_printf(" failed\n ! could not open rsa_pub.txt for writing\n\n");
goto exit;
}
- if( ( ret = mbedtls_mpi_write_file( "N = ", &N, 16, fpub ) ) != 0 ||
- ( ret = mbedtls_mpi_write_file( "E = ", &E, 16, fpub ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_write_file returned %d\n\n", ret );
+ if ((ret = mbedtls_mpi_write_file("N = ", &N, 16, fpub)) != 0 ||
+ (ret = mbedtls_mpi_write_file("E = ", &E, 16, fpub)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_write_file returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n . Exporting the private key in rsa_priv.txt..." );
- fflush( stdout );
+ mbedtls_printf(" ok\n . Exporting the private key in rsa_priv.txt...");
+ fflush(stdout);
- if( ( fpriv = fopen( "rsa_priv.txt", "wb+" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! could not open rsa_priv.txt for writing\n" );
+ if ((fpriv = fopen("rsa_priv.txt", "wb+")) == NULL) {
+ mbedtls_printf(" failed\n ! could not open rsa_priv.txt for writing\n");
goto exit;
}
- if( ( ret = mbedtls_mpi_write_file( "N = " , &N , 16, fpriv ) ) != 0 ||
- ( ret = mbedtls_mpi_write_file( "E = " , &E , 16, fpriv ) ) != 0 ||
- ( ret = mbedtls_mpi_write_file( "D = " , &D , 16, fpriv ) ) != 0 ||
- ( ret = mbedtls_mpi_write_file( "P = " , &P , 16, fpriv ) ) != 0 ||
- ( ret = mbedtls_mpi_write_file( "Q = " , &Q , 16, fpriv ) ) != 0 ||
- ( ret = mbedtls_mpi_write_file( "DP = ", &DP, 16, fpriv ) ) != 0 ||
- ( ret = mbedtls_mpi_write_file( "DQ = ", &DQ, 16, fpriv ) ) != 0 ||
- ( ret = mbedtls_mpi_write_file( "QP = ", &QP, 16, fpriv ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_write_file returned %d\n\n", ret );
+ if ((ret = mbedtls_mpi_write_file("N = ", &N, 16, fpriv)) != 0 ||
+ (ret = mbedtls_mpi_write_file("E = ", &E, 16, fpriv)) != 0 ||
+ (ret = mbedtls_mpi_write_file("D = ", &D, 16, fpriv)) != 0 ||
+ (ret = mbedtls_mpi_write_file("P = ", &P, 16, fpriv)) != 0 ||
+ (ret = mbedtls_mpi_write_file("Q = ", &Q, 16, fpriv)) != 0 ||
+ (ret = mbedtls_mpi_write_file("DP = ", &DP, 16, fpriv)) != 0 ||
+ (ret = mbedtls_mpi_write_file("DQ = ", &DQ, 16, fpriv)) != 0 ||
+ (ret = mbedtls_mpi_write_file("QP = ", &QP, 16, fpriv)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_write_file returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n\n" );
+ mbedtls_printf(" ok\n\n");
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- if( fpub != NULL )
- fclose( fpub );
+ if (fpub != NULL) {
+ fclose(fpub);
+ }
- if( fpriv != NULL )
- fclose( fpriv );
+ if (fpriv != NULL) {
+ fclose(fpriv);
+ }
- mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q );
- mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP );
- mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP );
- mbedtls_rsa_free( &rsa );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q);
+ mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP);
+ mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP);
+ mbedtls_rsa_free(&rsa);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_RSA_C &&
MBEDTLS_GENPRIME && MBEDTLS_FS_IO && MBEDTLS_CTR_DRBG_C */
diff --git a/programs/pkey/rsa_sign.c b/programs/pkey/rsa_sign.c
index f4deab0..a8418d1 100644
--- a/programs/pkey/rsa_sign.c
+++ b/programs/pkey/rsa_sign.c
@@ -24,12 +24,12 @@
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_MD_C) || \
!defined(MBEDTLS_FS_IO)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_MD_C and/or "
- "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_MD_C and/or "
+ "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -40,7 +40,7 @@
#include <string.h>
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
FILE *f;
int ret = 1;
@@ -52,67 +52,62 @@
char filename[512];
mbedtls_mpi N, P, Q, D, E, DP, DQ, QP;
- mbedtls_rsa_init( &rsa );
+ mbedtls_rsa_init(&rsa);
- mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q );
- mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP );
- mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP );
+ mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q);
+ mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP);
+ mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP);
- if( argc != 2 )
- {
- mbedtls_printf( "usage: rsa_sign <filename>\n" );
+ if (argc != 2) {
+ mbedtls_printf("usage: rsa_sign <filename>\n");
#if defined(_WIN32)
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
#endif
goto exit;
}
- mbedtls_printf( "\n . Reading private key from rsa_priv.txt" );
- fflush( stdout );
+ mbedtls_printf("\n . Reading private key from rsa_priv.txt");
+ fflush(stdout);
- if( ( f = fopen( "rsa_priv.txt", "rb" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Could not open rsa_priv.txt\n" \
- " ! Please run rsa_genkey first\n\n" );
+ if ((f = fopen("rsa_priv.txt", "rb")) == NULL) {
+ mbedtls_printf(" failed\n ! Could not open rsa_priv.txt\n" \
+ " ! Please run rsa_genkey first\n\n");
goto exit;
}
- if( ( ret = mbedtls_mpi_read_file( &N , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &E , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &D , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &P , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &Q , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &DP , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &DQ , 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &QP , 16, f ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_read_file returned %d\n\n", ret );
- fclose( f );
+ if ((ret = mbedtls_mpi_read_file(&N, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&E, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&D, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&P, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&Q, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&DP, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&DQ, 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&QP, 16, f)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_read_file returned %d\n\n", ret);
+ fclose(f);
goto exit;
}
- fclose( f );
+ fclose(f);
- if( ( ret = mbedtls_rsa_import( &rsa, &N, &P, &Q, &D, &E ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_import returned %d\n\n",
- ret );
+ if ((ret = mbedtls_rsa_import(&rsa, &N, &P, &Q, &D, &E)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_import returned %d\n\n",
+ ret);
goto exit;
}
- if( ( ret = mbedtls_rsa_complete( &rsa ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_complete returned %d\n\n",
- ret );
+ if ((ret = mbedtls_rsa_complete(&rsa)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_complete returned %d\n\n",
+ ret);
goto exit;
}
- mbedtls_printf( "\n . Checking the private key" );
- fflush( stdout );
- if( ( ret = mbedtls_rsa_check_privkey( &rsa ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_check_privkey failed with -0x%0x\n", (unsigned int) -ret );
+ mbedtls_printf("\n . Checking the private key");
+ fflush(stdout);
+ if ((ret = mbedtls_rsa_check_privkey(&rsa)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_check_privkey failed with -0x%0x\n",
+ (unsigned int) -ret);
goto exit;
}
@@ -120,53 +115,52 @@
* Compute the SHA-256 hash of the input file,
* then calculate the RSA signature of the hash.
*/
- mbedtls_printf( "\n . Generating the RSA/SHA-256 signature" );
- fflush( stdout );
+ mbedtls_printf("\n . Generating the RSA/SHA-256 signature");
+ fflush(stdout);
- if( ( ret = mbedtls_md_file(
- mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ),
- argv[1], hash ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! Could not open or read %s\n\n", argv[1] );
+ if ((ret = mbedtls_md_file(
+ mbedtls_md_info_from_type(MBEDTLS_MD_SHA256),
+ argv[1], hash)) != 0) {
+ mbedtls_printf(" failed\n ! Could not open or read %s\n\n", argv[1]);
goto exit;
}
- if( ( ret = mbedtls_rsa_pkcs1_sign( &rsa, NULL, NULL, MBEDTLS_MD_SHA256,
- 32, hash, buf ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_pkcs1_sign returned -0x%0x\n\n", (unsigned int) -ret );
+ if ((ret = mbedtls_rsa_pkcs1_sign(&rsa, NULL, NULL, MBEDTLS_MD_SHA256,
+ 32, hash, buf)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_pkcs1_sign returned -0x%0x\n\n",
+ (unsigned int) -ret);
goto exit;
}
/*
* Write the signature into <filename>.sig
*/
- mbedtls_snprintf( filename, sizeof(filename), "%s.sig", argv[1] );
+ mbedtls_snprintf(filename, sizeof(filename), "%s.sig", argv[1]);
- if( ( f = fopen( filename, "wb+" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Could not create %s\n\n", argv[1] );
+ if ((f = fopen(filename, "wb+")) == NULL) {
+ mbedtls_printf(" failed\n ! Could not create %s\n\n", argv[1]);
goto exit;
}
- for( i = 0; i < rsa.MBEDTLS_PRIVATE(len); i++ )
- mbedtls_fprintf( f, "%02X%s", buf[i],
- ( i + 1 ) % 16 == 0 ? "\r\n" : " " );
+ for (i = 0; i < rsa.MBEDTLS_PRIVATE(len); i++) {
+ mbedtls_fprintf(f, "%02X%s", buf[i],
+ (i + 1) % 16 == 0 ? "\r\n" : " ");
+ }
- fclose( f );
+ fclose(f);
- mbedtls_printf( "\n . Done (created \"%s\")\n\n", filename );
+ mbedtls_printf("\n . Done (created \"%s\")\n\n", filename);
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_rsa_free( &rsa );
- mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q );
- mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP );
- mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP );
+ mbedtls_rsa_free(&rsa);
+ mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q);
+ mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP);
+ mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_SHA256_C &&
MBEDTLS_FS_IO */
diff --git a/programs/pkey/rsa_sign_pss.c b/programs/pkey/rsa_sign_pss.c
index 0cbde02..19ab962 100644
--- a/programs/pkey/rsa_sign_pss.c
+++ b/programs/pkey/rsa_sign_pss.c
@@ -25,13 +25,13 @@
!defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_SHA256_C) || \
!defined(MBEDTLS_PK_PARSE_C) || !defined(MBEDTLS_FS_IO) || \
!defined(MBEDTLS_CTR_DRBG_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_MD_C and/or MBEDTLS_ENTROPY_C and/or "
- "MBEDTLS_RSA_C and/or MBEDTLS_SHA256_C and/or "
- "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or "
- "MBEDTLS_CTR_DRBG_C not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_RSA_C and/or MBEDTLS_SHA256_C and/or "
+ "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or "
+ "MBEDTLS_CTR_DRBG_C not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -45,7 +45,7 @@
#include <string.h>
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
FILE *f;
int ret = 1;
@@ -59,54 +59,49 @@
const char *pers = "rsa_sign_pss";
size_t olen = 0;
- mbedtls_entropy_init( &entropy );
- mbedtls_pk_init( &pk );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_entropy_init(&entropy);
+ mbedtls_pk_init(&pk);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
- if( argc != 3 )
- {
- mbedtls_printf( "usage: rsa_sign_pss <key_file> <filename>\n" );
+ if (argc != 3) {
+ mbedtls_printf("usage: rsa_sign_pss <key_file> <filename>\n");
#if defined(_WIN32)
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
#endif
goto exit;
}
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret );
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret);
goto exit;
}
- mbedtls_printf( "\n . Reading private key from '%s'", argv[1] );
- fflush( stdout );
+ mbedtls_printf("\n . Reading private key from '%s'", argv[1]);
+ fflush(stdout);
- if( ( ret = mbedtls_pk_parse_keyfile( &pk, argv[1], "",
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! Could not read key from '%s'\n", argv[1] );
- mbedtls_printf( " ! mbedtls_pk_parse_public_keyfile returned %d\n\n", ret );
+ if ((ret = mbedtls_pk_parse_keyfile(&pk, argv[1], "",
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! Could not read key from '%s'\n", argv[1]);
+ mbedtls_printf(" ! mbedtls_pk_parse_public_keyfile returned %d\n\n", ret);
goto exit;
}
- if( !mbedtls_pk_can_do( &pk, MBEDTLS_PK_RSA ) )
- {
- mbedtls_printf( " failed\n ! Key is not an RSA key\n" );
+ if (!mbedtls_pk_can_do(&pk, MBEDTLS_PK_RSA)) {
+ mbedtls_printf(" failed\n ! Key is not an RSA key\n");
goto exit;
}
- if( ( ret = mbedtls_rsa_set_padding( mbedtls_pk_rsa( pk ),
- MBEDTLS_RSA_PKCS_V21,
- MBEDTLS_MD_SHA256 ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! Padding not supported\n" );
+ if ((ret = mbedtls_rsa_set_padding(mbedtls_pk_rsa(pk),
+ MBEDTLS_RSA_PKCS_V21,
+ MBEDTLS_MD_SHA256)) != 0) {
+ mbedtls_printf(" failed\n ! Padding not supported\n");
goto exit;
}
@@ -114,55 +109,51 @@
* Compute the SHA-256 hash of the input file,
* then calculate the RSA signature of the hash.
*/
- mbedtls_printf( "\n . Generating the RSA/SHA-256 signature" );
- fflush( stdout );
+ mbedtls_printf("\n . Generating the RSA/SHA-256 signature");
+ fflush(stdout);
- if( ( ret = mbedtls_md_file(
- mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ),
- argv[2], hash ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! Could not open or read %s\n\n", argv[2] );
+ if ((ret = mbedtls_md_file(
+ mbedtls_md_info_from_type(MBEDTLS_MD_SHA256),
+ argv[2], hash)) != 0) {
+ mbedtls_printf(" failed\n ! Could not open or read %s\n\n", argv[2]);
goto exit;
}
- if( ( ret = mbedtls_pk_sign( &pk, MBEDTLS_MD_SHA256, hash, 0,
- buf, sizeof( buf ), &olen,
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_sign returned %d\n\n", ret );
+ if ((ret = mbedtls_pk_sign(&pk, MBEDTLS_MD_SHA256, hash, 0,
+ buf, sizeof(buf), &olen,
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_sign returned %d\n\n", ret);
goto exit;
}
/*
* Write the signature into <filename>.sig
*/
- mbedtls_snprintf( filename, 512, "%s.sig", argv[2] );
+ mbedtls_snprintf(filename, 512, "%s.sig", argv[2]);
- if( ( f = fopen( filename, "wb+" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Could not create %s\n\n", filename );
+ if ((f = fopen(filename, "wb+")) == NULL) {
+ mbedtls_printf(" failed\n ! Could not create %s\n\n", filename);
goto exit;
}
- if( fwrite( buf, 1, olen, f ) != olen )
- {
- mbedtls_printf( "failed\n ! fwrite failed\n\n" );
- fclose( f );
+ if (fwrite(buf, 1, olen, f) != olen) {
+ mbedtls_printf("failed\n ! fwrite failed\n\n");
+ fclose(f);
goto exit;
}
- fclose( f );
+ fclose(f);
- mbedtls_printf( "\n . Done (created \"%s\")\n\n", filename );
+ mbedtls_printf("\n . Done (created \"%s\")\n\n", filename);
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_pk_free( &pk );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_pk_free(&pk);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_RSA_C &&
MBEDTLS_SHA256_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO &&
diff --git a/programs/pkey/rsa_verify.c b/programs/pkey/rsa_verify.c
index a3fa6d7..9c08435 100644
--- a/programs/pkey/rsa_verify.c
+++ b/programs/pkey/rsa_verify.c
@@ -24,12 +24,12 @@
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_MD_C) || \
!defined(MBEDTLS_FS_IO)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_MD_C and/or "
- "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_MD_C and/or "
+ "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -40,7 +40,7 @@
#include <string.h>
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
FILE *f;
int ret = 1;
@@ -52,62 +52,58 @@
unsigned char buf[MBEDTLS_MPI_MAX_SIZE];
char filename[512];
- mbedtls_rsa_init( &rsa );
+ mbedtls_rsa_init(&rsa);
- if( argc != 2 )
- {
- mbedtls_printf( "usage: rsa_verify <filename>\n" );
+ if (argc != 2) {
+ mbedtls_printf("usage: rsa_verify <filename>\n");
#if defined(_WIN32)
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
#endif
goto exit;
}
- mbedtls_printf( "\n . Reading public key from rsa_pub.txt" );
- fflush( stdout );
+ mbedtls_printf("\n . Reading public key from rsa_pub.txt");
+ fflush(stdout);
- if( ( f = fopen( "rsa_pub.txt", "rb" ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Could not open rsa_pub.txt\n" \
- " ! Please run rsa_genkey first\n\n" );
+ if ((f = fopen("rsa_pub.txt", "rb")) == NULL) {
+ mbedtls_printf(" failed\n ! Could not open rsa_pub.txt\n" \
+ " ! Please run rsa_genkey first\n\n");
goto exit;
}
- if( ( ret = mbedtls_mpi_read_file( &rsa.MBEDTLS_PRIVATE(N), 16, f ) ) != 0 ||
- ( ret = mbedtls_mpi_read_file( &rsa.MBEDTLS_PRIVATE(E), 16, f ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_mpi_read_file returned %d\n\n", ret );
- fclose( f );
+ if ((ret = mbedtls_mpi_read_file(&rsa.MBEDTLS_PRIVATE(N), 16, f)) != 0 ||
+ (ret = mbedtls_mpi_read_file(&rsa.MBEDTLS_PRIVATE(E), 16, f)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_mpi_read_file returned %d\n\n", ret);
+ fclose(f);
goto exit;
}
- rsa.MBEDTLS_PRIVATE(len) = ( mbedtls_mpi_bitlen( &rsa.MBEDTLS_PRIVATE(N) ) + 7 ) >> 3;
+ rsa.MBEDTLS_PRIVATE(len) = (mbedtls_mpi_bitlen(&rsa.MBEDTLS_PRIVATE(N)) + 7) >> 3;
- fclose( f );
+ fclose(f);
/*
* Extract the RSA signature from the text file
*/
- mbedtls_snprintf( filename, sizeof(filename), "%s.sig", argv[1] );
+ mbedtls_snprintf(filename, sizeof(filename), "%s.sig", argv[1]);
- if( ( f = fopen( filename, "rb" ) ) == NULL )
- {
- mbedtls_printf( "\n ! Could not open %s\n\n", filename );
+ if ((f = fopen(filename, "rb")) == NULL) {
+ mbedtls_printf("\n ! Could not open %s\n\n", filename);
goto exit;
}
i = 0;
- while( fscanf( f, "%02X", (unsigned int*) &c ) > 0 &&
- i < (int) sizeof( buf ) )
+ while (fscanf(f, "%02X", (unsigned int *) &c) > 0 &&
+ i < (int) sizeof(buf)) {
buf[i++] = (unsigned char) c;
+ }
- fclose( f );
+ fclose(f);
- if( i != rsa.MBEDTLS_PRIVATE(len) )
- {
- mbedtls_printf( "\n ! Invalid RSA signature format\n\n" );
+ if (i != rsa.MBEDTLS_PRIVATE(len)) {
+ mbedtls_printf("\n ! Invalid RSA signature format\n\n");
goto exit;
}
@@ -115,33 +111,32 @@
* Compute the SHA-256 hash of the input file and
* verify the signature
*/
- mbedtls_printf( "\n . Verifying the RSA/SHA-256 signature" );
- fflush( stdout );
+ mbedtls_printf("\n . Verifying the RSA/SHA-256 signature");
+ fflush(stdout);
- if( ( ret = mbedtls_md_file(
- mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ),
- argv[1], hash ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! Could not open or read %s\n\n", argv[1] );
+ if ((ret = mbedtls_md_file(
+ mbedtls_md_info_from_type(MBEDTLS_MD_SHA256),
+ argv[1], hash)) != 0) {
+ mbedtls_printf(" failed\n ! Could not open or read %s\n\n", argv[1]);
goto exit;
}
- if( ( ret = mbedtls_rsa_pkcs1_verify( &rsa, MBEDTLS_MD_SHA256,
- 32, hash, buf ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_rsa_pkcs1_verify returned -0x%0x\n\n", (unsigned int) -ret );
+ if ((ret = mbedtls_rsa_pkcs1_verify(&rsa, MBEDTLS_MD_SHA256,
+ 32, hash, buf)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_rsa_pkcs1_verify returned -0x%0x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( "\n . OK (the signature is valid)\n\n" );
+ mbedtls_printf("\n . OK (the signature is valid)\n\n");
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_rsa_free( &rsa );
+ mbedtls_rsa_free(&rsa);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_SHA256_C &&
MBEDTLS_FS_IO */
diff --git a/programs/pkey/rsa_verify_pss.c b/programs/pkey/rsa_verify_pss.c
index 7dcccda..df61e47 100644
--- a/programs/pkey/rsa_verify_pss.c
+++ b/programs/pkey/rsa_verify_pss.c
@@ -25,13 +25,13 @@
!defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_SHA256_C) || \
!defined(MBEDTLS_PK_PARSE_C) || !defined(MBEDTLS_FS_IO) || \
!defined(MBEDTLS_CTR_DRBG_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_MD_C and/or MBEDTLS_ENTROPY_C and/or "
- "MBEDTLS_RSA_C and/or MBEDTLS_SHA256_C and/or "
- "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or "
- "MBEDTLS_CTR_DRBG_C not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_RSA_C and/or MBEDTLS_SHA256_C and/or "
+ "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or "
+ "MBEDTLS_CTR_DRBG_C not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -44,7 +44,7 @@
#include <string.h>
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
FILE *f;
int ret = 1;
@@ -55,88 +55,81 @@
unsigned char buf[MBEDTLS_MPI_MAX_SIZE];
char filename[512];
- mbedtls_pk_init( &pk );
+ mbedtls_pk_init(&pk);
- if( argc != 3 )
- {
- mbedtls_printf( "usage: rsa_verify_pss <key_file> <filename>\n" );
+ if (argc != 3) {
+ mbedtls_printf("usage: rsa_verify_pss <key_file> <filename>\n");
#if defined(_WIN32)
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
#endif
goto exit;
}
- mbedtls_printf( "\n . Reading public key from '%s'", argv[1] );
- fflush( stdout );
+ mbedtls_printf("\n . Reading public key from '%s'", argv[1]);
+ fflush(stdout);
- if( ( ret = mbedtls_pk_parse_public_keyfile( &pk, argv[1] ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! Could not read key from '%s'\n", argv[1] );
- mbedtls_printf( " ! mbedtls_pk_parse_public_keyfile returned %d\n\n", ret );
+ if ((ret = mbedtls_pk_parse_public_keyfile(&pk, argv[1])) != 0) {
+ mbedtls_printf(" failed\n ! Could not read key from '%s'\n", argv[1]);
+ mbedtls_printf(" ! mbedtls_pk_parse_public_keyfile returned %d\n\n", ret);
goto exit;
}
- if( !mbedtls_pk_can_do( &pk, MBEDTLS_PK_RSA ) )
- {
- mbedtls_printf( " failed\n ! Key is not an RSA key\n" );
+ if (!mbedtls_pk_can_do(&pk, MBEDTLS_PK_RSA)) {
+ mbedtls_printf(" failed\n ! Key is not an RSA key\n");
goto exit;
}
- if( ( ret = mbedtls_rsa_set_padding( mbedtls_pk_rsa( pk ),
- MBEDTLS_RSA_PKCS_V21,
- MBEDTLS_MD_SHA256 ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! Invalid padding\n" );
+ if ((ret = mbedtls_rsa_set_padding(mbedtls_pk_rsa(pk),
+ MBEDTLS_RSA_PKCS_V21,
+ MBEDTLS_MD_SHA256)) != 0) {
+ mbedtls_printf(" failed\n ! Invalid padding\n");
goto exit;
}
/*
* Extract the RSA signature from the file
*/
- mbedtls_snprintf( filename, 512, "%s.sig", argv[2] );
+ mbedtls_snprintf(filename, 512, "%s.sig", argv[2]);
- if( ( f = fopen( filename, "rb" ) ) == NULL )
- {
- mbedtls_printf( "\n ! Could not open %s\n\n", filename );
+ if ((f = fopen(filename, "rb")) == NULL) {
+ mbedtls_printf("\n ! Could not open %s\n\n", filename);
goto exit;
}
- i = fread( buf, 1, MBEDTLS_MPI_MAX_SIZE, f );
+ i = fread(buf, 1, MBEDTLS_MPI_MAX_SIZE, f);
- fclose( f );
+ fclose(f);
/*
* Compute the SHA-256 hash of the input file and
* verify the signature
*/
- mbedtls_printf( "\n . Verifying the RSA/SHA-256 signature" );
- fflush( stdout );
+ mbedtls_printf("\n . Verifying the RSA/SHA-256 signature");
+ fflush(stdout);
- if( ( ret = mbedtls_md_file(
- mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ),
- argv[2], hash ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! Could not open or read %s\n\n", argv[2] );
+ if ((ret = mbedtls_md_file(
+ mbedtls_md_info_from_type(MBEDTLS_MD_SHA256),
+ argv[2], hash)) != 0) {
+ mbedtls_printf(" failed\n ! Could not open or read %s\n\n", argv[2]);
goto exit;
}
- if( ( ret = mbedtls_pk_verify( &pk, MBEDTLS_MD_SHA256, hash, 0,
- buf, i ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_verify returned %d\n\n", ret );
+ if ((ret = mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256, hash, 0,
+ buf, i)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_verify returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( "\n . OK (the signature is valid)\n\n" );
+ mbedtls_printf("\n . OK (the signature is valid)\n\n");
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_pk_free( &pk );
+ mbedtls_pk_free(&pk);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_SHA256_C &&
MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO */
diff --git a/programs/psa/aead_demo.c b/programs/psa/aead_demo.c
index 1efd132..0c2413e 100644
--- a/programs/psa/aead_demo.c
+++ b/programs/psa/aead_demo.c
@@ -57,20 +57,20 @@
!defined(MBEDTLS_AES_C) || !defined(MBEDTLS_GCM_C) || \
!defined(MBEDTLS_CHACHAPOLY_C) || \
defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER)
-int main( void )
+int main(void)
{
- printf( "MBEDTLS_PSA_CRYPTO_C and/or "
- "MBEDTLS_AES_C and/or MBEDTLS_GCM_C and/or "
- "MBEDTLS_CHACHAPOLY_C not defined, and/or "
- "MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER defined\r\n" );
- return( 0 );
+ printf("MBEDTLS_PSA_CRYPTO_C and/or "
+ "MBEDTLS_AES_C and/or MBEDTLS_GCM_C and/or "
+ "MBEDTLS_CHACHAPOLY_C not defined, and/or "
+ "MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER defined\r\n");
+ return 0;
}
#else
/* The real program starts here. */
const char usage[] =
-"Usage: aead_demo [aes128-gcm|aes256-gcm|aes128-gcm_8|chachapoly]";
+ "Usage: aead_demo [aes128-gcm|aes256-gcm|aes128-gcm_8|chachapoly]";
/* Dummy data for encryption: IV/nonce, additional data, 2-part message */
const unsigned char iv1[12] = { 0x00 };
@@ -85,40 +85,41 @@
const unsigned char msg2_part2[] = { 0x15, 0x16, 0x17 };
/* Maximum total size of the messages */
-#define MSG1_SIZE ( sizeof( msg1_part1 ) + sizeof( msg1_part2 ) )
-#define MSG2_SIZE ( sizeof( msg2_part1 ) + sizeof( msg2_part2 ) )
-#define MSG_MAX_SIZE ( MSG1_SIZE > MSG2_SIZE ? MSG1_SIZE : MSG2_SIZE )
+#define MSG1_SIZE (sizeof(msg1_part1) + sizeof(msg1_part2))
+#define MSG2_SIZE (sizeof(msg2_part1) + sizeof(msg2_part2))
+#define MSG_MAX_SIZE (MSG1_SIZE > MSG2_SIZE ? MSG1_SIZE : MSG2_SIZE)
/* Dummy key material - never do this in production!
* 32-byte is enough to all the key size supported by this program. */
const unsigned char key_bytes[32] = { 0x2a };
/* Print the contents of a buffer in hex */
-void print_buf( const char *title, uint8_t *buf, size_t len )
+void print_buf(const char *title, uint8_t *buf, size_t len)
{
- printf( "%s:", title );
- for( size_t i = 0; i < len; i++ )
- printf( " %02x", buf[i] );
- printf( "\n" );
+ printf("%s:", title);
+ for (size_t i = 0; i < len; i++) {
+ printf(" %02x", buf[i]);
+ }
+ printf("\n");
}
/* Run a PSA function and bail out if it fails.
* The symbolic name of the error code can be recovered using:
* programs/psa/psa_constant_name status <value> */
-#define PSA_CHECK( expr ) \
+#define PSA_CHECK(expr) \
do \
{ \
- status = ( expr ); \
- if( status != PSA_SUCCESS ) \
+ status = (expr); \
+ if (status != PSA_SUCCESS) \
{ \
- printf( "Error %d at line %d: %s\n", \
- (int) status, \
- __LINE__, \
- #expr ); \
+ printf("Error %d at line %d: %s\n", \
+ (int) status, \
+ __LINE__, \
+ #expr); \
goto exit; \
} \
} \
- while( 0 )
+ while (0)
/*
* Prepare encryption material:
@@ -126,48 +127,48 @@
* - set up key
* - outputs: key and algorithm, which together hold all the information
*/
-static psa_status_t aead_prepare( const char *info,
- psa_key_id_t *key,
- psa_algorithm_t *alg )
+static psa_status_t aead_prepare(const char *info,
+ psa_key_id_t *key,
+ psa_algorithm_t *alg)
{
psa_status_t status;
/* Convert arg to alg + key_bits + key_type */
size_t key_bits;
psa_key_type_t key_type;
- if( strcmp( info, "aes128-gcm" ) == 0 ) {
+ if (strcmp(info, "aes128-gcm") == 0) {
*alg = PSA_ALG_GCM;
key_bits = 128;
key_type = PSA_KEY_TYPE_AES;
- } else if( strcmp( info, "aes256-gcm" ) == 0 ) {
+ } else if (strcmp(info, "aes256-gcm") == 0) {
*alg = PSA_ALG_GCM;
key_bits = 256;
key_type = PSA_KEY_TYPE_AES;
- } else if( strcmp( info, "aes128-gcm_8" ) == 0 ) {
+ } else if (strcmp(info, "aes128-gcm_8") == 0) {
*alg = PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 8);
key_bits = 128;
key_type = PSA_KEY_TYPE_AES;
- } else if( strcmp( info, "chachapoly" ) == 0 ) {
+ } else if (strcmp(info, "chachapoly") == 0) {
*alg = PSA_ALG_CHACHA20_POLY1305;
key_bits = 256;
key_type = PSA_KEY_TYPE_CHACHA20;
} else {
- puts( usage );
- return( PSA_ERROR_INVALID_ARGUMENT );
+ puts(usage);
+ return PSA_ERROR_INVALID_ARGUMENT;
}
/* Prepare key attributes */
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
- psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT );
- psa_set_key_algorithm( &attributes, *alg );
- psa_set_key_type( &attributes, key_type );
- psa_set_key_bits( &attributes, key_bits ); // optional
+ psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT);
+ psa_set_key_algorithm(&attributes, *alg);
+ psa_set_key_type(&attributes, key_type);
+ psa_set_key_bits(&attributes, key_bits); // optional
/* Import key */
- PSA_CHECK( psa_import_key( &attributes, key_bytes, key_bits / 8, key ) );
+ PSA_CHECK(psa_import_key(&attributes, key_bytes, key_bits / 8, key));
exit:
- return( status );
+ return status;
}
/*
@@ -176,14 +177,14 @@
* All of this information was present in the command line argument, but his
* function demonstrates how each piece can be recovered from (key, alg).
*/
-static void aead_info( psa_key_id_t key, psa_algorithm_t alg )
+static void aead_info(psa_key_id_t key, psa_algorithm_t alg)
{
psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
- (void) psa_get_key_attributes( key, &attr );
- psa_key_type_t key_type = psa_get_key_type( &attr );
- size_t key_bits = psa_get_key_bits( &attr );
- psa_algorithm_t base_alg = PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG( alg );
- size_t tag_len = PSA_AEAD_TAG_LENGTH( key_type, key_bits, alg );
+ (void) psa_get_key_attributes(key, &attr);
+ psa_key_type_t key_type = psa_get_key_type(&attr);
+ size_t key_bits = psa_get_key_bits(&attr);
+ psa_algorithm_t base_alg = PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(alg);
+ size_t tag_len = PSA_AEAD_TAG_LENGTH(key_type, key_bits, alg);
const char *type_str = key_type == PSA_KEY_TYPE_AES ? "AES"
: key_type == PSA_KEY_TYPE_CHACHA20 ? "Chacha"
@@ -192,102 +193,101 @@
: base_alg == PSA_ALG_CHACHA20_POLY1305 ? "ChachaPoly"
: "???";
- printf( "%s, %u, %s, %u\n",
- type_str, (unsigned) key_bits, base_str, (unsigned) tag_len );
+ printf("%s, %u, %s, %u\n",
+ type_str, (unsigned) key_bits, base_str, (unsigned) tag_len);
}
/*
* Encrypt a 2-part message.
*/
-static int aead_encrypt( psa_key_id_t key, psa_algorithm_t alg,
- const unsigned char *iv, size_t iv_len,
- const unsigned char *ad, size_t ad_len,
- const unsigned char *part1, size_t part1_len,
- const unsigned char *part2, size_t part2_len )
+static int aead_encrypt(psa_key_id_t key, psa_algorithm_t alg,
+ const unsigned char *iv, size_t iv_len,
+ const unsigned char *ad, size_t ad_len,
+ const unsigned char *part1, size_t part1_len,
+ const unsigned char *part2, size_t part2_len)
{
psa_status_t status;
size_t olen, olen_tag;
unsigned char out[PSA_AEAD_ENCRYPT_OUTPUT_MAX_SIZE(MSG_MAX_SIZE)];
- unsigned char *p = out, *end = out + sizeof( out );
+ unsigned char *p = out, *end = out + sizeof(out);
unsigned char tag[PSA_AEAD_TAG_MAX_SIZE];
psa_aead_operation_t op = PSA_AEAD_OPERATION_INIT;
- PSA_CHECK( psa_aead_encrypt_setup( &op, key, alg ) );
+ PSA_CHECK(psa_aead_encrypt_setup(&op, key, alg));
- PSA_CHECK( psa_aead_set_nonce( &op, iv, iv_len ) );
- PSA_CHECK( psa_aead_update_ad( &op, ad, ad_len ) );
- PSA_CHECK( psa_aead_update( &op, part1, part1_len, p, end - p, &olen ) );
+ PSA_CHECK(psa_aead_set_nonce(&op, iv, iv_len));
+ PSA_CHECK(psa_aead_update_ad(&op, ad, ad_len));
+ PSA_CHECK(psa_aead_update(&op, part1, part1_len, p, end - p, &olen));
p += olen;
- PSA_CHECK( psa_aead_update( &op, part2, part2_len, p, end - p, &olen ) );
+ PSA_CHECK(psa_aead_update(&op, part2, part2_len, p, end - p, &olen));
p += olen;
- PSA_CHECK( psa_aead_finish( &op, p, end - p, &olen,
- tag, sizeof( tag ), &olen_tag ) );
+ PSA_CHECK(psa_aead_finish(&op, p, end - p, &olen,
+ tag, sizeof(tag), &olen_tag));
p += olen;
- memcpy( p, tag, olen_tag );
+ memcpy(p, tag, olen_tag);
p += olen_tag;
olen = p - out;
- print_buf( "out", out, olen );
+ print_buf("out", out, olen);
exit:
- psa_aead_abort( &op ); // required on errors, harmless on success
- return( status );
+ psa_aead_abort(&op); // required on errors, harmless on success
+ return status;
}
/*
* AEAD demo: set up key/alg, print out info, encrypt messages.
*/
-static psa_status_t aead_demo( const char *info )
+static psa_status_t aead_demo(const char *info)
{
psa_status_t status;
psa_key_id_t key;
psa_algorithm_t alg;
- PSA_CHECK( aead_prepare( info, &key, &alg ) );
+ PSA_CHECK(aead_prepare(info, &key, &alg));
- aead_info( key, alg );
+ aead_info(key, alg);
- PSA_CHECK( aead_encrypt( key, alg,
- iv1, sizeof( iv1 ), add_data1, sizeof( add_data1 ),
- msg1_part1, sizeof( msg1_part1 ),
- msg1_part2, sizeof( msg1_part2 ) ) );
- PSA_CHECK( aead_encrypt( key, alg,
- iv2, sizeof( iv2 ), add_data2, sizeof( add_data2 ),
- msg2_part1, sizeof( msg2_part1 ),
- msg2_part2, sizeof( msg2_part2 ) ) );
+ PSA_CHECK(aead_encrypt(key, alg,
+ iv1, sizeof(iv1), add_data1, sizeof(add_data1),
+ msg1_part1, sizeof(msg1_part1),
+ msg1_part2, sizeof(msg1_part2)));
+ PSA_CHECK(aead_encrypt(key, alg,
+ iv2, sizeof(iv2), add_data2, sizeof(add_data2),
+ msg2_part1, sizeof(msg2_part1),
+ msg2_part2, sizeof(msg2_part2)));
exit:
- psa_destroy_key( key );
+ psa_destroy_key(key);
- return( status );
+ return status;
}
/*
* Main function
*/
-int main( int argc, char **argv )
+int main(int argc, char **argv)
{
psa_status_t status = PSA_SUCCESS;
/* Check usage */
- if( argc != 2 )
- {
- puts( usage );
- return( EXIT_FAILURE );
+ if (argc != 2) {
+ puts(usage);
+ return EXIT_FAILURE;
}
/* Initialize the PSA crypto library. */
- PSA_CHECK( psa_crypto_init( ) );
+ PSA_CHECK(psa_crypto_init());
/* Run the demo */
- PSA_CHECK( aead_demo( argv[1] ) );
+ PSA_CHECK(aead_demo(argv[1]));
/* Deinitialize the PSA crypto library. */
- mbedtls_psa_crypto_free( );
+ mbedtls_psa_crypto_free();
exit:
- return( status == PSA_SUCCESS ? EXIT_SUCCESS : EXIT_FAILURE );
+ return status == PSA_SUCCESS ? EXIT_SUCCESS : EXIT_FAILURE;
}
#endif
diff --git a/programs/psa/crypto_examples.c b/programs/psa/crypto_examples.c
index 935d657..3f109d8 100644
--- a/programs/psa/crypto_examples.c
+++ b/programs/psa/crypto_examples.c
@@ -20,146 +20,145 @@
#include <stdio.h>
#include <stdlib.h>
-#define ASSERT( predicate ) \
+#define ASSERT(predicate) \
do \
{ \
- if( ! ( predicate ) ) \
+ if (!(predicate)) \
{ \
- printf( "\tassertion failed at %s:%d - '%s'\r\n", \
- __FILE__, __LINE__, #predicate); \
+ printf("\tassertion failed at %s:%d - '%s'\r\n", \
+ __FILE__, __LINE__, #predicate); \
goto exit; \
} \
- } while ( 0 )
+ } while (0)
-#define ASSERT_STATUS( actual, expected ) \
+#define ASSERT_STATUS(actual, expected) \
do \
{ \
- if( ( actual ) != ( expected ) ) \
+ if ((actual) != (expected)) \
{ \
- printf( "\tassertion failed at %s:%d - " \
- "actual:%d expected:%d\r\n", __FILE__, __LINE__, \
- (psa_status_t) actual, (psa_status_t) expected ); \
+ printf("\tassertion failed at %s:%d - " \
+ "actual:%d expected:%d\r\n", __FILE__, __LINE__, \
+ (psa_status_t) actual, (psa_status_t) expected); \
goto exit; \
} \
- } while ( 0 )
+ } while (0)
#if !defined(MBEDTLS_PSA_CRYPTO_C) || !defined(MBEDTLS_AES_C) || \
!defined(MBEDTLS_CIPHER_MODE_CBC) || !defined(MBEDTLS_CIPHER_MODE_CTR) || \
!defined(MBEDTLS_CIPHER_MODE_WITH_PADDING) || \
defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER)
-int main( void )
+int main(void)
{
- printf( "MBEDTLS_PSA_CRYPTO_C and/or MBEDTLS_AES_C and/or "
- "MBEDTLS_CIPHER_MODE_CBC and/or MBEDTLS_CIPHER_MODE_CTR "
- "and/or MBEDTLS_CIPHER_MODE_WITH_PADDING "
- "not defined and/or MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER"
- " defined.\r\n" );
- return( 0 );
+ printf("MBEDTLS_PSA_CRYPTO_C and/or MBEDTLS_AES_C and/or "
+ "MBEDTLS_CIPHER_MODE_CBC and/or MBEDTLS_CIPHER_MODE_CTR "
+ "and/or MBEDTLS_CIPHER_MODE_WITH_PADDING "
+ "not defined and/or MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER"
+ " defined.\r\n");
+ return 0;
}
#else
-static psa_status_t cipher_operation( psa_cipher_operation_t *operation,
- const uint8_t * input,
- size_t input_size,
- size_t part_size,
- uint8_t * output,
- size_t output_size,
- size_t *output_len )
+static psa_status_t cipher_operation(psa_cipher_operation_t *operation,
+ const uint8_t *input,
+ size_t input_size,
+ size_t part_size,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_len)
{
psa_status_t status;
size_t bytes_to_write = 0, bytes_written = 0, len = 0;
*output_len = 0;
- while( bytes_written != input_size )
- {
- bytes_to_write = ( input_size - bytes_written > part_size ?
- part_size :
- input_size - bytes_written );
+ while (bytes_written != input_size) {
+ bytes_to_write = (input_size - bytes_written > part_size ?
+ part_size :
+ input_size - bytes_written);
- status = psa_cipher_update( operation, input + bytes_written,
- bytes_to_write, output + *output_len,
- output_size - *output_len, &len );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = psa_cipher_update(operation, input + bytes_written,
+ bytes_to_write, output + *output_len,
+ output_size - *output_len, &len);
+ ASSERT_STATUS(status, PSA_SUCCESS);
bytes_written += bytes_to_write;
*output_len += len;
}
- status = psa_cipher_finish( operation, output + *output_len,
- output_size - *output_len, &len );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = psa_cipher_finish(operation, output + *output_len,
+ output_size - *output_len, &len);
+ ASSERT_STATUS(status, PSA_SUCCESS);
*output_len += len;
exit:
- return( status );
+ return status;
}
-static psa_status_t cipher_encrypt( psa_key_id_t key,
- psa_algorithm_t alg,
- uint8_t * iv,
- size_t iv_size,
- const uint8_t * input,
- size_t input_size,
- size_t part_size,
- uint8_t * output,
- size_t output_size,
- size_t *output_len )
+static psa_status_t cipher_encrypt(psa_key_id_t key,
+ psa_algorithm_t alg,
+ uint8_t *iv,
+ size_t iv_size,
+ const uint8_t *input,
+ size_t input_size,
+ size_t part_size,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_len)
{
psa_status_t status;
psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT;
size_t iv_len = 0;
- memset( &operation, 0, sizeof( operation ) );
- status = psa_cipher_encrypt_setup( &operation, key, alg );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ memset(&operation, 0, sizeof(operation));
+ status = psa_cipher_encrypt_setup(&operation, key, alg);
+ ASSERT_STATUS(status, PSA_SUCCESS);
- status = psa_cipher_generate_iv( &operation, iv, iv_size, &iv_len );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = psa_cipher_generate_iv(&operation, iv, iv_size, &iv_len);
+ ASSERT_STATUS(status, PSA_SUCCESS);
- status = cipher_operation( &operation, input, input_size, part_size,
- output, output_size, output_len );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = cipher_operation(&operation, input, input_size, part_size,
+ output, output_size, output_len);
+ ASSERT_STATUS(status, PSA_SUCCESS);
exit:
- psa_cipher_abort( &operation );
- return( status );
+ psa_cipher_abort(&operation);
+ return status;
}
-static psa_status_t cipher_decrypt( psa_key_id_t key,
- psa_algorithm_t alg,
- const uint8_t * iv,
- size_t iv_size,
- const uint8_t * input,
- size_t input_size,
- size_t part_size,
- uint8_t * output,
- size_t output_size,
- size_t *output_len )
+static psa_status_t cipher_decrypt(psa_key_id_t key,
+ psa_algorithm_t alg,
+ const uint8_t *iv,
+ size_t iv_size,
+ const uint8_t *input,
+ size_t input_size,
+ size_t part_size,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_len)
{
psa_status_t status;
psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT;
- memset( &operation, 0, sizeof( operation ) );
- status = psa_cipher_decrypt_setup( &operation, key, alg );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ memset(&operation, 0, sizeof(operation));
+ status = psa_cipher_decrypt_setup(&operation, key, alg);
+ ASSERT_STATUS(status, PSA_SUCCESS);
- status = psa_cipher_set_iv( &operation, iv, iv_size );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = psa_cipher_set_iv(&operation, iv, iv_size);
+ ASSERT_STATUS(status, PSA_SUCCESS);
- status = cipher_operation( &operation, input, input_size, part_size,
- output, output_size, output_len );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = cipher_operation(&operation, input, input_size, part_size,
+ output, output_size, output_len);
+ ASSERT_STATUS(status, PSA_SUCCESS);
exit:
- psa_cipher_abort( &operation );
- return( status );
+ psa_cipher_abort(&operation);
+ return status;
}
static psa_status_t
-cipher_example_encrypt_decrypt_aes_cbc_nopad_1_block( void )
+cipher_example_encrypt_decrypt_aes_cbc_nopad_1_block(void)
{
enum {
- block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH( PSA_KEY_TYPE_AES ),
+ block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH(PSA_KEY_TYPE_AES),
key_bits = 256,
part_size = block_size,
};
@@ -174,40 +173,40 @@
uint8_t encrypt[block_size];
uint8_t decrypt[block_size];
- status = psa_generate_random( input, sizeof( input ) );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = psa_generate_random(input, sizeof(input));
+ ASSERT_STATUS(status, PSA_SUCCESS);
- psa_set_key_usage_flags( &attributes,
- PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT );
- psa_set_key_algorithm( &attributes, alg );
- psa_set_key_type( &attributes, PSA_KEY_TYPE_AES );
- psa_set_key_bits( &attributes, key_bits );
+ psa_set_key_usage_flags(&attributes,
+ PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT);
+ psa_set_key_algorithm(&attributes, alg);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_AES);
+ psa_set_key_bits(&attributes, key_bits);
- status = psa_generate_key( &attributes, &key );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = psa_generate_key(&attributes, &key);
+ ASSERT_STATUS(status, PSA_SUCCESS);
- status = cipher_encrypt( key, alg, iv, sizeof( iv ),
- input, sizeof( input ), part_size,
- encrypt, sizeof( encrypt ), &output_len );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = cipher_encrypt(key, alg, iv, sizeof(iv),
+ input, sizeof(input), part_size,
+ encrypt, sizeof(encrypt), &output_len);
+ ASSERT_STATUS(status, PSA_SUCCESS);
- status = cipher_decrypt( key, alg, iv, sizeof( iv ),
- encrypt, output_len, part_size,
- decrypt, sizeof( decrypt ), &output_len );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = cipher_decrypt(key, alg, iv, sizeof(iv),
+ encrypt, output_len, part_size,
+ decrypt, sizeof(decrypt), &output_len);
+ ASSERT_STATUS(status, PSA_SUCCESS);
- status = memcmp( input, decrypt, sizeof( input ) );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = memcmp(input, decrypt, sizeof(input));
+ ASSERT_STATUS(status, PSA_SUCCESS);
exit:
- psa_destroy_key( key );
- return( status );
+ psa_destroy_key(key);
+ return status;
}
-static psa_status_t cipher_example_encrypt_decrypt_aes_cbc_pkcs7_multi( void )
+static psa_status_t cipher_example_encrypt_decrypt_aes_cbc_pkcs7_multi(void)
{
enum {
- block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH( PSA_KEY_TYPE_AES ),
+ block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH(PSA_KEY_TYPE_AES),
key_bits = 256,
input_size = 100,
part_size = 10,
@@ -222,40 +221,40 @@
uint8_t iv[block_size], input[input_size],
encrypt[input_size + block_size], decrypt[input_size + block_size];
- status = psa_generate_random( input, sizeof( input ) );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = psa_generate_random(input, sizeof(input));
+ ASSERT_STATUS(status, PSA_SUCCESS);
- psa_set_key_usage_flags( &attributes,
- PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT );
- psa_set_key_algorithm( &attributes, alg );
- psa_set_key_type( &attributes, PSA_KEY_TYPE_AES );
- psa_set_key_bits( &attributes, key_bits );
+ psa_set_key_usage_flags(&attributes,
+ PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT);
+ psa_set_key_algorithm(&attributes, alg);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_AES);
+ psa_set_key_bits(&attributes, key_bits);
- status = psa_generate_key( &attributes, &key );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = psa_generate_key(&attributes, &key);
+ ASSERT_STATUS(status, PSA_SUCCESS);
- status = cipher_encrypt( key, alg, iv, sizeof( iv ),
- input, sizeof( input ), part_size,
- encrypt, sizeof( encrypt ), &output_len );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = cipher_encrypt(key, alg, iv, sizeof(iv),
+ input, sizeof(input), part_size,
+ encrypt, sizeof(encrypt), &output_len);
+ ASSERT_STATUS(status, PSA_SUCCESS);
- status = cipher_decrypt( key, alg, iv, sizeof( iv ),
- encrypt, output_len, part_size,
- decrypt, sizeof( decrypt ), &output_len );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = cipher_decrypt(key, alg, iv, sizeof(iv),
+ encrypt, output_len, part_size,
+ decrypt, sizeof(decrypt), &output_len);
+ ASSERT_STATUS(status, PSA_SUCCESS);
- status = memcmp( input, decrypt, sizeof( input ) );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = memcmp(input, decrypt, sizeof(input));
+ ASSERT_STATUS(status, PSA_SUCCESS);
exit:
- psa_destroy_key( key );
- return( status );
+ psa_destroy_key(key);
+ return status;
}
-static psa_status_t cipher_example_encrypt_decrypt_aes_ctr_multi( void )
+static psa_status_t cipher_example_encrypt_decrypt_aes_ctr_multi(void)
{
enum {
- block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH( PSA_KEY_TYPE_AES ),
+ block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH(PSA_KEY_TYPE_AES),
key_bits = 256,
input_size = 100,
part_size = 10,
@@ -269,63 +268,66 @@
uint8_t iv[block_size], input[input_size], encrypt[input_size],
decrypt[input_size];
- status = psa_generate_random( input, sizeof( input ) );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = psa_generate_random(input, sizeof(input));
+ ASSERT_STATUS(status, PSA_SUCCESS);
- psa_set_key_usage_flags( &attributes,
- PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT );
- psa_set_key_algorithm( &attributes, alg );
- psa_set_key_type( &attributes, PSA_KEY_TYPE_AES );
- psa_set_key_bits( &attributes, key_bits );
+ psa_set_key_usage_flags(&attributes,
+ PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT);
+ psa_set_key_algorithm(&attributes, alg);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_AES);
+ psa_set_key_bits(&attributes, key_bits);
- status = psa_generate_key( &attributes, &key );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = psa_generate_key(&attributes, &key);
+ ASSERT_STATUS(status, PSA_SUCCESS);
- status = cipher_encrypt( key, alg, iv, sizeof( iv ),
- input, sizeof( input ), part_size,
- encrypt, sizeof( encrypt ), &output_len );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = cipher_encrypt(key, alg, iv, sizeof(iv),
+ input, sizeof(input), part_size,
+ encrypt, sizeof(encrypt), &output_len);
+ ASSERT_STATUS(status, PSA_SUCCESS);
- status = cipher_decrypt( key, alg, iv, sizeof( iv ),
- encrypt, output_len, part_size,
- decrypt, sizeof( decrypt ), &output_len );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = cipher_decrypt(key, alg, iv, sizeof(iv),
+ encrypt, output_len, part_size,
+ decrypt, sizeof(decrypt), &output_len);
+ ASSERT_STATUS(status, PSA_SUCCESS);
- status = memcmp( input, decrypt, sizeof( input ) );
- ASSERT_STATUS( status, PSA_SUCCESS );
+ status = memcmp(input, decrypt, sizeof(input));
+ ASSERT_STATUS(status, PSA_SUCCESS);
exit:
- psa_destroy_key( key );
- return( status );
+ psa_destroy_key(key);
+ return status;
}
-static void cipher_examples( void )
+static void cipher_examples(void)
{
psa_status_t status;
- printf( "cipher encrypt/decrypt AES CBC no padding:\r\n" );
- status = cipher_example_encrypt_decrypt_aes_cbc_nopad_1_block( );
- if( status == PSA_SUCCESS )
- printf( "\tsuccess!\r\n" );
+ printf("cipher encrypt/decrypt AES CBC no padding:\r\n");
+ status = cipher_example_encrypt_decrypt_aes_cbc_nopad_1_block();
+ if (status == PSA_SUCCESS) {
+ printf("\tsuccess!\r\n");
+ }
- printf( "cipher encrypt/decrypt AES CBC PKCS7 multipart:\r\n" );
- status = cipher_example_encrypt_decrypt_aes_cbc_pkcs7_multi( );
- if( status == PSA_SUCCESS )
- printf( "\tsuccess!\r\n" );
+ printf("cipher encrypt/decrypt AES CBC PKCS7 multipart:\r\n");
+ status = cipher_example_encrypt_decrypt_aes_cbc_pkcs7_multi();
+ if (status == PSA_SUCCESS) {
+ printf("\tsuccess!\r\n");
+ }
- printf( "cipher encrypt/decrypt AES CTR multipart:\r\n" );
- status = cipher_example_encrypt_decrypt_aes_ctr_multi( );
- if( status == PSA_SUCCESS )
- printf( "\tsuccess!\r\n" );
+ printf("cipher encrypt/decrypt AES CTR multipart:\r\n");
+ status = cipher_example_encrypt_decrypt_aes_ctr_multi();
+ if (status == PSA_SUCCESS) {
+ printf("\tsuccess!\r\n");
+ }
}
-int main( void )
+int main(void)
{
- ASSERT( psa_crypto_init( ) == PSA_SUCCESS );
- cipher_examples( );
+ ASSERT(psa_crypto_init() == PSA_SUCCESS);
+ cipher_examples();
exit:
- mbedtls_psa_crypto_free( );
- return( 0 );
+ mbedtls_psa_crypto_free();
+ return 0;
}
#endif /* MBEDTLS_PSA_CRYPTO_C && MBEDTLS_AES_C && MBEDTLS_CIPHER_MODE_CBC &&
MBEDTLS_CIPHER_MODE_CTR && MBEDTLS_CIPHER_MODE_WITH_PADDING */
diff --git a/programs/psa/hmac_demo.c b/programs/psa/hmac_demo.c
index f949a89..f25cdeb 100644
--- a/programs/psa/hmac_demo.c
+++ b/programs/psa/hmac_demo.c
@@ -50,11 +50,11 @@
/* If the build options we need are not enabled, compile a placeholder. */
#if !defined(MBEDTLS_PSA_CRYPTO_C) || \
defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER)
-int main( void )
+int main(void)
{
- printf( "MBEDTLS_PSA_CRYPTO_C not defined, "
- "and/or MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER defined\r\n" );
- return( 0 );
+ printf("MBEDTLS_PSA_CRYPTO_C not defined, "
+ "and/or MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER defined\r\n");
+ return 0;
}
#else
@@ -71,31 +71,32 @@
const unsigned char key_bytes[32] = { 0 };
/* Print the contents of a buffer in hex */
-void print_buf( const char *title, uint8_t *buf, size_t len )
+void print_buf(const char *title, uint8_t *buf, size_t len)
{
- printf( "%s:", title );
- for( size_t i = 0; i < len; i++ )
- printf( " %02x", buf[i] );
- printf( "\n" );
+ printf("%s:", title);
+ for (size_t i = 0; i < len; i++) {
+ printf(" %02x", buf[i]);
+ }
+ printf("\n");
}
/* Run a PSA function and bail out if it fails.
* The symbolic name of the error code can be recovered using:
* programs/psa/psa_constant_name status <value> */
-#define PSA_CHECK( expr ) \
+#define PSA_CHECK(expr) \
do \
{ \
- status = ( expr ); \
- if( status != PSA_SUCCESS ) \
+ status = (expr); \
+ if (status != PSA_SUCCESS) \
{ \
- printf( "Error %d at line %d: %s\n", \
- (int) status, \
- __LINE__, \
- #expr ); \
+ printf("Error %d at line %d: %s\n", \
+ (int) status, \
+ __LINE__, \
+ #expr); \
goto exit; \
} \
} \
- while( 0 )
+ while (0)
/*
* This function demonstrates computation of the HMAC of two messages using
@@ -113,40 +114,41 @@
psa_key_id_t key = 0;
/* prepare key */
- psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_MESSAGE );
- psa_set_key_algorithm( &attributes, alg );
- psa_set_key_type( &attributes, PSA_KEY_TYPE_HMAC );
- psa_set_key_bits( &attributes, 8 * sizeof( key_bytes ) ); // optional
+ psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_MESSAGE);
+ psa_set_key_algorithm(&attributes, alg);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_HMAC);
+ psa_set_key_bits(&attributes, 8 * sizeof(key_bytes)); // optional
- status = psa_import_key( &attributes,
- key_bytes, sizeof( key_bytes ), &key );
- if( status != PSA_SUCCESS )
- return( status );
+ status = psa_import_key(&attributes,
+ key_bytes, sizeof(key_bytes), &key);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
/* prepare operation */
psa_mac_operation_t op = PSA_MAC_OPERATION_INIT;
size_t out_len = 0;
/* compute HMAC(key, msg1_part1 | msg1_part2) */
- PSA_CHECK( psa_mac_sign_setup( &op, key, alg ) );
- PSA_CHECK( psa_mac_update( &op, msg1_part1, sizeof( msg1_part1 ) ) );
- PSA_CHECK( psa_mac_update( &op, msg1_part2, sizeof( msg1_part2 ) ) );
- PSA_CHECK( psa_mac_sign_finish( &op, out, sizeof( out ), &out_len ) );
- print_buf( "msg1", out, out_len );
+ PSA_CHECK(psa_mac_sign_setup(&op, key, alg));
+ PSA_CHECK(psa_mac_update(&op, msg1_part1, sizeof(msg1_part1)));
+ PSA_CHECK(psa_mac_update(&op, msg1_part2, sizeof(msg1_part2)));
+ PSA_CHECK(psa_mac_sign_finish(&op, out, sizeof(out), &out_len));
+ print_buf("msg1", out, out_len);
/* compute HMAC(key, msg2_part1 | msg2_part2) */
- PSA_CHECK( psa_mac_sign_setup( &op, key, alg ) );
- PSA_CHECK( psa_mac_update( &op, msg2_part1, sizeof( msg2_part1 ) ) );
- PSA_CHECK( psa_mac_update( &op, msg2_part2, sizeof( msg2_part2 ) ) );
- PSA_CHECK( psa_mac_sign_finish( &op, out, sizeof( out ), &out_len ) );
- print_buf( "msg2", out, out_len );
+ PSA_CHECK(psa_mac_sign_setup(&op, key, alg));
+ PSA_CHECK(psa_mac_update(&op, msg2_part1, sizeof(msg2_part1)));
+ PSA_CHECK(psa_mac_update(&op, msg2_part2, sizeof(msg2_part2)));
+ PSA_CHECK(psa_mac_sign_finish(&op, out, sizeof(out), &out_len));
+ print_buf("msg2", out, out_len);
exit:
- psa_mac_abort( &op ); // needed on error, harmless on success
- psa_destroy_key( key );
- mbedtls_platform_zeroize( out, sizeof( out ) );
+ psa_mac_abort(&op); // needed on error, harmless on success
+ psa_destroy_key(key);
+ mbedtls_platform_zeroize(out, sizeof(out));
- return( status );
+ return status;
}
int main(void)
@@ -154,16 +156,16 @@
psa_status_t status = PSA_SUCCESS;
/* Initialize the PSA crypto library. */
- PSA_CHECK( psa_crypto_init( ) );
+ PSA_CHECK(psa_crypto_init());
/* Run the demo */
- PSA_CHECK( hmac_demo() );
+ PSA_CHECK(hmac_demo());
/* Deinitialize the PSA crypto library. */
- mbedtls_psa_crypto_free( );
+ mbedtls_psa_crypto_free();
exit:
- return( status == PSA_SUCCESS ? EXIT_SUCCESS : EXIT_FAILURE );
+ return status == PSA_SUCCESS ? EXIT_SUCCESS : EXIT_FAILURE;
}
#endif
diff --git a/programs/psa/key_ladder_demo.c b/programs/psa/key_ladder_demo.c
index f40874e..f5c31de 100644
--- a/programs/psa/key_ladder_demo.c
+++ b/programs/psa/key_ladder_demo.c
@@ -66,47 +66,47 @@
!defined(MBEDTLS_AES_C) || !defined(MBEDTLS_CCM_C) || \
!defined(MBEDTLS_PSA_CRYPTO_C) || !defined(MBEDTLS_FS_IO) || \
defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER)
-int main( void )
+int main(void)
{
- printf( "MBEDTLS_SHA256_C and/or MBEDTLS_MD_C and/or "
- "MBEDTLS_AES_C and/or MBEDTLS_CCM_C and/or "
- "MBEDTLS_PSA_CRYPTO_C and/or MBEDTLS_FS_IO "
- "not defined and/or MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER "
- "defined.\n" );
- return( 0 );
+ printf("MBEDTLS_SHA256_C and/or MBEDTLS_MD_C and/or "
+ "MBEDTLS_AES_C and/or MBEDTLS_CCM_C and/or "
+ "MBEDTLS_PSA_CRYPTO_C and/or MBEDTLS_FS_IO "
+ "not defined and/or MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER "
+ "defined.\n");
+ return 0;
}
#else
/* The real program starts here. */
/* Run a system function and bail out if it fails. */
-#define SYS_CHECK( expr ) \
+#define SYS_CHECK(expr) \
do \
{ \
- if( ! ( expr ) ) \
+ if (!(expr)) \
{ \
- perror( #expr ); \
+ perror( #expr); \
status = DEMO_ERROR; \
goto exit; \
} \
} \
- while( 0 )
+ while (0)
/* Run a PSA function and bail out if it fails. */
-#define PSA_CHECK( expr ) \
+#define PSA_CHECK(expr) \
do \
{ \
- status = ( expr ); \
- if( status != PSA_SUCCESS ) \
+ status = (expr); \
+ if (status != PSA_SUCCESS) \
{ \
- printf( "Error %d at line %d: %s\n", \
- (int) status, \
- __LINE__, \
- #expr ); \
+ printf("Error %d at line %d: %s\n", \
+ (int) status, \
+ __LINE__, \
+ #expr); \
goto exit; \
} \
} \
- while( 0 )
+ while (0)
/* To report operational errors in this program, use an error code that is
* different from every PSA error code. */
@@ -116,19 +116,19 @@
#define MAX_LADDER_DEPTH 10
/* Salt to use when deriving an intermediate key. */
-#define DERIVE_KEY_SALT ( (uint8_t *) "key_ladder_demo.derive" )
-#define DERIVE_KEY_SALT_LENGTH ( strlen( (const char*) DERIVE_KEY_SALT ) )
+#define DERIVE_KEY_SALT ((uint8_t *) "key_ladder_demo.derive")
+#define DERIVE_KEY_SALT_LENGTH (strlen((const char *) DERIVE_KEY_SALT))
/* Salt to use when deriving a wrapping key. */
-#define WRAPPING_KEY_SALT ( (uint8_t *) "key_ladder_demo.wrap" )
-#define WRAPPING_KEY_SALT_LENGTH ( strlen( (const char*) WRAPPING_KEY_SALT ) )
+#define WRAPPING_KEY_SALT ((uint8_t *) "key_ladder_demo.wrap")
+#define WRAPPING_KEY_SALT_LENGTH (strlen((const char *) WRAPPING_KEY_SALT))
/* Size of the key derivation keys (applies both to the master key and
* to intermediate keys). */
#define KEY_SIZE_BYTES 40
/* Algorithm for key derivation. */
-#define KDF_ALG PSA_ALG_HKDF( PSA_ALG_SHA_256 )
+#define KDF_ALG PSA_ALG_HKDF(PSA_ALG_SHA_256)
/* Type and size of the key used to wrap data. */
#define WRAPPING_KEY_TYPE PSA_KEY_TYPE_AES
@@ -145,9 +145,8 @@
* integer sizes and endianness, because the data is meant to be read
* back by the same program on the same machine. */
#define WRAPPED_DATA_MAGIC "key_ladder_demo" // including trailing null byte
-#define WRAPPED_DATA_MAGIC_LENGTH ( sizeof( WRAPPED_DATA_MAGIC ) )
-typedef struct
-{
+#define WRAPPED_DATA_MAGIC_LENGTH (sizeof(WRAPPED_DATA_MAGIC))
+typedef struct {
char magic[WRAPPED_DATA_MAGIC_LENGTH];
size_t ad_size; /* Size of the additional data, which is this header. */
size_t payload_size; /* Size of the encrypted data. */
@@ -156,8 +155,7 @@
} wrapped_data_header_t;
/* The modes that this program can operate in (see usage). */
-enum program_mode
-{
+enum program_mode {
MODE_GENERATE,
MODE_SAVE,
MODE_UNWRAP,
@@ -166,28 +164,29 @@
/* Save a key to a file. In the real world, you may want to export a derived
* key sometimes, to share it with another party. */
-static psa_status_t save_key( psa_key_id_t key,
- const char *output_file_name )
+static psa_status_t save_key(psa_key_id_t key,
+ const char *output_file_name)
{
psa_status_t status = PSA_SUCCESS;
uint8_t key_data[KEY_SIZE_BYTES];
size_t key_size;
FILE *key_file = NULL;
- PSA_CHECK( psa_export_key( key,
- key_data, sizeof( key_data ),
- &key_size ) );
- SYS_CHECK( ( key_file = fopen( output_file_name, "wb" ) ) != NULL );
+ PSA_CHECK(psa_export_key(key,
+ key_data, sizeof(key_data),
+ &key_size));
+ SYS_CHECK((key_file = fopen(output_file_name, "wb")) != NULL);
/* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */
- mbedtls_setbuf( key_file, NULL );
- SYS_CHECK( fwrite( key_data, 1, key_size, key_file ) == key_size );
- SYS_CHECK( fclose( key_file ) == 0 );
+ mbedtls_setbuf(key_file, NULL);
+ SYS_CHECK(fwrite(key_data, 1, key_size, key_file) == key_size);
+ SYS_CHECK(fclose(key_file) == 0);
key_file = NULL;
exit:
- if( key_file != NULL)
- fclose( key_file );
- return( status );
+ if (key_file != NULL) {
+ fclose(key_file);
+ }
+ return status;
}
/* Generate a master key for use in this demo.
@@ -195,25 +194,25 @@
* Normally a master key would be non-exportable. For the purpose of this
* demo, we want to save it to a file, to avoid relying on the keystore
* capability of the PSA crypto library. */
-static psa_status_t generate( const char *key_file_name )
+static psa_status_t generate(const char *key_file_name)
{
psa_status_t status = PSA_SUCCESS;
psa_key_id_t key = 0;
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
- psa_set_key_usage_flags( &attributes,
- PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT );
- psa_set_key_algorithm( &attributes, KDF_ALG );
- psa_set_key_type( &attributes, PSA_KEY_TYPE_DERIVE );
- psa_set_key_bits( &attributes, PSA_BYTES_TO_BITS( KEY_SIZE_BYTES ) );
+ psa_set_key_usage_flags(&attributes,
+ PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT);
+ psa_set_key_algorithm(&attributes, KDF_ALG);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_DERIVE);
+ psa_set_key_bits(&attributes, PSA_BYTES_TO_BITS(KEY_SIZE_BYTES));
- PSA_CHECK( psa_generate_key( &attributes, &key ) );
+ PSA_CHECK(psa_generate_key(&attributes, &key));
- PSA_CHECK( save_key( key, key_file_name ) );
+ PSA_CHECK(save_key(key, key_file_name));
exit:
- (void) psa_destroy_key( key );
- return( status );
+ (void) psa_destroy_key(key);
+ return status;
}
/* Load the master key from a file.
@@ -221,10 +220,10 @@
* In the real world, this master key would be stored in an internal memory
* and the storage would be managed by the keystore capability of the PSA
* crypto library. */
-static psa_status_t import_key_from_file( psa_key_usage_t usage,
- psa_algorithm_t alg,
- const char *key_file_name,
- psa_key_id_t *master_key )
+static psa_status_t import_key_from_file(psa_key_usage_t usage,
+ psa_algorithm_t alg,
+ const char *key_file_name,
+ psa_key_id_t *master_key)
{
psa_status_t status = PSA_SUCCESS;
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
@@ -233,38 +232,37 @@
FILE *key_file = NULL;
unsigned char extra_byte;
- SYS_CHECK( ( key_file = fopen( key_file_name, "rb" ) ) != NULL );
+ SYS_CHECK((key_file = fopen(key_file_name, "rb")) != NULL);
/* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */
- mbedtls_setbuf( key_file, NULL );
- SYS_CHECK( ( key_size = fread( key_data, 1, sizeof( key_data ),
- key_file ) ) != 0 );
- if( fread( &extra_byte, 1, 1, key_file ) != 0 )
- {
- printf( "Key file too large (max: %u).\n",
- (unsigned) sizeof( key_data ) );
+ mbedtls_setbuf(key_file, NULL);
+ SYS_CHECK((key_size = fread(key_data, 1, sizeof(key_data),
+ key_file)) != 0);
+ if (fread(&extra_byte, 1, 1, key_file) != 0) {
+ printf("Key file too large (max: %u).\n",
+ (unsigned) sizeof(key_data));
status = DEMO_ERROR;
goto exit;
}
- SYS_CHECK( fclose( key_file ) == 0 );
+ SYS_CHECK(fclose(key_file) == 0);
key_file = NULL;
- psa_set_key_usage_flags( &attributes, usage );
- psa_set_key_algorithm( &attributes, alg );
- psa_set_key_type( &attributes, PSA_KEY_TYPE_DERIVE );
- PSA_CHECK( psa_import_key( &attributes, key_data, key_size, master_key ) );
+ psa_set_key_usage_flags(&attributes, usage);
+ psa_set_key_algorithm(&attributes, alg);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_DERIVE);
+ PSA_CHECK(psa_import_key(&attributes, key_data, key_size, master_key));
exit:
- if( key_file != NULL )
- fclose( key_file );
- mbedtls_platform_zeroize( key_data, sizeof( key_data ) );
- if( status != PSA_SUCCESS )
- {
+ if (key_file != NULL) {
+ fclose(key_file);
+ }
+ mbedtls_platform_zeroize(key_data, sizeof(key_data));
+ if (status != PSA_SUCCESS) {
/* If the key creation hasn't happened yet or has failed,
* *master_key is null. psa_destroy_key( 0 ) is
* guaranteed to do nothing and return PSA_SUCCESS. */
- (void) psa_destroy_key( *master_key );
+ (void) psa_destroy_key(*master_key);
*master_key = 0;
}
- return( status );
+ return status;
}
/* Derive the intermediate keys, using the list of labels provided on
@@ -272,60 +270,58 @@
* This function destroys the master key. On successful output, *key
* is the identifier of the final derived key.
*/
-static psa_status_t derive_key_ladder( const char *ladder[],
- size_t ladder_depth,
- psa_key_id_t *key )
+static psa_status_t derive_key_ladder(const char *ladder[],
+ size_t ladder_depth,
+ psa_key_id_t *key)
{
psa_status_t status = PSA_SUCCESS;
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT;
size_t i;
- psa_set_key_usage_flags( &attributes,
- PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT );
- psa_set_key_algorithm( &attributes, KDF_ALG );
- psa_set_key_type( &attributes, PSA_KEY_TYPE_DERIVE );
- psa_set_key_bits( &attributes, PSA_BYTES_TO_BITS( KEY_SIZE_BYTES ) );
+ psa_set_key_usage_flags(&attributes,
+ PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT);
+ psa_set_key_algorithm(&attributes, KDF_ALG);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_DERIVE);
+ psa_set_key_bits(&attributes, PSA_BYTES_TO_BITS(KEY_SIZE_BYTES));
/* For each label in turn, ... */
- for( i = 0; i < ladder_depth; i++ )
- {
+ for (i = 0; i < ladder_depth; i++) {
/* Start deriving material from the master key (if i=0) or from
* the current intermediate key (if i>0). */
- PSA_CHECK( psa_key_derivation_setup( &operation, KDF_ALG ) );
- PSA_CHECK( psa_key_derivation_input_bytes(
- &operation, PSA_KEY_DERIVATION_INPUT_SALT,
- DERIVE_KEY_SALT, DERIVE_KEY_SALT_LENGTH ) );
- PSA_CHECK( psa_key_derivation_input_key(
- &operation, PSA_KEY_DERIVATION_INPUT_SECRET,
- *key ) );
- PSA_CHECK( psa_key_derivation_input_bytes(
- &operation, PSA_KEY_DERIVATION_INPUT_INFO,
- (uint8_t*) ladder[i], strlen( ladder[i] ) ) );
+ PSA_CHECK(psa_key_derivation_setup(&operation, KDF_ALG));
+ PSA_CHECK(psa_key_derivation_input_bytes(
+ &operation, PSA_KEY_DERIVATION_INPUT_SALT,
+ DERIVE_KEY_SALT, DERIVE_KEY_SALT_LENGTH));
+ PSA_CHECK(psa_key_derivation_input_key(
+ &operation, PSA_KEY_DERIVATION_INPUT_SECRET,
+ *key));
+ PSA_CHECK(psa_key_derivation_input_bytes(
+ &operation, PSA_KEY_DERIVATION_INPUT_INFO,
+ (uint8_t *) ladder[i], strlen(ladder[i])));
/* When the parent key is not the master key, destroy it,
* since it is no longer needed. */
- PSA_CHECK( psa_destroy_key( *key ) );
+ PSA_CHECK(psa_destroy_key(*key));
*key = 0;
/* Derive the next intermediate key from the parent key. */
- PSA_CHECK( psa_key_derivation_output_key( &attributes, &operation,
- key ) );
- PSA_CHECK( psa_key_derivation_abort( &operation ) );
+ PSA_CHECK(psa_key_derivation_output_key(&attributes, &operation,
+ key));
+ PSA_CHECK(psa_key_derivation_abort(&operation));
}
exit:
- psa_key_derivation_abort( &operation );
- if( status != PSA_SUCCESS )
- {
- psa_destroy_key( *key );
+ psa_key_derivation_abort(&operation);
+ if (status != PSA_SUCCESS) {
+ psa_destroy_key(*key);
*key = 0;
}
- return( status );
+ return status;
}
/* Derive a wrapping key from the last intermediate key. */
-static psa_status_t derive_wrapping_key( psa_key_usage_t usage,
- psa_key_id_t derived_key,
- psa_key_id_t *wrapping_key )
+static psa_status_t derive_wrapping_key(psa_key_usage_t usage,
+ psa_key_id_t derived_key,
+ psa_key_id_t *wrapping_key)
{
psa_status_t status = PSA_SUCCESS;
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
@@ -335,33 +331,33 @@
/* Set up a key derivation operation from the key derived from
* the master key. */
- PSA_CHECK( psa_key_derivation_setup( &operation, KDF_ALG ) );
- PSA_CHECK( psa_key_derivation_input_bytes(
- &operation, PSA_KEY_DERIVATION_INPUT_SALT,
- WRAPPING_KEY_SALT, WRAPPING_KEY_SALT_LENGTH ) );
- PSA_CHECK( psa_key_derivation_input_key(
- &operation, PSA_KEY_DERIVATION_INPUT_SECRET,
- derived_key ) );
- PSA_CHECK( psa_key_derivation_input_bytes(
- &operation, PSA_KEY_DERIVATION_INPUT_INFO,
- NULL, 0 ) );
+ PSA_CHECK(psa_key_derivation_setup(&operation, KDF_ALG));
+ PSA_CHECK(psa_key_derivation_input_bytes(
+ &operation, PSA_KEY_DERIVATION_INPUT_SALT,
+ WRAPPING_KEY_SALT, WRAPPING_KEY_SALT_LENGTH));
+ PSA_CHECK(psa_key_derivation_input_key(
+ &operation, PSA_KEY_DERIVATION_INPUT_SECRET,
+ derived_key));
+ PSA_CHECK(psa_key_derivation_input_bytes(
+ &operation, PSA_KEY_DERIVATION_INPUT_INFO,
+ NULL, 0));
/* Create the wrapping key. */
- psa_set_key_usage_flags( &attributes, usage );
- psa_set_key_algorithm( &attributes, WRAPPING_ALG );
- psa_set_key_type( &attributes, PSA_KEY_TYPE_AES );
- psa_set_key_bits( &attributes, WRAPPING_KEY_BITS );
- PSA_CHECK( psa_key_derivation_output_key( &attributes, &operation,
- wrapping_key ) );
+ psa_set_key_usage_flags(&attributes, usage);
+ psa_set_key_algorithm(&attributes, WRAPPING_ALG);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_AES);
+ psa_set_key_bits(&attributes, WRAPPING_KEY_BITS);
+ PSA_CHECK(psa_key_derivation_output_key(&attributes, &operation,
+ wrapping_key));
exit:
- psa_key_derivation_abort( &operation );
- return( status );
+ psa_key_derivation_abort(&operation);
+ return status;
}
-static psa_status_t wrap_data( const char *input_file_name,
- const char *output_file_name,
- psa_key_id_t wrapping_key )
+static psa_status_t wrap_data(const char *input_file_name,
+ const char *output_file_name,
+ psa_key_id_t wrapping_key)
{
psa_status_t status;
FILE *input_file = NULL;
@@ -376,78 +372,79 @@
wrapped_data_header_t header;
/* Find the size of the data to wrap. */
- SYS_CHECK( ( input_file = fopen( input_file_name, "rb" ) ) != NULL );
+ SYS_CHECK((input_file = fopen(input_file_name, "rb")) != NULL);
/* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */
- mbedtls_setbuf( input_file, NULL );
- SYS_CHECK( fseek( input_file, 0, SEEK_END ) == 0 );
- SYS_CHECK( ( input_position = ftell( input_file ) ) != -1 );
+ mbedtls_setbuf(input_file, NULL);
+ SYS_CHECK(fseek(input_file, 0, SEEK_END) == 0);
+ SYS_CHECK((input_position = ftell(input_file)) != -1);
#if LONG_MAX > SIZE_MAX
- if( input_position > SIZE_MAX )
- {
- printf( "Input file too large.\n" );
+ if (input_position > SIZE_MAX) {
+ printf("Input file too large.\n");
status = DEMO_ERROR;
goto exit;
}
#endif
input_size = input_position;
- PSA_CHECK( psa_get_key_attributes( wrapping_key, &attributes ) );
- key_type = psa_get_key_type( &attributes );
+ PSA_CHECK(psa_get_key_attributes(wrapping_key, &attributes));
+ key_type = psa_get_key_type(&attributes);
buffer_size =
- PSA_AEAD_ENCRYPT_OUTPUT_SIZE( key_type, WRAPPING_ALG, input_size );
+ PSA_AEAD_ENCRYPT_OUTPUT_SIZE(key_type, WRAPPING_ALG, input_size);
/* Check for integer overflow. */
- if( buffer_size < input_size )
- {
- printf( "Input file too large.\n" );
+ if (buffer_size < input_size) {
+ printf("Input file too large.\n");
status = DEMO_ERROR;
goto exit;
}
/* Load the data to wrap. */
- SYS_CHECK( fseek( input_file, 0, SEEK_SET ) == 0 );
- SYS_CHECK( ( buffer = calloc( 1, buffer_size ) ) != NULL );
- SYS_CHECK( fread( buffer, 1, input_size, input_file ) == input_size );
- SYS_CHECK( fclose( input_file ) == 0 );
+ SYS_CHECK(fseek(input_file, 0, SEEK_SET) == 0);
+ SYS_CHECK((buffer = calloc(1, buffer_size)) != NULL);
+ SYS_CHECK(fread(buffer, 1, input_size, input_file) == input_size);
+ SYS_CHECK(fclose(input_file) == 0);
input_file = NULL;
/* Construct a header. */
- memcpy( &header.magic, WRAPPED_DATA_MAGIC, WRAPPED_DATA_MAGIC_LENGTH );
- header.ad_size = sizeof( header );
+ memcpy(&header.magic, WRAPPED_DATA_MAGIC, WRAPPED_DATA_MAGIC_LENGTH);
+ header.ad_size = sizeof(header);
header.payload_size = input_size;
/* Wrap the data. */
- PSA_CHECK( psa_generate_random( header.iv, WRAPPING_IV_SIZE ) );
- PSA_CHECK( psa_aead_encrypt( wrapping_key, WRAPPING_ALG,
- header.iv, WRAPPING_IV_SIZE,
- (uint8_t *) &header, sizeof( header ),
- buffer, input_size,
- buffer, buffer_size,
- &ciphertext_size ) );
+ PSA_CHECK(psa_generate_random(header.iv, WRAPPING_IV_SIZE));
+ PSA_CHECK(psa_aead_encrypt(wrapping_key, WRAPPING_ALG,
+ header.iv, WRAPPING_IV_SIZE,
+ (uint8_t *) &header, sizeof(header),
+ buffer, input_size,
+ buffer, buffer_size,
+ &ciphertext_size));
/* Write the output. */
- SYS_CHECK( ( output_file = fopen( output_file_name, "wb" ) ) != NULL );
+ SYS_CHECK((output_file = fopen(output_file_name, "wb")) != NULL);
/* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */
- mbedtls_setbuf( output_file, NULL );
- SYS_CHECK( fwrite( &header, 1, sizeof( header ),
- output_file ) == sizeof( header ) );
- SYS_CHECK( fwrite( buffer, 1, ciphertext_size,
- output_file ) == ciphertext_size );
- SYS_CHECK( fclose( output_file ) == 0 );
+ mbedtls_setbuf(output_file, NULL);
+ SYS_CHECK(fwrite(&header, 1, sizeof(header),
+ output_file) == sizeof(header));
+ SYS_CHECK(fwrite(buffer, 1, ciphertext_size,
+ output_file) == ciphertext_size);
+ SYS_CHECK(fclose(output_file) == 0);
output_file = NULL;
exit:
- if( input_file != NULL )
- fclose( input_file );
- if( output_file != NULL )
- fclose( output_file );
- if( buffer != NULL )
- mbedtls_platform_zeroize( buffer, buffer_size );
- free( buffer );
- return( status );
+ if (input_file != NULL) {
+ fclose(input_file);
+ }
+ if (output_file != NULL) {
+ fclose(output_file);
+ }
+ if (buffer != NULL) {
+ mbedtls_platform_zeroize(buffer, buffer_size);
+ }
+ free(buffer);
+ return status;
}
-static psa_status_t unwrap_data( const char *input_file_name,
- const char *output_file_name,
- psa_key_id_t wrapping_key )
+static psa_status_t unwrap_data(const char *input_file_name,
+ const char *output_file_name,
+ psa_key_id_t wrapping_key)
{
psa_status_t status;
FILE *input_file = NULL;
@@ -461,128 +458,126 @@
unsigned char extra_byte;
/* Load and validate the header. */
- SYS_CHECK( ( input_file = fopen( input_file_name, "rb" ) ) != NULL );
+ SYS_CHECK((input_file = fopen(input_file_name, "rb")) != NULL);
/* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */
- mbedtls_setbuf( input_file, NULL );
- SYS_CHECK( fread( &header, 1, sizeof( header ),
- input_file ) == sizeof( header ) );
- if( memcmp( &header.magic, WRAPPED_DATA_MAGIC,
- WRAPPED_DATA_MAGIC_LENGTH ) != 0 )
- {
- printf( "The input does not start with a valid magic header.\n" );
+ mbedtls_setbuf(input_file, NULL);
+ SYS_CHECK(fread(&header, 1, sizeof(header),
+ input_file) == sizeof(header));
+ if (memcmp(&header.magic, WRAPPED_DATA_MAGIC,
+ WRAPPED_DATA_MAGIC_LENGTH) != 0) {
+ printf("The input does not start with a valid magic header.\n");
status = DEMO_ERROR;
goto exit;
}
- if( header.ad_size != sizeof( header ) )
- {
- printf( "The header size is not correct.\n" );
+ if (header.ad_size != sizeof(header)) {
+ printf("The header size is not correct.\n");
status = DEMO_ERROR;
goto exit;
}
- PSA_CHECK( psa_get_key_attributes( wrapping_key, &attributes) );
- key_type = psa_get_key_type( &attributes);
+ PSA_CHECK(psa_get_key_attributes(wrapping_key, &attributes));
+ key_type = psa_get_key_type(&attributes);
ciphertext_size =
- PSA_AEAD_ENCRYPT_OUTPUT_SIZE( key_type, WRAPPING_ALG, header.payload_size );
+ PSA_AEAD_ENCRYPT_OUTPUT_SIZE(key_type, WRAPPING_ALG, header.payload_size);
/* Check for integer overflow. */
- if( ciphertext_size < header.payload_size )
- {
- printf( "Input file too large.\n" );
+ if (ciphertext_size < header.payload_size) {
+ printf("Input file too large.\n");
status = DEMO_ERROR;
goto exit;
}
/* Load the payload data. */
- SYS_CHECK( ( buffer = calloc( 1, ciphertext_size ) ) != NULL );
- SYS_CHECK( fread( buffer, 1, ciphertext_size,
- input_file ) == ciphertext_size );
- if( fread( &extra_byte, 1, 1, input_file ) != 0 )
- {
- printf( "Extra garbage after ciphertext\n" );
+ SYS_CHECK((buffer = calloc(1, ciphertext_size)) != NULL);
+ SYS_CHECK(fread(buffer, 1, ciphertext_size,
+ input_file) == ciphertext_size);
+ if (fread(&extra_byte, 1, 1, input_file) != 0) {
+ printf("Extra garbage after ciphertext\n");
status = DEMO_ERROR;
goto exit;
}
- SYS_CHECK( fclose( input_file ) == 0 );
+ SYS_CHECK(fclose(input_file) == 0);
input_file = NULL;
/* Unwrap the data. */
- PSA_CHECK( psa_aead_decrypt( wrapping_key, WRAPPING_ALG,
- header.iv, WRAPPING_IV_SIZE,
- (uint8_t *) &header, sizeof( header ),
- buffer, ciphertext_size,
- buffer, ciphertext_size,
- &plaintext_size ) );
- if( plaintext_size != header.payload_size )
- {
- printf( "Incorrect payload size in the header.\n" );
+ PSA_CHECK(psa_aead_decrypt(wrapping_key, WRAPPING_ALG,
+ header.iv, WRAPPING_IV_SIZE,
+ (uint8_t *) &header, sizeof(header),
+ buffer, ciphertext_size,
+ buffer, ciphertext_size,
+ &plaintext_size));
+ if (plaintext_size != header.payload_size) {
+ printf("Incorrect payload size in the header.\n");
status = DEMO_ERROR;
goto exit;
}
/* Write the output. */
- SYS_CHECK( ( output_file = fopen( output_file_name, "wb" ) ) != NULL );
+ SYS_CHECK((output_file = fopen(output_file_name, "wb")) != NULL);
/* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */
- mbedtls_setbuf( output_file, NULL );
- SYS_CHECK( fwrite( buffer, 1, plaintext_size,
- output_file ) == plaintext_size );
- SYS_CHECK( fclose( output_file ) == 0 );
+ mbedtls_setbuf(output_file, NULL);
+ SYS_CHECK(fwrite(buffer, 1, plaintext_size,
+ output_file) == plaintext_size);
+ SYS_CHECK(fclose(output_file) == 0);
output_file = NULL;
exit:
- if( input_file != NULL )
- fclose( input_file );
- if( output_file != NULL )
- fclose( output_file );
- if( buffer != NULL )
- mbedtls_platform_zeroize( buffer, ciphertext_size );
- free( buffer );
- return( status );
+ if (input_file != NULL) {
+ fclose(input_file);
+ }
+ if (output_file != NULL) {
+ fclose(output_file);
+ }
+ if (buffer != NULL) {
+ mbedtls_platform_zeroize(buffer, ciphertext_size);
+ }
+ free(buffer);
+ return status;
}
-static psa_status_t run( enum program_mode mode,
- const char *key_file_name,
- const char *ladder[], size_t ladder_depth,
- const char *input_file_name,
- const char *output_file_name )
+static psa_status_t run(enum program_mode mode,
+ const char *key_file_name,
+ const char *ladder[], size_t ladder_depth,
+ const char *input_file_name,
+ const char *output_file_name)
{
psa_status_t status = PSA_SUCCESS;
psa_key_id_t derivation_key = 0;
psa_key_id_t wrapping_key = 0;
/* Initialize the PSA crypto library. */
- PSA_CHECK( psa_crypto_init( ) );
+ PSA_CHECK(psa_crypto_init());
/* Generate mode is unlike the others. Generate the master key and exit. */
- if( mode == MODE_GENERATE )
- return( generate( key_file_name ) );
+ if (mode == MODE_GENERATE) {
+ return generate(key_file_name);
+ }
/* Read the master key. */
- PSA_CHECK( import_key_from_file( PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT,
- KDF_ALG,
- key_file_name,
- &derivation_key ) );
+ PSA_CHECK(import_key_from_file(PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT,
+ KDF_ALG,
+ key_file_name,
+ &derivation_key));
/* Calculate the derived key for this session. */
- PSA_CHECK( derive_key_ladder( ladder, ladder_depth,
- &derivation_key ) );
+ PSA_CHECK(derive_key_ladder(ladder, ladder_depth,
+ &derivation_key));
- switch( mode )
- {
+ switch (mode) {
case MODE_SAVE:
- PSA_CHECK( save_key( derivation_key, output_file_name ) );
+ PSA_CHECK(save_key(derivation_key, output_file_name));
break;
case MODE_UNWRAP:
- PSA_CHECK( derive_wrapping_key( PSA_KEY_USAGE_DECRYPT,
- derivation_key,
- &wrapping_key ) );
- PSA_CHECK( unwrap_data( input_file_name, output_file_name,
- wrapping_key ) );
+ PSA_CHECK(derive_wrapping_key(PSA_KEY_USAGE_DECRYPT,
+ derivation_key,
+ &wrapping_key));
+ PSA_CHECK(unwrap_data(input_file_name, output_file_name,
+ wrapping_key));
break;
case MODE_WRAP:
- PSA_CHECK( derive_wrapping_key( PSA_KEY_USAGE_ENCRYPT,
- derivation_key,
- &wrapping_key ) );
- PSA_CHECK( wrap_data( input_file_name, output_file_name,
- wrapping_key ) );
+ PSA_CHECK(derive_wrapping_key(PSA_KEY_USAGE_ENCRYPT,
+ derivation_key,
+ &wrapping_key));
+ PSA_CHECK(wrap_data(input_file_name, output_file_name,
+ wrapping_key));
break;
default:
/* Unreachable but some compilers don't realize it. */
@@ -593,35 +588,35 @@
/* Destroy any remaining key. Deinitializing the crypto library would do
* this anyway since they are volatile keys, but explicitly destroying
* keys makes the code easier to reuse. */
- (void) psa_destroy_key( derivation_key );
- (void) psa_destroy_key( wrapping_key );
+ (void) psa_destroy_key(derivation_key);
+ (void) psa_destroy_key(wrapping_key);
/* Deinitialize the PSA crypto library. */
- mbedtls_psa_crypto_free( );
- return( status );
+ mbedtls_psa_crypto_free();
+ return status;
}
-static void usage( void )
+static void usage(void)
{
- printf( "Usage: key_ladder_demo MODE [OPTION=VALUE]...\n" );
- printf( "Demonstrate the usage of a key derivation ladder.\n" );
- printf( "\n" );
- printf( "Modes:\n" );
- printf( " generate Generate the master key\n" );
- printf( " save Save the derived key\n" );
- printf( " unwrap Unwrap (decrypt) input with the derived key\n" );
- printf( " wrap Wrap (encrypt) input with the derived key\n" );
- printf( "\n" );
- printf( "Options:\n" );
- printf( " input=FILENAME Input file (required for wrap/unwrap)\n" );
- printf( " master=FILENAME File containing the master key (default: master.key)\n" );
- printf( " output=FILENAME Output file (required for save/wrap/unwrap)\n" );
- printf( " label=TEXT Label for the key derivation.\n" );
- printf( " This may be repeated multiple times.\n" );
- printf( " To get the same key, you must use the same master key\n" );
- printf( " and the same sequence of labels.\n" );
+ printf("Usage: key_ladder_demo MODE [OPTION=VALUE]...\n");
+ printf("Demonstrate the usage of a key derivation ladder.\n");
+ printf("\n");
+ printf("Modes:\n");
+ printf(" generate Generate the master key\n");
+ printf(" save Save the derived key\n");
+ printf(" unwrap Unwrap (decrypt) input with the derived key\n");
+ printf(" wrap Wrap (encrypt) input with the derived key\n");
+ printf("\n");
+ printf("Options:\n");
+ printf(" input=FILENAME Input file (required for wrap/unwrap)\n");
+ printf(" master=FILENAME File containing the master key (default: master.key)\n");
+ printf(" output=FILENAME Output file (required for save/wrap/unwrap)\n");
+ printf(" label=TEXT Label for the key derivation.\n");
+ printf(" This may be repeated multiple times.\n");
+ printf(" To get the same key, you must use the same master key\n");
+ printf(" and the same sequence of labels.\n");
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
const char *key_file_name = "master.key";
const char *input_file_name = NULL;
@@ -632,86 +627,76 @@
enum program_mode mode;
psa_status_t status;
- if( argc <= 1 ||
- strcmp( argv[1], "help" ) == 0 ||
- strcmp( argv[1], "-help" ) == 0 ||
- strcmp( argv[1], "--help" ) == 0 )
- {
- usage( );
- return( EXIT_SUCCESS );
+ if (argc <= 1 ||
+ strcmp(argv[1], "help") == 0 ||
+ strcmp(argv[1], "-help") == 0 ||
+ strcmp(argv[1], "--help") == 0) {
+ usage();
+ return EXIT_SUCCESS;
}
- for( i = 2; i < argc; i++ )
- {
- char *q = strchr( argv[i], '=' );
- if( q == NULL )
- {
- printf( "Missing argument to option %s\n", argv[i] );
+ for (i = 2; i < argc; i++) {
+ char *q = strchr(argv[i], '=');
+ if (q == NULL) {
+ printf("Missing argument to option %s\n", argv[i]);
goto usage_failure;
}
*q = 0;
++q;
- if( strcmp( argv[i], "input" ) == 0 )
+ if (strcmp(argv[i], "input") == 0) {
input_file_name = q;
- else if( strcmp( argv[i], "label" ) == 0 )
- {
- if( ladder_depth == MAX_LADDER_DEPTH )
- {
- printf( "Maximum ladder depth %u exceeded.\n",
- (unsigned) MAX_LADDER_DEPTH );
- return( EXIT_FAILURE );
+ } else if (strcmp(argv[i], "label") == 0) {
+ if (ladder_depth == MAX_LADDER_DEPTH) {
+ printf("Maximum ladder depth %u exceeded.\n",
+ (unsigned) MAX_LADDER_DEPTH);
+ return EXIT_FAILURE;
}
ladder[ladder_depth] = q;
++ladder_depth;
- }
- else if( strcmp( argv[i], "master" ) == 0 )
+ } else if (strcmp(argv[i], "master") == 0) {
key_file_name = q;
- else if( strcmp( argv[i], "output" ) == 0 )
+ } else if (strcmp(argv[i], "output") == 0) {
output_file_name = q;
- else
- {
- printf( "Unknown option: %s\n", argv[i] );
+ } else {
+ printf("Unknown option: %s\n", argv[i]);
goto usage_failure;
}
}
- if( strcmp( argv[1], "generate" ) == 0 )
+ if (strcmp(argv[1], "generate") == 0) {
mode = MODE_GENERATE;
- else if( strcmp( argv[1], "save" ) == 0 )
+ } else if (strcmp(argv[1], "save") == 0) {
mode = MODE_SAVE;
- else if( strcmp( argv[1], "unwrap" ) == 0 )
+ } else if (strcmp(argv[1], "unwrap") == 0) {
mode = MODE_UNWRAP;
- else if( strcmp( argv[1], "wrap" ) == 0 )
+ } else if (strcmp(argv[1], "wrap") == 0) {
mode = MODE_WRAP;
- else
- {
- printf( "Unknown action: %s\n", argv[1] );
+ } else {
+ printf("Unknown action: %s\n", argv[1]);
goto usage_failure;
}
- if( input_file_name == NULL &&
- ( mode == MODE_WRAP || mode == MODE_UNWRAP ) )
- {
- printf( "Required argument missing: input\n" );
- return( DEMO_ERROR );
+ if (input_file_name == NULL &&
+ (mode == MODE_WRAP || mode == MODE_UNWRAP)) {
+ printf("Required argument missing: input\n");
+ return DEMO_ERROR;
}
- if( output_file_name == NULL &&
- ( mode == MODE_SAVE || mode == MODE_WRAP || mode == MODE_UNWRAP ) )
- {
- printf( "Required argument missing: output\n" );
- return( DEMO_ERROR );
+ if (output_file_name == NULL &&
+ (mode == MODE_SAVE || mode == MODE_WRAP || mode == MODE_UNWRAP)) {
+ printf("Required argument missing: output\n");
+ return DEMO_ERROR;
}
- status = run( mode, key_file_name,
- ladder, ladder_depth,
- input_file_name, output_file_name );
- return( status == PSA_SUCCESS ?
- EXIT_SUCCESS :
- EXIT_FAILURE );
+ status = run(mode, key_file_name,
+ ladder, ladder_depth,
+ input_file_name, output_file_name);
+ return status == PSA_SUCCESS ?
+ EXIT_SUCCESS :
+ EXIT_FAILURE;
usage_failure:
- usage( );
- return( EXIT_FAILURE );
+ usage();
+ return EXIT_FAILURE;
}
#endif /* MBEDTLS_SHA256_C && MBEDTLS_MD_C &&
MBEDTLS_AES_C && MBEDTLS_CCM_C &&
diff --git a/programs/psa/psa_constant_names.c b/programs/psa/psa_constant_names.c
index b5fea04..8842685 100644
--- a/programs/psa/psa_constant_names.c
+++ b/programs/psa/psa_constant_names.c
@@ -26,29 +26,29 @@
/* This block is present to support Visual Studio builds prior to 2015 */
#if defined(_MSC_VER) && _MSC_VER < 1900
#include <stdarg.h>
-int snprintf( char *s, size_t n, const char *fmt, ... )
+int snprintf(char *s, size_t n, const char *fmt, ...)
{
int ret;
va_list argp;
/* Avoid calling the invalid parameter handler by checking ourselves */
- if( s == NULL || n == 0 || fmt == NULL )
- return( -1 );
+ if (s == NULL || n == 0 || fmt == NULL) {
+ return -1;
+ }
- va_start( argp, fmt );
+ va_start(argp, fmt);
#if defined(_TRUNCATE) && !defined(__MINGW32__)
- ret = _vsnprintf_s( s, n, _TRUNCATE, fmt, argp );
+ ret = _vsnprintf_s(s, n, _TRUNCATE, fmt, argp);
#else
- ret = _vsnprintf( s, n, fmt, argp );
- if( ret < 0 || (size_t) ret == n )
- {
+ ret = _vsnprintf(s, n, fmt, argp);
+ if (ret < 0 || (size_t) ret == n) {
s[n-1] = '\0';
ret = -1;
}
#endif
- va_end( argp );
+ va_end(argp);
- return( ret );
+ return ret;
}
#endif
@@ -69,7 +69,9 @@
unsigned long value)
{
size_t n = snprintf(*buffer, buffer_size - *required_size, format, value);
- if (n < buffer_size - *required_size) *buffer += n;
+ if (n < buffer_size - *required_size) {
+ *buffer += n;
+ }
*required_size += n;
}
@@ -288,8 +290,7 @@
{
if (argc <= 1 ||
!strcmp(argv[1], "help") ||
- !strcmp(argv[1], "--help"))
- {
+ !strcmp(argv[1], "--help")) {
usage(argv[0]);
return EXIT_FAILURE;
}
diff --git a/programs/random/gen_entropy.c b/programs/random/gen_entropy.c
index f0ffea2..cc32171 100644
--- a/programs/random/gen_entropy.c
+++ b/programs/random/gen_entropy.c
@@ -28,15 +28,15 @@
#endif
#if !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_FS_IO)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO not defined.\n");
- mbedtls_exit( 0 );
+ mbedtls_exit(0);
}
#else
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
FILE *f;
int i, k, ret = 1;
@@ -44,45 +44,44 @@
mbedtls_entropy_context entropy;
unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE];
- if( argc < 2 )
- {
- mbedtls_fprintf( stderr, "usage: %s <output filename>\n", argv[0] );
- mbedtls_exit( exit_code );
+ if (argc < 2) {
+ mbedtls_fprintf(stderr, "usage: %s <output filename>\n", argv[0]);
+ mbedtls_exit(exit_code);
}
- if( ( f = fopen( argv[1], "wb+" ) ) == NULL )
- {
- mbedtls_printf( "failed to open '%s' for writing.\n", argv[1] );
- mbedtls_exit( exit_code );
+ if ((f = fopen(argv[1], "wb+")) == NULL) {
+ mbedtls_printf("failed to open '%s' for writing.\n", argv[1]);
+ mbedtls_exit(exit_code);
}
- mbedtls_entropy_init( &entropy );
+ mbedtls_entropy_init(&entropy);
- for( i = 0, k = 768; i < k; i++ )
- {
- ret = mbedtls_entropy_func( &entropy, buf, sizeof( buf ) );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_entropy_func returned -%04X\n",
- (unsigned int) ret );
+ for (i = 0, k = 768; i < k; i++) {
+ ret = mbedtls_entropy_func(&entropy, buf, sizeof(buf));
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_entropy_func returned -%04X\n",
+ (unsigned int) ret);
goto cleanup;
}
- fwrite( buf, 1, sizeof( buf ), f );
+ fwrite(buf, 1, sizeof(buf), f);
- mbedtls_printf( "Generating %ldkb of data in file '%s'... %04.1f" \
- "%% done\r", (long)(sizeof(buf) * k / 1024), argv[1], (100 * (float) (i + 1)) / k );
- fflush( stdout );
+ mbedtls_printf("Generating %ldkb of data in file '%s'... %04.1f" \
+ "%% done\r",
+ (long) (sizeof(buf) * k / 1024),
+ argv[1],
+ (100 * (float) (i + 1)) / k);
+ fflush(stdout);
}
exit_code = MBEDTLS_EXIT_SUCCESS;
cleanup:
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
- fclose( f );
- mbedtls_entropy_free( &entropy );
+ fclose(f);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_ENTROPY_C */
diff --git a/programs/random/gen_random_ctr_drbg.c b/programs/random/gen_random_ctr_drbg.c
index 2a3dd54..e1db16e 100644
--- a/programs/random/gen_random_ctr_drbg.c
+++ b/programs/random/gen_random_ctr_drbg.c
@@ -22,7 +22,7 @@
#include "mbedtls/platform.h"
#if defined(MBEDTLS_CTR_DRBG_C) && defined(MBEDTLS_ENTROPY_C) && \
- defined(MBEDTLS_FS_IO)
+ defined(MBEDTLS_FS_IO)
#include "mbedtls/entropy.h"
#include "mbedtls/ctr_drbg.h"
@@ -30,16 +30,16 @@
#endif
#if !defined(MBEDTLS_CTR_DRBG_C) || !defined(MBEDTLS_ENTROPY_C) || \
- !defined(MBEDTLS_FS_IO)
-int main( void )
+ !defined(MBEDTLS_FS_IO)
+int main(void)
{
mbedtls_printf("MBEDTLS_CTR_DRBG_C and/or MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO not defined.\n");
- mbedtls_exit( 0 );
+ mbedtls_exit(0);
}
#else
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
FILE *f;
int i, k, ret = 1;
@@ -48,63 +48,61 @@
mbedtls_entropy_context entropy;
unsigned char buf[1024];
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_ctr_drbg_init(&ctr_drbg);
- if( argc < 2 )
- {
- mbedtls_fprintf( stderr, "usage: %s <output filename>\n", argv[0] );
- mbedtls_exit( exit_code );
+ if (argc < 2) {
+ mbedtls_fprintf(stderr, "usage: %s <output filename>\n", argv[0]);
+ mbedtls_exit(exit_code);
}
- if( ( f = fopen( argv[1], "wb+" ) ) == NULL )
- {
- mbedtls_printf( "failed to open '%s' for writing.\n", argv[1] );
- mbedtls_exit( exit_code );
+ if ((f = fopen(argv[1], "wb+")) == NULL) {
+ mbedtls_printf("failed to open '%s' for writing.\n", argv[1]);
+ mbedtls_exit(exit_code);
}
- mbedtls_entropy_init( &entropy );
- ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, (const unsigned char *) "RANDOM_GEN", 10 );
- if( ret != 0 )
- {
- mbedtls_printf( "failed in mbedtls_ctr_drbg_seed: %d\n", ret );
+ mbedtls_entropy_init(&entropy);
+ ret = mbedtls_ctr_drbg_seed(&ctr_drbg,
+ mbedtls_entropy_func,
+ &entropy,
+ (const unsigned char *) "RANDOM_GEN",
+ 10);
+ if (ret != 0) {
+ mbedtls_printf("failed in mbedtls_ctr_drbg_seed: %d\n", ret);
goto cleanup;
}
- mbedtls_ctr_drbg_set_prediction_resistance( &ctr_drbg, MBEDTLS_CTR_DRBG_PR_OFF );
+ mbedtls_ctr_drbg_set_prediction_resistance(&ctr_drbg, MBEDTLS_CTR_DRBG_PR_OFF);
#if defined(MBEDTLS_FS_IO)
- ret = mbedtls_ctr_drbg_update_seed_file( &ctr_drbg, "seedfile" );
+ ret = mbedtls_ctr_drbg_update_seed_file(&ctr_drbg, "seedfile");
- if( ret == MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR )
- {
- mbedtls_printf( "Failed to open seedfile. Generating one.\n" );
- ret = mbedtls_ctr_drbg_write_seed_file( &ctr_drbg, "seedfile" );
- if( ret != 0 )
- {
- mbedtls_printf( "failed in mbedtls_ctr_drbg_write_seed_file: %d\n", ret );
+ if (ret == MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR) {
+ mbedtls_printf("Failed to open seedfile. Generating one.\n");
+ ret = mbedtls_ctr_drbg_write_seed_file(&ctr_drbg, "seedfile");
+ if (ret != 0) {
+ mbedtls_printf("failed in mbedtls_ctr_drbg_write_seed_file: %d\n", ret);
goto cleanup;
}
- }
- else if( ret != 0 )
- {
- mbedtls_printf( "failed in mbedtls_ctr_drbg_update_seed_file: %d\n", ret );
+ } else if (ret != 0) {
+ mbedtls_printf("failed in mbedtls_ctr_drbg_update_seed_file: %d\n", ret);
goto cleanup;
}
#endif
- for( i = 0, k = 768; i < k; i++ )
- {
- ret = mbedtls_ctr_drbg_random( &ctr_drbg, buf, sizeof( buf ) );
- if( ret != 0 )
- {
+ for (i = 0, k = 768; i < k; i++) {
+ ret = mbedtls_ctr_drbg_random(&ctr_drbg, buf, sizeof(buf));
+ if (ret != 0) {
mbedtls_printf("failed!\n");
goto cleanup;
}
- fwrite( buf, 1, sizeof( buf ), f );
+ fwrite(buf, 1, sizeof(buf), f);
- mbedtls_printf( "Generating %ldkb of data in file '%s'... %04.1f" \
- "%% done\r", (long)(sizeof(buf) * k / 1024), argv[1], (100 * (float) (i + 1)) / k );
- fflush( stdout );
+ mbedtls_printf("Generating %ldkb of data in file '%s'... %04.1f" \
+ "%% done\r",
+ (long) (sizeof(buf) * k / 1024),
+ argv[1],
+ (100 * (float) (i + 1)) / k);
+ fflush(stdout);
}
exit_code = MBEDTLS_EXIT_SUCCESS;
@@ -112,10 +110,10 @@
cleanup:
mbedtls_printf("\n");
- fclose( f );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ fclose(f);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_CTR_DRBG_C && MBEDTLS_ENTROPY_C */
diff --git a/programs/ssl/dtls_client.c b/programs/ssl/dtls_client.c
index d13ea28..44a135f 100644
--- a/programs/ssl/dtls_client.c
+++ b/programs/ssl/dtls_client.c
@@ -26,14 +26,14 @@
!defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_PEM_PARSE_C)
-int main( void )
+int main(void)
{
- mbedtls_printf( "MBEDTLS_SSL_CLI_C and/or MBEDTLS_SSL_PROTO_DTLS and/or "
- "MBEDTLS_NET_C and/or MBEDTLS_TIMING_C and/or "
- "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
- "MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_PEM_PARSE_C not defined.\n" );
- mbedtls_exit( 0 );
+ mbedtls_printf("MBEDTLS_SSL_CLI_C and/or MBEDTLS_SSL_PROTO_DTLS and/or "
+ "MBEDTLS_NET_C and/or MBEDTLS_TIMING_C and/or "
+ "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
+ "MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_RSA_C and/or "
+ "MBEDTLS_PEM_PARSE_C not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -68,17 +68,17 @@
#define DEBUG_LEVEL 0
-static void my_debug( void *ctx, int level,
- const char *file, int line,
- const char *str )
+static void my_debug(void *ctx, int level,
+ const char *file, int line,
+ const char *str)
{
((void) level);
- mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
- fflush( (FILE *) ctx );
+ mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str);
+ fflush((FILE *) ctx);
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret, len;
mbedtls_net_context server_fd;
@@ -98,221 +98,217 @@
((void) argv);
#if defined(MBEDTLS_DEBUG_C)
- mbedtls_debug_set_threshold( DEBUG_LEVEL );
+ mbedtls_debug_set_threshold(DEBUG_LEVEL);
#endif
/*
* 0. Initialize the RNG and the session data
*/
- mbedtls_net_init( &server_fd );
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- mbedtls_x509_crt_init( &cacert );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_net_init(&server_fd);
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
+ mbedtls_x509_crt_init(&cacert);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- mbedtls_entropy_init( &entropy );
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret );
+ mbedtls_entropy_init(&entropy);
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 0. Load certificates
*/
- mbedtls_printf( " . Loading the CA root certificate ..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the CA root certificate ...");
+ fflush(stdout);
- ret = mbedtls_x509_crt_parse( &cacert, (const unsigned char *) mbedtls_test_cas_pem,
- mbedtls_test_cas_pem_len );
- if( ret < 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", (unsigned int) -ret );
+ ret = mbedtls_x509_crt_parse(&cacert, (const unsigned char *) mbedtls_test_cas_pem,
+ mbedtls_test_cas_pem_len);
+ if (ret < 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " ok (%d skipped)\n", ret );
+ mbedtls_printf(" ok (%d skipped)\n", ret);
/*
* 1. Start the connection
*/
- mbedtls_printf( " . Connecting to udp/%s/%s...", SERVER_NAME, SERVER_PORT );
- fflush( stdout );
+ mbedtls_printf(" . Connecting to udp/%s/%s...", SERVER_NAME, SERVER_PORT);
+ fflush(stdout);
- if( ( ret = mbedtls_net_connect( &server_fd, SERVER_ADDR,
- SERVER_PORT, MBEDTLS_NET_PROTO_UDP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_connect returned %d\n\n", ret );
+ if ((ret = mbedtls_net_connect(&server_fd, SERVER_ADDR,
+ SERVER_PORT, MBEDTLS_NET_PROTO_UDP)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_connect returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 2. Setup stuff
*/
- mbedtls_printf( " . Setting up the DTLS structure..." );
- fflush( stdout );
+ mbedtls_printf(" . Setting up the DTLS structure...");
+ fflush(stdout);
- if( ( ret = mbedtls_ssl_config_defaults( &conf,
- MBEDTLS_SSL_IS_CLIENT,
- MBEDTLS_SSL_TRANSPORT_DATAGRAM,
- MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_config_defaults(&conf,
+ MBEDTLS_SSL_IS_CLIENT,
+ MBEDTLS_SSL_TRANSPORT_DATAGRAM,
+ MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret);
goto exit;
}
/* OPTIONAL is usually a bad choice for security, but makes interop easier
* in this simplified example, in which the ca chain is hardcoded.
* Production code should set a proper ca chain and use REQUIRED. */
- mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_OPTIONAL );
- mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL );
- mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg );
- mbedtls_ssl_conf_dbg( &conf, my_debug, stdout );
- mbedtls_ssl_conf_read_timeout( &conf, READ_TIMEOUT_MS );
+ mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_OPTIONAL);
+ mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL);
+ mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg);
+ mbedtls_ssl_conf_dbg(&conf, my_debug, stdout);
+ mbedtls_ssl_conf_read_timeout(&conf, READ_TIMEOUT_MS);
- if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned %d\n\n", ret);
goto exit;
}
- if( ( ret = mbedtls_ssl_set_hostname( &ssl, SERVER_NAME ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_set_hostname(&ssl, SERVER_NAME)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret);
goto exit;
}
- mbedtls_ssl_set_bio( &ssl, &server_fd,
- mbedtls_net_send, mbedtls_net_recv, mbedtls_net_recv_timeout );
+ mbedtls_ssl_set_bio(&ssl, &server_fd,
+ mbedtls_net_send, mbedtls_net_recv, mbedtls_net_recv_timeout);
- mbedtls_ssl_set_timer_cb( &ssl, &timer, mbedtls_timing_set_delay,
- mbedtls_timing_get_delay );
+ mbedtls_ssl_set_timer_cb(&ssl, &timer, mbedtls_timing_set_delay,
+ mbedtls_timing_get_delay);
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 4. Handshake
*/
- mbedtls_printf( " . Performing the DTLS handshake..." );
- fflush( stdout );
+ mbedtls_printf(" . Performing the DTLS handshake...");
+ fflush(stdout);
- do ret = mbedtls_ssl_handshake( &ssl );
- while( ret == MBEDTLS_ERR_SSL_WANT_READ ||
- ret == MBEDTLS_ERR_SSL_WANT_WRITE );
+ do {
+ ret = mbedtls_ssl_handshake(&ssl);
+ } while (ret == MBEDTLS_ERR_SSL_WANT_READ ||
+ ret == MBEDTLS_ERR_SSL_WANT_WRITE);
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 5. Verify the server certificate
*/
- mbedtls_printf( " . Verifying peer X.509 certificate..." );
+ mbedtls_printf(" . Verifying peer X.509 certificate...");
/* In real life, we would have used MBEDTLS_SSL_VERIFY_REQUIRED so that the
* handshake would not succeed if the peer's cert is bad. Even if we used
* MBEDTLS_SSL_VERIFY_OPTIONAL, we would bail out here if ret != 0 */
- if( ( flags = mbedtls_ssl_get_verify_result( &ssl ) ) != 0 )
- {
+ if ((flags = mbedtls_ssl_get_verify_result(&ssl)) != 0) {
#if !defined(MBEDTLS_X509_REMOVE_INFO)
char vrfy_buf[512];
#endif
- mbedtls_printf( " failed\n" );
+ mbedtls_printf(" failed\n");
#if !defined(MBEDTLS_X509_REMOVE_INFO)
- mbedtls_x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ), " ! ", flags );
+ mbedtls_x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), " ! ", flags);
- mbedtls_printf( "%s\n", vrfy_buf );
+ mbedtls_printf("%s\n", vrfy_buf);
#endif
+ } else {
+ mbedtls_printf(" ok\n");
}
- else
- mbedtls_printf( " ok\n" );
/*
* 6. Write the echo request
*/
send_request:
- mbedtls_printf( " > Write to server:" );
- fflush( stdout );
+ mbedtls_printf(" > Write to server:");
+ fflush(stdout);
- len = sizeof( MESSAGE ) - 1;
+ len = sizeof(MESSAGE) - 1;
- do ret = mbedtls_ssl_write( &ssl, (unsigned char *) MESSAGE, len );
- while( ret == MBEDTLS_ERR_SSL_WANT_READ ||
- ret == MBEDTLS_ERR_SSL_WANT_WRITE );
+ do {
+ ret = mbedtls_ssl_write(&ssl, (unsigned char *) MESSAGE, len);
+ } while (ret == MBEDTLS_ERR_SSL_WANT_READ ||
+ ret == MBEDTLS_ERR_SSL_WANT_WRITE);
- if( ret < 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret );
+ if (ret < 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret);
goto exit;
}
len = ret;
- mbedtls_printf( " %d bytes written\n\n%s\n\n", len, MESSAGE );
+ mbedtls_printf(" %d bytes written\n\n%s\n\n", len, MESSAGE);
/*
* 7. Read the echo response
*/
- mbedtls_printf( " < Read from server:" );
- fflush( stdout );
+ mbedtls_printf(" < Read from server:");
+ fflush(stdout);
- len = sizeof( buf ) - 1;
- memset( buf, 0, sizeof( buf ) );
+ len = sizeof(buf) - 1;
+ memset(buf, 0, sizeof(buf));
- do ret = mbedtls_ssl_read( &ssl, buf, len );
- while( ret == MBEDTLS_ERR_SSL_WANT_READ ||
- ret == MBEDTLS_ERR_SSL_WANT_WRITE );
+ do {
+ ret = mbedtls_ssl_read(&ssl, buf, len);
+ } while (ret == MBEDTLS_ERR_SSL_WANT_READ ||
+ ret == MBEDTLS_ERR_SSL_WANT_WRITE);
- if( ret <= 0 )
- {
- switch( ret )
- {
+ if (ret <= 0) {
+ switch (ret) {
case MBEDTLS_ERR_SSL_TIMEOUT:
- mbedtls_printf( " timeout\n\n" );
- if( retry_left-- > 0 )
+ mbedtls_printf(" timeout\n\n");
+ if (retry_left-- > 0) {
goto send_request;
+ }
goto exit;
case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY:
- mbedtls_printf( " connection was closed gracefully\n" );
+ mbedtls_printf(" connection was closed gracefully\n");
ret = 0;
goto close_notify;
default:
- mbedtls_printf( " mbedtls_ssl_read returned -0x%x\n\n", (unsigned int) -ret );
+ mbedtls_printf(" mbedtls_ssl_read returned -0x%x\n\n", (unsigned int) -ret);
goto exit;
}
}
len = ret;
- mbedtls_printf( " %d bytes read\n\n%s\n\n", len, buf );
+ mbedtls_printf(" %d bytes read\n\n%s\n\n", len, buf);
/*
* 8. Done, cleanly close the connection
*/
close_notify:
- mbedtls_printf( " . Closing the connection..." );
+ mbedtls_printf(" . Closing the connection...");
/* No error checking, the connection might be closed already */
- do ret = mbedtls_ssl_close_notify( &ssl );
- while( ret == MBEDTLS_ERR_SSL_WANT_WRITE );
+ do {
+ ret = mbedtls_ssl_close_notify(&ssl);
+ } while (ret == MBEDTLS_ERR_SSL_WANT_WRITE);
ret = 0;
- mbedtls_printf( " done\n" );
+ mbedtls_printf(" done\n");
/*
* 9. Final clean-ups and exit
@@ -320,27 +316,27 @@
exit:
#ifdef MBEDTLS_ERROR_C
- if( ret != 0 )
- {
+ if (ret != 0) {
char error_buf[100];
- mbedtls_strerror( ret, error_buf, 100 );
- mbedtls_printf( "Last error was: %d - %s\n\n", ret, error_buf );
+ mbedtls_strerror(ret, error_buf, 100);
+ mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf);
}
#endif
- mbedtls_net_free( &server_fd );
+ mbedtls_net_free(&server_fd);
- mbedtls_x509_crt_free( &cacert );
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_x509_crt_free(&cacert);
+ mbedtls_ssl_free(&ssl);
+ mbedtls_ssl_config_free(&conf);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
/* Shell can not handle large exit numbers -> 1 for errors */
- if( ret < 0 )
+ if (ret < 0) {
ret = 1;
+ }
- mbedtls_exit( ret );
+ mbedtls_exit(ret);
}
#endif /* MBEDTLS_SSL_CLI_C && MBEDTLS_SSL_PROTO_DTLS && MBEDTLS_NET_C &&
MBEDTLS_TIMING_C && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C &&
diff --git a/programs/ssl/dtls_server.c b/programs/ssl/dtls_server.c
index 10d82ba..6f8c841 100644
--- a/programs/ssl/dtls_server.c
+++ b/programs/ssl/dtls_server.c
@@ -36,14 +36,14 @@
!defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_PEM_PARSE_C) || !defined(MBEDTLS_TIMING_C)
-int main( void )
+int main(void)
{
- printf( "MBEDTLS_SSL_SRV_C and/or MBEDTLS_SSL_PROTO_DTLS and/or "
- "MBEDTLS_SSL_COOKIE_C and/or MBEDTLS_NET_C and/or "
- "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
- "MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_PEM_PARSE_C and/or MBEDTLS_TIMING_C not defined.\n" );
- mbedtls_exit( 0 );
+ printf("MBEDTLS_SSL_SRV_C and/or MBEDTLS_SSL_PROTO_DTLS and/or "
+ "MBEDTLS_SSL_COOKIE_C and/or MBEDTLS_NET_C and/or "
+ "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
+ "MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_RSA_C and/or "
+ "MBEDTLS_PEM_PARSE_C and/or MBEDTLS_TIMING_C not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -75,17 +75,17 @@
#define DEBUG_LEVEL 0
-static void my_debug( void *ctx, int level,
- const char *file, int line,
- const char *str )
+static void my_debug(void *ctx, int level,
+ const char *file, int line,
+ const char *str)
{
((void) level);
- mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
- fflush( (FILE *) ctx );
+ mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str);
+ fflush((FILE *) ctx);
}
-int main( void )
+int main(void)
{
int ret, len;
mbedtls_net_context listen_fd, client_fd;
@@ -106,274 +106,265 @@
mbedtls_ssl_cache_context cache;
#endif
- mbedtls_net_init( &listen_fd );
- mbedtls_net_init( &client_fd );
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- mbedtls_ssl_cookie_init( &cookie_ctx );
+ mbedtls_net_init(&listen_fd);
+ mbedtls_net_init(&client_fd);
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
+ mbedtls_ssl_cookie_init(&cookie_ctx);
#if defined(MBEDTLS_SSL_CACHE_C)
- mbedtls_ssl_cache_init( &cache );
+ mbedtls_ssl_cache_init(&cache);
#endif
- mbedtls_x509_crt_init( &srvcert );
- mbedtls_pk_init( &pkey );
- mbedtls_entropy_init( &entropy );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_x509_crt_init(&srvcert);
+ mbedtls_pk_init(&pkey);
+ mbedtls_entropy_init(&entropy);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
#if defined(MBEDTLS_DEBUG_C)
- mbedtls_debug_set_threshold( DEBUG_LEVEL );
+ mbedtls_debug_set_threshold(DEBUG_LEVEL);
#endif
/*
* 1. Seed the RNG
*/
- printf( " . Seeding the random number generator..." );
- fflush( stdout );
+ printf(" . Seeding the random number generator...");
+ fflush(stdout);
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret );
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret);
goto exit;
}
- printf( " ok\n" );
+ printf(" ok\n");
/*
* 2. Load the certificates and private RSA key
*/
- printf( "\n . Loading the server cert. and key..." );
- fflush( stdout );
+ printf("\n . Loading the server cert. and key...");
+ fflush(stdout);
/*
* This demonstration program uses embedded test certificates.
* Instead, you may want to use mbedtls_x509_crt_parse_file() to read the
* server and CA certificates, as well as mbedtls_pk_parse_keyfile().
*/
- ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_srv_crt,
- mbedtls_test_srv_crt_len );
- if( ret != 0 )
- {
- printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret );
+ ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_srv_crt,
+ mbedtls_test_srv_crt_len);
+ if (ret != 0) {
+ printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret);
goto exit;
}
- ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_cas_pem,
- mbedtls_test_cas_pem_len );
- if( ret != 0 )
- {
- printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret );
+ ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_cas_pem,
+ mbedtls_test_cas_pem_len);
+ if (ret != 0) {
+ printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret);
goto exit;
}
- ret = mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_srv_key,
- mbedtls_test_srv_key_len, NULL, 0, mbedtls_ctr_drbg_random, &ctr_drbg );
- if( ret != 0 )
- {
- printf( " failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret );
+ ret = mbedtls_pk_parse_key(&pkey,
+ (const unsigned char *) mbedtls_test_srv_key,
+ mbedtls_test_srv_key_len,
+ NULL,
+ 0,
+ mbedtls_ctr_drbg_random,
+ &ctr_drbg);
+ if (ret != 0) {
+ printf(" failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret);
goto exit;
}
- printf( " ok\n" );
+ printf(" ok\n");
/*
* 3. Setup the "listening" UDP socket
*/
- printf( " . Bind on udp/*/4433 ..." );
- fflush( stdout );
+ printf(" . Bind on udp/*/4433 ...");
+ fflush(stdout);
- if( ( ret = mbedtls_net_bind( &listen_fd, BIND_IP, "4433", MBEDTLS_NET_PROTO_UDP ) ) != 0 )
- {
- printf( " failed\n ! mbedtls_net_bind returned %d\n\n", ret );
+ if ((ret = mbedtls_net_bind(&listen_fd, BIND_IP, "4433", MBEDTLS_NET_PROTO_UDP)) != 0) {
+ printf(" failed\n ! mbedtls_net_bind returned %d\n\n", ret);
goto exit;
}
- printf( " ok\n" );
+ printf(" ok\n");
/*
* 4. Setup stuff
*/
- printf( " . Setting up the DTLS data..." );
- fflush( stdout );
+ printf(" . Setting up the DTLS data...");
+ fflush(stdout);
- if( ( ret = mbedtls_ssl_config_defaults( &conf,
- MBEDTLS_SSL_IS_SERVER,
- MBEDTLS_SSL_TRANSPORT_DATAGRAM,
- MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_config_defaults(&conf,
+ MBEDTLS_SSL_IS_SERVER,
+ MBEDTLS_SSL_TRANSPORT_DATAGRAM,
+ MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret);
goto exit;
}
- mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg );
- mbedtls_ssl_conf_dbg( &conf, my_debug, stdout );
- mbedtls_ssl_conf_read_timeout( &conf, READ_TIMEOUT_MS );
+ mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg);
+ mbedtls_ssl_conf_dbg(&conf, my_debug, stdout);
+ mbedtls_ssl_conf_read_timeout(&conf, READ_TIMEOUT_MS);
#if defined(MBEDTLS_SSL_CACHE_C)
- mbedtls_ssl_conf_session_cache( &conf, &cache,
+ mbedtls_ssl_conf_session_cache(&conf, &cache,
mbedtls_ssl_cache_get,
- mbedtls_ssl_cache_set );
+ mbedtls_ssl_cache_set);
#endif
- mbedtls_ssl_conf_ca_chain( &conf, srvcert.next, NULL );
- if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &srvcert, &pkey ) ) != 0 )
- {
- printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret );
+ mbedtls_ssl_conf_ca_chain(&conf, srvcert.next, NULL);
+ if ((ret = mbedtls_ssl_conf_own_cert(&conf, &srvcert, &pkey)) != 0) {
+ printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret);
goto exit;
}
- if( ( ret = mbedtls_ssl_cookie_setup( &cookie_ctx,
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- printf( " failed\n ! mbedtls_ssl_cookie_setup returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_cookie_setup(&cookie_ctx,
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ printf(" failed\n ! mbedtls_ssl_cookie_setup returned %d\n\n", ret);
goto exit;
}
- mbedtls_ssl_conf_dtls_cookies( &conf, mbedtls_ssl_cookie_write, mbedtls_ssl_cookie_check,
- &cookie_ctx );
+ mbedtls_ssl_conf_dtls_cookies(&conf, mbedtls_ssl_cookie_write, mbedtls_ssl_cookie_check,
+ &cookie_ctx);
- if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 )
- {
- printf( " failed\n ! mbedtls_ssl_setup returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) {
+ printf(" failed\n ! mbedtls_ssl_setup returned %d\n\n", ret);
goto exit;
}
- mbedtls_ssl_set_timer_cb( &ssl, &timer, mbedtls_timing_set_delay,
- mbedtls_timing_get_delay );
+ mbedtls_ssl_set_timer_cb(&ssl, &timer, mbedtls_timing_set_delay,
+ mbedtls_timing_get_delay);
- printf( " ok\n" );
+ printf(" ok\n");
reset:
#ifdef MBEDTLS_ERROR_C
- if( ret != 0 )
- {
+ if (ret != 0) {
char error_buf[100];
- mbedtls_strerror( ret, error_buf, 100 );
- printf("Last error was: %d - %s\n\n", ret, error_buf );
+ mbedtls_strerror(ret, error_buf, 100);
+ printf("Last error was: %d - %s\n\n", ret, error_buf);
}
#endif
- mbedtls_net_free( &client_fd );
+ mbedtls_net_free(&client_fd);
- mbedtls_ssl_session_reset( &ssl );
+ mbedtls_ssl_session_reset(&ssl);
/*
* 3. Wait until a client connects
*/
- printf( " . Waiting for a remote connection ..." );
- fflush( stdout );
+ printf(" . Waiting for a remote connection ...");
+ fflush(stdout);
- if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd,
- client_ip, sizeof( client_ip ), &cliip_len ) ) != 0 )
- {
- printf( " failed\n ! mbedtls_net_accept returned %d\n\n", ret );
+ if ((ret = mbedtls_net_accept(&listen_fd, &client_fd,
+ client_ip, sizeof(client_ip), &cliip_len)) != 0) {
+ printf(" failed\n ! mbedtls_net_accept returned %d\n\n", ret);
goto exit;
}
/* For HelloVerifyRequest cookies */
- if( ( ret = mbedtls_ssl_set_client_transport_id( &ssl,
- client_ip, cliip_len ) ) != 0 )
- {
- printf( " failed\n ! "
- "mbedtls_ssl_set_client_transport_id() returned -0x%x\n\n", (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_set_client_transport_id(&ssl,
+ client_ip, cliip_len)) != 0) {
+ printf(" failed\n ! "
+ "mbedtls_ssl_set_client_transport_id() returned -0x%x\n\n", (unsigned int) -ret);
goto exit;
}
- mbedtls_ssl_set_bio( &ssl, &client_fd,
- mbedtls_net_send, mbedtls_net_recv, mbedtls_net_recv_timeout );
+ mbedtls_ssl_set_bio(&ssl, &client_fd,
+ mbedtls_net_send, mbedtls_net_recv, mbedtls_net_recv_timeout);
- printf( " ok\n" );
+ printf(" ok\n");
/*
* 5. Handshake
*/
- printf( " . Performing the DTLS handshake..." );
- fflush( stdout );
+ printf(" . Performing the DTLS handshake...");
+ fflush(stdout);
- do ret = mbedtls_ssl_handshake( &ssl );
- while( ret == MBEDTLS_ERR_SSL_WANT_READ ||
- ret == MBEDTLS_ERR_SSL_WANT_WRITE );
+ do {
+ ret = mbedtls_ssl_handshake(&ssl);
+ } while (ret == MBEDTLS_ERR_SSL_WANT_READ ||
+ ret == MBEDTLS_ERR_SSL_WANT_WRITE);
- if( ret == MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED )
- {
- printf( " hello verification requested\n" );
+ if (ret == MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED) {
+ printf(" hello verification requested\n");
ret = 0;
goto reset;
- }
- else if( ret != 0 )
- {
- printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret );
+ } else if (ret != 0) {
+ printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret);
goto reset;
}
- printf( " ok\n" );
+ printf(" ok\n");
/*
* 6. Read the echo Request
*/
- printf( " < Read from client:" );
- fflush( stdout );
+ printf(" < Read from client:");
+ fflush(stdout);
- len = sizeof( buf ) - 1;
- memset( buf, 0, sizeof( buf ) );
+ len = sizeof(buf) - 1;
+ memset(buf, 0, sizeof(buf));
- do ret = mbedtls_ssl_read( &ssl, buf, len );
- while( ret == MBEDTLS_ERR_SSL_WANT_READ ||
- ret == MBEDTLS_ERR_SSL_WANT_WRITE );
+ do {
+ ret = mbedtls_ssl_read(&ssl, buf, len);
+ } while (ret == MBEDTLS_ERR_SSL_WANT_READ ||
+ ret == MBEDTLS_ERR_SSL_WANT_WRITE);
- if( ret <= 0 )
- {
- switch( ret )
- {
+ if (ret <= 0) {
+ switch (ret) {
case MBEDTLS_ERR_SSL_TIMEOUT:
- printf( " timeout\n\n" );
+ printf(" timeout\n\n");
goto reset;
case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY:
- printf( " connection was closed gracefully\n" );
+ printf(" connection was closed gracefully\n");
ret = 0;
goto close_notify;
default:
- printf( " mbedtls_ssl_read returned -0x%x\n\n", (unsigned int) -ret );
+ printf(" mbedtls_ssl_read returned -0x%x\n\n", (unsigned int) -ret);
goto reset;
}
}
len = ret;
- printf( " %d bytes read\n\n%s\n\n", len, buf );
+ printf(" %d bytes read\n\n%s\n\n", len, buf);
/*
* 7. Write the 200 Response
*/
- printf( " > Write to client:" );
- fflush( stdout );
+ printf(" > Write to client:");
+ fflush(stdout);
- do ret = mbedtls_ssl_write( &ssl, buf, len );
- while( ret == MBEDTLS_ERR_SSL_WANT_READ ||
- ret == MBEDTLS_ERR_SSL_WANT_WRITE );
+ do {
+ ret = mbedtls_ssl_write(&ssl, buf, len);
+ } while (ret == MBEDTLS_ERR_SSL_WANT_READ ||
+ ret == MBEDTLS_ERR_SSL_WANT_WRITE);
- if( ret < 0 )
- {
- printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret );
+ if (ret < 0) {
+ printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret);
goto exit;
}
len = ret;
- printf( " %d bytes written\n\n%s\n\n", len, buf );
+ printf(" %d bytes written\n\n%s\n\n", len, buf);
/*
* 8. Done, cleanly close the connection
*/
close_notify:
- printf( " . Closing the connection..." );
+ printf(" . Closing the connection...");
/* No error checking, the connection might be closed already */
- do ret = mbedtls_ssl_close_notify( &ssl );
- while( ret == MBEDTLS_ERR_SSL_WANT_WRITE );
+ do {
+ ret = mbedtls_ssl_close_notify(&ssl);
+ } while (ret == MBEDTLS_ERR_SSL_WANT_WRITE);
ret = 0;
- printf( " done\n" );
+ printf(" done\n");
goto reset;
@@ -383,33 +374,33 @@
exit:
#ifdef MBEDTLS_ERROR_C
- if( ret != 0 )
- {
+ if (ret != 0) {
char error_buf[100];
- mbedtls_strerror( ret, error_buf, 100 );
- printf( "Last error was: %d - %s\n\n", ret, error_buf );
+ mbedtls_strerror(ret, error_buf, 100);
+ printf("Last error was: %d - %s\n\n", ret, error_buf);
}
#endif
- mbedtls_net_free( &client_fd );
- mbedtls_net_free( &listen_fd );
+ mbedtls_net_free(&client_fd);
+ mbedtls_net_free(&listen_fd);
- mbedtls_x509_crt_free( &srvcert );
- mbedtls_pk_free( &pkey );
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
- mbedtls_ssl_cookie_free( &cookie_ctx );
+ mbedtls_x509_crt_free(&srvcert);
+ mbedtls_pk_free(&pkey);
+ mbedtls_ssl_free(&ssl);
+ mbedtls_ssl_config_free(&conf);
+ mbedtls_ssl_cookie_free(&cookie_ctx);
#if defined(MBEDTLS_SSL_CACHE_C)
- mbedtls_ssl_cache_free( &cache );
+ mbedtls_ssl_cache_free(&cache);
#endif
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
/* Shell can not handle large exit numbers -> 1 for errors */
- if( ret < 0 )
+ if (ret < 0) {
ret = 1;
+ }
- mbedtls_exit( ret );
+ mbedtls_exit(ret);
}
#endif /* MBEDTLS_SSL_SRV_C && MBEDTLS_SSL_PROTO_DTLS &&
MBEDTLS_SSL_COOKIE_C && MBEDTLS_NET_C && MBEDTLS_ENTROPY_C &&
diff --git a/programs/ssl/mini_client.c b/programs/ssl/mini_client.c
index efcf650..6dbbc6d 100644
--- a/programs/ssl/mini_client.c
+++ b/programs/ssl/mini_client.c
@@ -40,12 +40,12 @@
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_SSL_CLI_C) || \
!defined(UNIX)
-int main( void )
+int main(void)
{
- mbedtls_printf( "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_ENTROPY_C and/or "
- "MBEDTLS_NET_C and/or MBEDTLS_SSL_CLI_C and/or UNIX "
- "not defined.\n");
- mbedtls_exit( 0 );
+ mbedtls_printf("MBEDTLS_CTR_DRBG_C and/or MBEDTLS_ENTROPY_C and/or "
+ "MBEDTLS_NET_C and/or MBEDTLS_SSL_CLI_C and/or UNIX "
+ "not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -137,8 +137,7 @@
};
#endif /* MBEDTLS_X509_CRT_PARSE_C */
-enum exit_codes
-{
+enum exit_codes {
exit_ok = 0,
ctr_drbg_seed_failed,
ssl_config_defaults_failed,
@@ -152,7 +151,7 @@
};
-int main( void )
+int main(void)
{
int ret = exit_ok;
mbedtls_net_context server_fd;
@@ -165,62 +164,57 @@
mbedtls_ctr_drbg_context ctr_drbg;
mbedtls_ssl_context ssl;
mbedtls_ssl_config conf;
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_ctr_drbg_init(&ctr_drbg);
/*
* 0. Initialize and setup stuff
*/
- mbedtls_net_init( &server_fd );
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
+ mbedtls_net_init(&server_fd);
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
#if defined(MBEDTLS_X509_CRT_PARSE_C)
- mbedtls_x509_crt_init( &ca );
+ mbedtls_x509_crt_init(&ca);
#endif
- mbedtls_entropy_init( &entropy );
- if( mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers, strlen( pers ) ) != 0 )
- {
+ mbedtls_entropy_init(&entropy);
+ if (mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers, strlen(pers)) != 0) {
ret = ctr_drbg_seed_failed;
goto exit;
}
- if( mbedtls_ssl_config_defaults( &conf,
- MBEDTLS_SSL_IS_CLIENT,
- MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT ) != 0 )
- {
+ if (mbedtls_ssl_config_defaults(&conf,
+ MBEDTLS_SSL_IS_CLIENT,
+ MBEDTLS_SSL_TRANSPORT_STREAM,
+ MBEDTLS_SSL_PRESET_DEFAULT) != 0) {
ret = ssl_config_defaults_failed;
goto exit;
}
- mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg );
+ mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg);
#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
- mbedtls_ssl_conf_psk( &conf, psk, sizeof( psk ),
- (const unsigned char *) psk_id, sizeof( psk_id ) - 1 );
+ mbedtls_ssl_conf_psk(&conf, psk, sizeof(psk),
+ (const unsigned char *) psk_id, sizeof(psk_id) - 1);
#endif
#if defined(MBEDTLS_X509_CRT_PARSE_C)
- if( mbedtls_x509_crt_parse_der( &ca, ca_cert, sizeof( ca_cert ) ) != 0 )
- {
+ if (mbedtls_x509_crt_parse_der(&ca, ca_cert, sizeof(ca_cert)) != 0) {
ret = x509_crt_parse_failed;
goto exit;
}
- mbedtls_ssl_conf_ca_chain( &conf, &ca, NULL );
- mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_REQUIRED );
+ mbedtls_ssl_conf_ca_chain(&conf, &ca, NULL);
+ mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_REQUIRED);
#endif
- if( mbedtls_ssl_setup( &ssl, &conf ) != 0 )
- {
+ if (mbedtls_ssl_setup(&ssl, &conf) != 0) {
ret = ssl_setup_failed;
goto exit;
}
#if defined(MBEDTLS_X509_CRT_PARSE_C)
- if( mbedtls_ssl_set_hostname( &ssl, HOSTNAME ) != 0 )
- {
+ if (mbedtls_ssl_set_hostname(&ssl, HOSTNAME) != 0) {
ret = hostname_failed;
goto exit;
}
@@ -229,7 +223,7 @@
/*
* 1. Start the connection
*/
- memset( &addr, 0, sizeof( addr ) );
+ memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
ret = 1; /* for endianness detection */
@@ -237,23 +231,20 @@
addr.sin_addr.s_addr = *((char *) &ret) == ret ? ADDR_LE : ADDR_BE;
ret = 0;
- if( ( server_fd.fd = socket( AF_INET, SOCK_STREAM, 0 ) ) < 0 )
- {
+ if ((server_fd.fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
ret = socket_failed;
goto exit;
}
- if( connect( server_fd.fd,
- (const struct sockaddr *) &addr, sizeof( addr ) ) < 0 )
- {
+ if (connect(server_fd.fd,
+ (const struct sockaddr *) &addr, sizeof(addr)) < 0) {
ret = connect_failed;
goto exit;
}
- mbedtls_ssl_set_bio( &ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL );
+ mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL);
- if( mbedtls_ssl_handshake( &ssl ) != 0 )
- {
+ if (mbedtls_ssl_handshake(&ssl) != 0) {
ret = ssl_handshake_failed;
goto exit;
}
@@ -261,26 +252,25 @@
/*
* 2. Write the GET request and close the connection
*/
- if( mbedtls_ssl_write( &ssl, (const unsigned char *) GET_REQUEST,
- sizeof( GET_REQUEST ) - 1 ) <= 0 )
- {
+ if (mbedtls_ssl_write(&ssl, (const unsigned char *) GET_REQUEST,
+ sizeof(GET_REQUEST) - 1) <= 0) {
ret = ssl_write_failed;
goto exit;
}
- mbedtls_ssl_close_notify( &ssl );
+ mbedtls_ssl_close_notify(&ssl);
exit:
- mbedtls_net_free( &server_fd );
+ mbedtls_net_free(&server_fd);
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_ssl_free(&ssl);
+ mbedtls_ssl_config_free(&conf);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
#if defined(MBEDTLS_X509_CRT_PARSE_C)
- mbedtls_x509_crt_free( &ca );
+ mbedtls_x509_crt_free(&ca);
#endif
- mbedtls_exit( ret );
+ mbedtls_exit(ret);
}
#endif
diff --git a/programs/ssl/ssl_client1.c b/programs/ssl/ssl_client1.c
index 5025698..ea96a4d 100644
--- a/programs/ssl/ssl_client1.c
+++ b/programs/ssl/ssl_client1.c
@@ -26,14 +26,14 @@
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_PEM_PARSE_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_X509_CRT_PARSE_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C and/or "
- "MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_CLI_C and/or "
- "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C "
- "not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_CLI_C and/or "
+ "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
+ "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C "
+ "not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -54,17 +54,17 @@
#define DEBUG_LEVEL 1
-static void my_debug( void *ctx, int level,
- const char *file, int line,
- const char *str )
+static void my_debug(void *ctx, int level,
+ const char *file, int line,
+ const char *str)
{
((void) level);
- mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
- fflush( (FILE *) ctx );
+ mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str);
+ fflush((FILE *) ctx);
}
-int main( void )
+int main(void)
{
int ret = 1, len;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -80,220 +80,208 @@
mbedtls_x509_crt cacert;
#if defined(MBEDTLS_DEBUG_C)
- mbedtls_debug_set_threshold( DEBUG_LEVEL );
+ mbedtls_debug_set_threshold(DEBUG_LEVEL);
#endif
/*
* 0. Initialize the RNG and the session data
*/
- mbedtls_net_init( &server_fd );
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- mbedtls_x509_crt_init( &cacert );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_net_init(&server_fd);
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
+ mbedtls_x509_crt_init(&cacert);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- mbedtls_entropy_init( &entropy );
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret );
+ mbedtls_entropy_init(&entropy);
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 0. Initialize certificates
*/
- mbedtls_printf( " . Loading the CA root certificate ..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the CA root certificate ...");
+ fflush(stdout);
- ret = mbedtls_x509_crt_parse( &cacert, (const unsigned char *) mbedtls_test_cas_pem,
- mbedtls_test_cas_pem_len );
- if( ret < 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", (unsigned int) -ret );
+ ret = mbedtls_x509_crt_parse(&cacert, (const unsigned char *) mbedtls_test_cas_pem,
+ mbedtls_test_cas_pem_len);
+ if (ret < 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " ok (%d skipped)\n", ret );
+ mbedtls_printf(" ok (%d skipped)\n", ret);
/*
* 1. Start the connection
*/
- mbedtls_printf( " . Connecting to tcp/%s/%s...", SERVER_NAME, SERVER_PORT );
- fflush( stdout );
+ mbedtls_printf(" . Connecting to tcp/%s/%s...", SERVER_NAME, SERVER_PORT);
+ fflush(stdout);
- if( ( ret = mbedtls_net_connect( &server_fd, SERVER_NAME,
- SERVER_PORT, MBEDTLS_NET_PROTO_TCP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_connect returned %d\n\n", ret );
+ if ((ret = mbedtls_net_connect(&server_fd, SERVER_NAME,
+ SERVER_PORT, MBEDTLS_NET_PROTO_TCP)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_connect returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 2. Setup stuff
*/
- mbedtls_printf( " . Setting up the SSL/TLS structure..." );
- fflush( stdout );
+ mbedtls_printf(" . Setting up the SSL/TLS structure...");
+ fflush(stdout);
- if( ( ret = mbedtls_ssl_config_defaults( &conf,
- MBEDTLS_SSL_IS_CLIENT,
- MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_config_defaults(&conf,
+ MBEDTLS_SSL_IS_CLIENT,
+ MBEDTLS_SSL_TRANSPORT_STREAM,
+ MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/* OPTIONAL is not optimal for security,
* but makes interop easier in this simplified example */
- mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_OPTIONAL );
- mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL );
- mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg );
- mbedtls_ssl_conf_dbg( &conf, my_debug, stdout );
+ mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_OPTIONAL);
+ mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL);
+ mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg);
+ mbedtls_ssl_conf_dbg(&conf, my_debug, stdout);
- if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned %d\n\n", ret);
goto exit;
}
- if( ( ret = mbedtls_ssl_set_hostname( &ssl, SERVER_NAME ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_set_hostname(&ssl, SERVER_NAME)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret);
goto exit;
}
- mbedtls_ssl_set_bio( &ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL );
+ mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL);
/*
* 4. Handshake
*/
- mbedtls_printf( " . Performing the SSL/TLS handshake..." );
- fflush( stdout );
+ mbedtls_printf(" . Performing the SSL/TLS handshake...");
+ fflush(stdout);
- while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret );
+ while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 5. Verify the server certificate
*/
- mbedtls_printf( " . Verifying peer X.509 certificate..." );
+ mbedtls_printf(" . Verifying peer X.509 certificate...");
/* In real life, we probably want to bail out when ret != 0 */
- if( ( flags = mbedtls_ssl_get_verify_result( &ssl ) ) != 0 )
- {
+ if ((flags = mbedtls_ssl_get_verify_result(&ssl)) != 0) {
#if !defined(MBEDTLS_X509_REMOVE_INFO)
char vrfy_buf[512];
#endif
- mbedtls_printf( " failed\n" );
+ mbedtls_printf(" failed\n");
#if !defined(MBEDTLS_X509_REMOVE_INFO)
- mbedtls_x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ), " ! ", flags );
+ mbedtls_x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), " ! ", flags);
- mbedtls_printf( "%s\n", vrfy_buf );
+ mbedtls_printf("%s\n", vrfy_buf);
#endif
+ } else {
+ mbedtls_printf(" ok\n");
}
- else
- mbedtls_printf( " ok\n" );
/*
* 3. Write the GET request
*/
- mbedtls_printf( " > Write to server:" );
- fflush( stdout );
+ mbedtls_printf(" > Write to server:");
+ fflush(stdout);
- len = sprintf( (char *) buf, GET_REQUEST );
+ len = sprintf((char *) buf, GET_REQUEST);
- while( ( ret = mbedtls_ssl_write( &ssl, buf, len ) ) <= 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret );
+ while ((ret = mbedtls_ssl_write(&ssl, buf, len)) <= 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret);
goto exit;
}
}
len = ret;
- mbedtls_printf( " %d bytes written\n\n%s", len, (char *) buf );
+ mbedtls_printf(" %d bytes written\n\n%s", len, (char *) buf);
/*
* 7. Read the HTTP response
*/
- mbedtls_printf( " < Read from server:" );
- fflush( stdout );
+ mbedtls_printf(" < Read from server:");
+ fflush(stdout);
- do
- {
- len = sizeof( buf ) - 1;
- memset( buf, 0, sizeof( buf ) );
- ret = mbedtls_ssl_read( &ssl, buf, len );
+ do {
+ len = sizeof(buf) - 1;
+ memset(buf, 0, sizeof(buf));
+ ret = mbedtls_ssl_read(&ssl, buf, len);
- if( ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE )
+ if (ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE) {
continue;
+ }
- if( ret == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY )
- break;
-
- if( ret < 0 )
- {
- mbedtls_printf( "failed\n ! mbedtls_ssl_read returned %d\n\n", ret );
+ if (ret == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY) {
break;
}
- if( ret == 0 )
- {
- mbedtls_printf( "\n\nEOF\n\n" );
+ if (ret < 0) {
+ mbedtls_printf("failed\n ! mbedtls_ssl_read returned %d\n\n", ret);
+ break;
+ }
+
+ if (ret == 0) {
+ mbedtls_printf("\n\nEOF\n\n");
break;
}
len = ret;
- mbedtls_printf( " %d bytes read\n\n%s", len, (char *) buf );
- }
- while( 1 );
+ mbedtls_printf(" %d bytes read\n\n%s", len, (char *) buf);
+ } while (1);
- mbedtls_ssl_close_notify( &ssl );
+ mbedtls_ssl_close_notify(&ssl);
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
#ifdef MBEDTLS_ERROR_C
- if( exit_code != MBEDTLS_EXIT_SUCCESS )
- {
+ if (exit_code != MBEDTLS_EXIT_SUCCESS) {
char error_buf[100];
- mbedtls_strerror( ret, error_buf, 100 );
- mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf );
+ mbedtls_strerror(ret, error_buf, 100);
+ mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf);
}
#endif
- mbedtls_net_free( &server_fd );
+ mbedtls_net_free(&server_fd);
- mbedtls_x509_crt_free( &cacert );
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_x509_crt_free(&cacert);
+ mbedtls_ssl_free(&ssl);
+ mbedtls_ssl_config_free(&conf);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_SSL_TLS_C &&
MBEDTLS_SSL_CLI_C && MBEDTLS_NET_C && MBEDTLS_RSA_C &&
diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c
index 02ee7cf..8b0a825 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -26,16 +26,16 @@
#endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */
#if defined(MBEDTLS_SSL_TEST_IMPOSSIBLE)
-int main( void )
+int main(void)
{
- mbedtls_printf( MBEDTLS_SSL_TEST_IMPOSSIBLE );
- mbedtls_exit( 0 );
+ mbedtls_printf(MBEDTLS_SSL_TEST_IMPOSSIBLE);
+ mbedtls_exit(0);
}
#elif !defined(MBEDTLS_SSL_CLI_C)
-int main( void )
+int main(void)
{
- mbedtls_printf( "MBEDTLS_SSL_CLI_C not defined.\n" );
- mbedtls_exit( 0 );
+ mbedtls_printf("MBEDTLS_SSL_CLI_C not defined.\n");
+ mbedtls_exit(0);
}
#else /* !MBEDTLS_SSL_TEST_IMPOSSIBLE && MBEDTLS_SSL_CLI_C */
@@ -127,7 +127,7 @@
#define USAGE_CONTEXT_CRT_CB \
" context_crt_cb=%%d This determines whether the CRT verification callback is bound\n" \
" to the SSL configuration of the SSL context.\n" \
- " Possible values:\n"\
+ " Possible values:\n" \
" - 0 (default): Use CRT callback bound to configuration\n" \
" - 1: Use CRT callback bound to SSL context\n"
#else
@@ -144,8 +144,8 @@
" use \"none\" to skip loading any top-level CAs.\n" \
" crt_file=%%s Your own cert and chain (in bottom to top order, top may be omitted)\n" \
" default: \"\" (pre-loaded)\n" \
- " key_file=%%s default: \"\" (pre-loaded)\n"\
- " key_pwd=%%s Password for key specified by key_file argument\n"\
+ " key_file=%%s default: \"\" (pre-loaded)\n" \
+ " key_pwd=%%s Password for key specified by key_file argument\n" \
" default: none\n"
#else
#define USAGE_IO \
@@ -225,7 +225,7 @@
#if defined(MBEDTLS_SSL_DTLS_SRTP)
#define USAGE_SRTP \
" use_srtp=%%d default: 0 (disabled)\n" \
- " This cannot be used with eap_tls=1 or "\
+ " This cannot be used with eap_tls=1 or " \
" nss_keylog=1\n" \
" srtp_force_profile=%%d default: 0 (all enabled)\n" \
" available profiles:\n" \
@@ -343,7 +343,7 @@
" serialize=%%d default: 0 (do not serialize/deserialize)\n" \
" options: 1 (serialize)\n" \
" 2 (serialize with re-initialization)\n" \
- " context_file=%%s The file path to write a serialized connection\n"\
+ " context_file=%%s The file path to write a serialized connection\n" \
" in the form of base64 code (serialize option\n" \
" must be set)\n" \
" default: \"\" (do nothing)\n" \
@@ -387,21 +387,21 @@
" request_page=%%s default: \".\"\n" \
" request_size=%%d default: about 34 (basic request)\n" \
" (minimum: 0, max: " MAX_REQUEST_SIZE_STR ")\n" \
- " If 0, in the first exchange only an empty\n" \
- " application data message is sent followed by\n" \
- " a second non-empty message before attempting\n" \
- " to read a response from the server\n" \
- " debug_level=%%d default: 0 (disabled)\n" \
- " build_version=%%d default: none (disabled)\n" \
- " option: 1 (print build version only and stop)\n" \
- " nbio=%%d default: 0 (blocking I/O)\n" \
- " options: 1 (non-blocking), 2 (added delays)\n" \
- " event=%%d default: 0 (loop)\n" \
- " options: 1 (level-triggered, implies nbio=1),\n" \
- " read_timeout=%%d default: 0 ms (no timeout)\n" \
- " max_resend=%%d default: 0 (no resend on timeout)\n" \
- " skip_close_notify=%%d default: 0 (send close_notify)\n" \
- "\n" \
+ " If 0, in the first exchange only an empty\n" \
+ " application data message is sent followed by\n" \
+ " a second non-empty message before attempting\n" \
+ " to read a response from the server\n" \
+ " debug_level=%%d default: 0 (disabled)\n" \
+ " build_version=%%d default: none (disabled)\n" \
+ " option: 1 (print build version only and stop)\n" \
+ " nbio=%%d default: 0 (blocking I/O)\n" \
+ " options: 1 (non-blocking), 2 (added delays)\n" \
+ " event=%%d default: 0 (loop)\n" \
+ " options: 1 (level-triggered, implies nbio=1),\n" \
+ " read_timeout=%%d default: 0 ms (no timeout)\n" \
+ " max_resend=%%d default: 0 (no resend on timeout)\n" \
+ " skip_close_notify=%%d default: 0 (send close_notify)\n" \
+ "\n" \
USAGE_DTLS \
USAGE_CID \
USAGE_SRTP \
@@ -472,8 +472,7 @@
/*
* global options
*/
-struct options
-{
+struct options {
const char *server_name; /* hostname of the server (client only) */
const char *server_addr; /* address of the server (client only) */
const char *server_port; /* port on which the ssl service runs */
@@ -572,51 +571,53 @@
/*
* Enabled if debug_level > 1 in code below
*/
-static int my_verify( void *data, mbedtls_x509_crt *crt,
- int depth, uint32_t *flags )
+static int my_verify(void *data, mbedtls_x509_crt *crt,
+ int depth, uint32_t *flags)
{
char buf[1024];
((void) data);
- mbedtls_printf( "\nVerify requested for (Depth %d):\n", depth );
+ mbedtls_printf("\nVerify requested for (Depth %d):\n", depth);
#if !defined(MBEDTLS_X509_REMOVE_INFO)
- mbedtls_x509_crt_info( buf, sizeof( buf ) - 1, "", crt );
- if( depth == 0 )
- memcpy( peer_crt_info, buf, sizeof( buf ) );
+ mbedtls_x509_crt_info(buf, sizeof(buf) - 1, "", crt);
+ if (depth == 0) {
+ memcpy(peer_crt_info, buf, sizeof(buf));
+ }
- if( opt.debug_level == 0 )
- return( 0 );
+ if (opt.debug_level == 0) {
+ return 0;
+ }
- mbedtls_printf( "%s", buf );
+ mbedtls_printf("%s", buf);
#else
((void) crt);
((void) depth);
#endif
- if ( ( *flags ) == 0 )
- mbedtls_printf( " This certificate has no flags\n" );
- else
- {
- x509_crt_verify_info( buf, sizeof( buf ), " ! ", *flags );
- mbedtls_printf( "%s\n", buf );
+ if ((*flags) == 0) {
+ mbedtls_printf(" This certificate has no flags\n");
+ } else {
+ x509_crt_verify_info(buf, sizeof(buf), " ! ", *flags);
+ mbedtls_printf("%s\n", buf);
}
- return( 0 );
+ return 0;
}
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
-int report_cid_usage( mbedtls_ssl_context *ssl,
- const char *additional_description )
+int report_cid_usage(mbedtls_ssl_context *ssl,
+ const char *additional_description)
{
int ret;
- unsigned char peer_cid[ MBEDTLS_SSL_CID_OUT_LEN_MAX ];
+ unsigned char peer_cid[MBEDTLS_SSL_CID_OUT_LEN_MAX];
size_t peer_cid_len;
int cid_negotiated;
- if( opt.transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM )
- return( 0 );
+ if (opt.transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) {
+ return 0;
+ }
/* Check if the use of a CID has been negotiated,
* but don't ask for the CID value and length.
@@ -628,116 +629,104 @@
*
* An actual application, however, should use
* just one call to mbedtls_ssl_get_peer_cid(). */
- ret = mbedtls_ssl_get_peer_cid( ssl, &cid_negotiated,
- NULL, NULL );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n",
- (unsigned int) -ret );
- return( ret );
+ ret = mbedtls_ssl_get_peer_cid(ssl, &cid_negotiated,
+ NULL, NULL);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n",
+ (unsigned int) -ret);
+ return ret;
}
- if( cid_negotiated == MBEDTLS_SSL_CID_DISABLED )
- {
- if( opt.cid_enabled == MBEDTLS_SSL_CID_ENABLED )
- {
- mbedtls_printf( "(%s) Use of Connection ID was rejected by the server.\n",
- additional_description );
+ if (cid_negotiated == MBEDTLS_SSL_CID_DISABLED) {
+ if (opt.cid_enabled == MBEDTLS_SSL_CID_ENABLED) {
+ mbedtls_printf("(%s) Use of Connection ID was rejected by the server.\n",
+ additional_description);
}
- }
- else
- {
- size_t idx=0;
- mbedtls_printf( "(%s) Use of Connection ID has been negotiated.\n",
- additional_description );
+ } else {
+ size_t idx = 0;
+ mbedtls_printf("(%s) Use of Connection ID has been negotiated.\n",
+ additional_description);
/* Ask for just the length of the peer's CID. */
- ret = mbedtls_ssl_get_peer_cid( ssl, &cid_negotiated,
- NULL, &peer_cid_len );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n",
- (unsigned int) -ret );
- return( ret );
+ ret = mbedtls_ssl_get_peer_cid(ssl, &cid_negotiated,
+ NULL, &peer_cid_len);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n",
+ (unsigned int) -ret);
+ return ret;
}
/* Ask for just length + value of the peer's CID. */
- ret = mbedtls_ssl_get_peer_cid( ssl, &cid_negotiated,
- peer_cid, &peer_cid_len );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n",
- (unsigned int) -ret );
- return( ret );
+ ret = mbedtls_ssl_get_peer_cid(ssl, &cid_negotiated,
+ peer_cid, &peer_cid_len);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n",
+ (unsigned int) -ret);
+ return ret;
}
- mbedtls_printf( "(%s) Peer CID (length %u Bytes): ",
- additional_description,
- (unsigned) peer_cid_len );
- while( idx < peer_cid_len )
- {
- mbedtls_printf( "%02x ", peer_cid[ idx ] );
+ mbedtls_printf("(%s) Peer CID (length %u Bytes): ",
+ additional_description,
+ (unsigned) peer_cid_len);
+ while (idx < peer_cid_len) {
+ mbedtls_printf("%02x ", peer_cid[idx]);
idx++;
}
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
}
- return( 0 );
+ return 0;
}
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
-static int ssl_save_session_serialize( mbedtls_ssl_context *ssl,
- unsigned char **session_data,
- size_t *session_data_len )
+static int ssl_save_session_serialize(mbedtls_ssl_context *ssl,
+ unsigned char **session_data,
+ size_t *session_data_len)
{
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
mbedtls_ssl_session exported_session;
/* free any previously saved data */
- if( *session_data != NULL )
- {
- mbedtls_platform_zeroize( *session_data, *session_data_len );
- mbedtls_free( *session_data );
+ if (*session_data != NULL) {
+ mbedtls_platform_zeroize(*session_data, *session_data_len);
+ mbedtls_free(*session_data);
*session_data = NULL;
*session_data_len = 0;
}
- mbedtls_ssl_session_init( &exported_session );
- ret = mbedtls_ssl_get_session( ssl, &exported_session );
- if( ret != 0 )
- {
+ mbedtls_ssl_session_init(&exported_session);
+ ret = mbedtls_ssl_get_session(ssl, &exported_session);
+ if (ret != 0) {
mbedtls_printf(
"failed\n ! mbedtls_ssl_get_session() returned -%#02x\n",
- (unsigned) -ret );
+ (unsigned) -ret);
goto exit;
}
/* get size of the buffer needed */
- mbedtls_ssl_session_save( &exported_session, NULL, 0, session_data_len );
- *session_data = mbedtls_calloc( 1, *session_data_len );
- if( *session_data == NULL )
- {
- mbedtls_printf( " failed\n ! alloc %u bytes for session data\n",
- (unsigned) *session_data_len );
+ mbedtls_ssl_session_save(&exported_session, NULL, 0, session_data_len);
+ *session_data = mbedtls_calloc(1, *session_data_len);
+ if (*session_data == NULL) {
+ mbedtls_printf(" failed\n ! alloc %u bytes for session data\n",
+ (unsigned) *session_data_len);
ret = MBEDTLS_ERR_SSL_ALLOC_FAILED;
goto exit;
}
/* actually save session data */
- if( ( ret = mbedtls_ssl_session_save( &exported_session,
- *session_data, *session_data_len,
- session_data_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_session_saved returned -0x%04x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_session_save(&exported_session,
+ *session_data, *session_data_len,
+ session_data_len)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_session_saved returned -0x%04x\n\n",
+ (unsigned int) -ret);
goto exit;
}
exit:
- mbedtls_ssl_session_free( &exported_session );
- return( ret );
+ mbedtls_ssl_session_free(&exported_session);
+ return ret;
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 0, len, tail_len, i, written, frags, retry_left;
int query_config_ret = 0;
@@ -776,7 +765,7 @@
#endif
#if defined(MBEDTLS_SSL_DTLS_SRTP)
unsigned char mki[MBEDTLS_TLS_SRTP_MAX_MKI_LENGTH];
- size_t mki_len=0;
+ size_t mki_len = 0;
#endif
const char *pers = "ssl_client2";
@@ -819,12 +808,12 @@
#endif
unsigned char eap_tls_keymaterial[16];
unsigned char eap_tls_iv[8];
- const char* eap_tls_label = "client EAP encryption";
+ const char *eap_tls_label = "client EAP encryption";
eap_tls_keys eap_tls_keying;
-#if defined( MBEDTLS_SSL_DTLS_SRTP )
+#if defined(MBEDTLS_SSL_DTLS_SRTP)
/*! master keys and master salt for SRTP generated during handshake */
unsigned char dtls_srtp_key_material[MBEDTLS_TLS_SRTP_MAX_KEY_MATERIAL_LENGTH];
- const char* dtls_srtp_label = "EXTRACTOR-dtls_srtp";
+ const char *dtls_srtp_label = "EXTRACTOR-dtls_srtp";
dtls_srtp_keys dtls_srtp_keying;
const mbedtls_ssl_srtp_profile default_profiles[] = {
MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80,
@@ -840,63 +829,62 @@
#endif /* MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
- mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof(alloc_buf) );
+ mbedtls_memory_buffer_alloc_init(alloc_buf, sizeof(alloc_buf));
#endif
#if defined(MBEDTLS_TEST_HOOKS)
- test_hooks_init( );
+ test_hooks_init();
#endif /* MBEDTLS_TEST_HOOKS */
/*
* Make sure memory references are valid.
*/
- mbedtls_net_init( &server_fd );
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- memset( &saved_session, 0, sizeof( mbedtls_ssl_session ) );
- rng_init( &rng );
+ mbedtls_net_init(&server_fd);
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
+ memset(&saved_session, 0, sizeof(mbedtls_ssl_session));
+ rng_init(&rng);
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- mbedtls_x509_crt_init( &cacert );
- mbedtls_x509_crt_init( &clicert );
- mbedtls_pk_init( &pkey );
+ mbedtls_x509_crt_init(&cacert);
+ mbedtls_x509_crt_init(&clicert);
+ mbedtls_pk_init(&pkey);
#endif
#if defined(MBEDTLS_SSL_ALPN)
- memset( (void * ) alpn_list, 0, sizeof( alpn_list ) );
+ memset((void *) alpn_list, 0, sizeof(alpn_list));
#endif
#if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)
status = psa_crypto_init();
- if( status != PSA_SUCCESS )
- {
- mbedtls_fprintf( stderr, "Failed to initialize PSA Crypto implementation: %d\n",
- (int) status );
+ if (status != PSA_SUCCESS) {
+ mbedtls_fprintf(stderr, "Failed to initialize PSA Crypto implementation: %d\n",
+ (int) status);
ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED;
goto exit;
}
#endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */
#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
- mbedtls_test_enable_insecure_external_rng( );
+ mbedtls_test_enable_insecure_external_rng();
#endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */
- if( argc == 0 )
- {
- usage:
- if( ret == 0 )
+ if (argc == 0) {
+usage:
+ if (ret == 0) {
ret = 1;
+ }
- mbedtls_printf( USAGE1 );
- mbedtls_printf( USAGE2 );
- mbedtls_printf( USAGE3 );
- mbedtls_printf( USAGE4 );
+ mbedtls_printf(USAGE1);
+ mbedtls_printf(USAGE2);
+ mbedtls_printf(USAGE3);
+ mbedtls_printf(USAGE4);
list = mbedtls_ssl_list_ciphersuites();
- while( *list )
- {
- mbedtls_printf(" %-42s", mbedtls_ssl_get_ciphersuite_name( *list ) );
+ while (*list) {
+ mbedtls_printf(" %-42s", mbedtls_ssl_get_ciphersuite_name(*list));
list++;
- if( !*list )
+ if (!*list) {
break;
- mbedtls_printf(" %s\n", mbedtls_ssl_get_ciphersuite_name( *list ) );
+ }
+ mbedtls_printf(" %s\n", mbedtls_ssl_get_ciphersuite_name(*list));
list++;
}
mbedtls_printf("\n");
@@ -937,7 +925,7 @@
opt.ecjpake_pw_opaque = DFL_ECJPAKE_PW_OPAQUE;
#endif
opt.ec_max_ops = DFL_EC_MAX_OPS;
- opt.force_ciphersuite[0]= DFL_FORCE_CIPHER;
+ opt.force_ciphersuite[0] = DFL_FORCE_CIPHER;
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
opt.tls13_kex_modes = DFL_TLS1_3_KEX_MODES;
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
@@ -987,157 +975,142 @@
opt.key_opaque_alg1 = DFL_KEY_OPAQUE_ALG;
opt.key_opaque_alg2 = DFL_KEY_OPAQUE_ALG;
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
+ if ((q = strchr(p, '=')) == NULL) {
goto usage;
+ }
*q++ = '\0';
- if( strcmp( p, "server_name" ) == 0 )
+ if (strcmp(p, "server_name") == 0) {
opt.server_name = q;
- else if( strcmp( p, "server_addr" ) == 0 )
+ } else if (strcmp(p, "server_addr") == 0) {
opt.server_addr = q;
- else if( strcmp( p, "server_port" ) == 0 )
+ } else if (strcmp(p, "server_port") == 0) {
opt.server_port = q;
- else if( strcmp( p, "dtls" ) == 0 )
- {
- int t = atoi( q );
- if( t == 0 )
+ } else if (strcmp(p, "dtls") == 0) {
+ int t = atoi(q);
+ if (t == 0) {
opt.transport = MBEDTLS_SSL_TRANSPORT_STREAM;
- else if( t == 1 )
+ } else if (t == 1) {
opt.transport = MBEDTLS_SSL_TRANSPORT_DATAGRAM;
- else
+ } else {
goto usage;
- }
- else if( strcmp( p, "debug_level" ) == 0 )
- {
- opt.debug_level = atoi( q );
- if( opt.debug_level < 0 || opt.debug_level > 65535 )
+ }
+ } else if (strcmp(p, "debug_level") == 0) {
+ opt.debug_level = atoi(q);
+ if (opt.debug_level < 0 || opt.debug_level > 65535) {
goto usage;
- }
- else if( strcmp( p, "build_version" ) == 0 )
- {
- if( strcmp( q, "1" ) == 0 )
- {
- mbedtls_printf( "build version: %s (build %d)\n",
- MBEDTLS_VERSION_STRING_FULL,
- MBEDTLS_VERSION_NUMBER );
+ }
+ } else if (strcmp(p, "build_version") == 0) {
+ if (strcmp(q, "1") == 0) {
+ mbedtls_printf("build version: %s (build %d)\n",
+ MBEDTLS_VERSION_STRING_FULL,
+ MBEDTLS_VERSION_NUMBER);
goto exit;
}
- }
- else if( strcmp( p, "context_crt_cb" ) == 0 )
- {
- opt.context_crt_cb = atoi( q );
- if( opt.context_crt_cb != 0 && opt.context_crt_cb != 1 )
+ } else if (strcmp(p, "context_crt_cb") == 0) {
+ opt.context_crt_cb = atoi(q);
+ if (opt.context_crt_cb != 0 && opt.context_crt_cb != 1) {
goto usage;
- }
- else if( strcmp( p, "nbio" ) == 0 )
- {
- opt.nbio = atoi( q );
- if( opt.nbio < 0 || opt.nbio > 2 )
+ }
+ } else if (strcmp(p, "nbio") == 0) {
+ opt.nbio = atoi(q);
+ if (opt.nbio < 0 || opt.nbio > 2) {
goto usage;
- }
- else if( strcmp( p, "event" ) == 0 )
- {
- opt.event = atoi( q );
- if( opt.event < 0 || opt.event > 2 )
+ }
+ } else if (strcmp(p, "event") == 0) {
+ opt.event = atoi(q);
+ if (opt.event < 0 || opt.event > 2) {
goto usage;
- }
- else if( strcmp( p, "read_timeout" ) == 0 )
- opt.read_timeout = atoi( q );
- else if( strcmp( p, "max_resend" ) == 0 )
- {
- opt.max_resend = atoi( q );
- if( opt.max_resend < 0 )
+ }
+ } else if (strcmp(p, "read_timeout") == 0) {
+ opt.read_timeout = atoi(q);
+ } else if (strcmp(p, "max_resend") == 0) {
+ opt.max_resend = atoi(q);
+ if (opt.max_resend < 0) {
goto usage;
- }
- else if( strcmp( p, "request_page" ) == 0 )
+ }
+ } else if (strcmp(p, "request_page") == 0) {
opt.request_page = q;
- else if( strcmp( p, "request_size" ) == 0 )
- {
- opt.request_size = atoi( q );
- if( opt.request_size < 0 ||
- opt.request_size > MAX_REQUEST_SIZE )
+ } else if (strcmp(p, "request_size") == 0) {
+ opt.request_size = atoi(q);
+ if (opt.request_size < 0 ||
+ opt.request_size > MAX_REQUEST_SIZE) {
goto usage;
- }
- else if( strcmp( p, "ca_file" ) == 0 )
+ }
+ } else if (strcmp(p, "ca_file") == 0) {
opt.ca_file = q;
- else if( strcmp( p, "ca_path" ) == 0 )
+ } else if (strcmp(p, "ca_path") == 0) {
opt.ca_path = q;
- else if( strcmp( p, "crt_file" ) == 0 )
+ } else if (strcmp(p, "crt_file") == 0) {
opt.crt_file = q;
- else if( strcmp( p, "key_file" ) == 0 )
+ } else if (strcmp(p, "key_file") == 0) {
opt.key_file = q;
- else if( strcmp( p, "key_pwd" ) == 0 )
+ } else if (strcmp(p, "key_pwd") == 0) {
opt.key_pwd = q;
+ }
#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- else if( strcmp( p, "key_opaque" ) == 0 )
- opt.key_opaque = atoi( q );
+ else if (strcmp(p, "key_opaque") == 0) {
+ opt.key_opaque = atoi(q);
+ }
#endif
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
- else if( strcmp( p, "cid" ) == 0 )
- {
- opt.cid_enabled = atoi( q );
- if( opt.cid_enabled != 0 && opt.cid_enabled != 1 )
+ else if (strcmp(p, "cid") == 0) {
+ opt.cid_enabled = atoi(q);
+ if (opt.cid_enabled != 0 && opt.cid_enabled != 1) {
goto usage;
- }
- else if( strcmp( p, "cid_renego" ) == 0 )
- {
- opt.cid_enabled_renego = atoi( q );
- if( opt.cid_enabled_renego != 0 && opt.cid_enabled_renego != 1 )
+ }
+ } else if (strcmp(p, "cid_renego") == 0) {
+ opt.cid_enabled_renego = atoi(q);
+ if (opt.cid_enabled_renego != 0 && opt.cid_enabled_renego != 1) {
goto usage;
- }
- else if( strcmp( p, "cid_val" ) == 0 )
- {
+ }
+ } else if (strcmp(p, "cid_val") == 0) {
opt.cid_val = q;
- }
- else if( strcmp( p, "cid_val_renego" ) == 0 )
- {
+ } else if (strcmp(p, "cid_val_renego") == 0) {
opt.cid_val_renego = q;
}
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
- else if( strcmp( p, "psk" ) == 0 )
+ else if (strcmp(p, "psk") == 0) {
opt.psk = q;
+ }
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- else if( strcmp( p, "psk_opaque" ) == 0 )
- opt.psk_opaque = atoi( q );
+ else if (strcmp(p, "psk_opaque") == 0) {
+ opt.psk_opaque = atoi(q);
+ }
#endif
#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK)
- else if( strcmp( p, "ca_callback" ) == 0)
- opt.ca_callback = atoi( q );
+ else if (strcmp(p, "ca_callback") == 0) {
+ opt.ca_callback = atoi(q);
+ }
#endif
- else if( strcmp( p, "psk_identity" ) == 0 )
+ else if (strcmp(p, "psk_identity") == 0) {
opt.psk_identity = q;
- else if( strcmp( p, "ecjpake_pw" ) == 0 )
+ } else if (strcmp(p, "ecjpake_pw") == 0) {
opt.ecjpake_pw = q;
+ }
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- else if( strcmp( p, "ecjpake_pw_opaque" ) == 0 )
- opt.ecjpake_pw_opaque = atoi( q );
+ else if (strcmp(p, "ecjpake_pw_opaque") == 0) {
+ opt.ecjpake_pw_opaque = atoi(q);
+ }
#endif
- else if( strcmp( p, "ec_max_ops" ) == 0 )
- opt.ec_max_ops = atoi( q );
- else if( strcmp( p, "force_ciphersuite" ) == 0 )
- {
- opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id( q );
+ else if (strcmp(p, "ec_max_ops") == 0) {
+ opt.ec_max_ops = atoi(q);
+ } else if (strcmp(p, "force_ciphersuite") == 0) {
+ opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id(q);
- if( opt.force_ciphersuite[0] == 0 )
- {
+ if (opt.force_ciphersuite[0] == 0) {
ret = 2;
goto usage;
}
opt.force_ciphersuite[1] = 0;
- }
- else if( strcmp( p, "renegotiation" ) == 0 )
- {
- opt.renegotiation = (atoi( q )) ?
- MBEDTLS_SSL_RENEGOTIATION_ENABLED :
- MBEDTLS_SSL_RENEGOTIATION_DISABLED;
- }
- else if( strcmp( p, "allow_legacy" ) == 0 )
- {
- switch( atoi( q ) )
- {
+ } else if (strcmp(p, "renegotiation") == 0) {
+ opt.renegotiation = (atoi(q)) ?
+ MBEDTLS_SSL_RENEGOTIATION_ENABLED :
+ MBEDTLS_SSL_RENEGOTIATION_DISABLED;
+ } else if (strcmp(p, "allow_legacy") == 0) {
+ switch (atoi(q)) {
case -1:
opt.allow_legacy = MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE;
break;
@@ -1149,59 +1122,47 @@
break;
default: goto usage;
}
- }
- else if( strcmp( p, "renegotiate" ) == 0 )
- {
- opt.renegotiate = atoi( q );
- if( opt.renegotiate < 0 || opt.renegotiate > 1 )
+ } else if (strcmp(p, "renegotiate") == 0) {
+ opt.renegotiate = atoi(q);
+ if (opt.renegotiate < 0 || opt.renegotiate > 1) {
goto usage;
- }
- else if( strcmp( p, "exchanges" ) == 0 )
- {
- opt.exchanges = atoi( q );
- if( opt.exchanges < 1 )
+ }
+ } else if (strcmp(p, "exchanges") == 0) {
+ opt.exchanges = atoi(q);
+ if (opt.exchanges < 1) {
goto usage;
- }
- else if( strcmp( p, "reconnect" ) == 0 )
- {
- opt.reconnect = atoi( q );
- if( opt.reconnect < 0 || opt.reconnect > 2 )
+ }
+ } else if (strcmp(p, "reconnect") == 0) {
+ opt.reconnect = atoi(q);
+ if (opt.reconnect < 0 || opt.reconnect > 2) {
goto usage;
- }
- else if( strcmp( p, "reco_server_name" ) == 0 )
+ }
+ } else if (strcmp(p, "reco_server_name") == 0) {
opt.reco_server_name = q;
- else if( strcmp( p, "reco_delay" ) == 0 )
- {
- opt.reco_delay = atoi( q );
- if( opt.reco_delay < 0 )
+ } else if (strcmp(p, "reco_delay") == 0) {
+ opt.reco_delay = atoi(q);
+ if (opt.reco_delay < 0) {
goto usage;
- }
- else if( strcmp( p, "reco_mode" ) == 0 )
- {
- opt.reco_mode = atoi( q );
- if( opt.reco_mode < 0 )
+ }
+ } else if (strcmp(p, "reco_mode") == 0) {
+ opt.reco_mode = atoi(q);
+ if (opt.reco_mode < 0) {
goto usage;
- }
- else if( strcmp( p, "reconnect_hard" ) == 0 )
- {
- opt.reconnect_hard = atoi( q );
- if( opt.reconnect_hard < 0 || opt.reconnect_hard > 1 )
+ }
+ } else if (strcmp(p, "reconnect_hard") == 0) {
+ opt.reconnect_hard = atoi(q);
+ if (opt.reconnect_hard < 0 || opt.reconnect_hard > 1) {
goto usage;
- }
- else if( strcmp( p, "tickets" ) == 0 )
- {
- opt.tickets = atoi( q );
- if( opt.tickets < 0 )
+ }
+ } else if (strcmp(p, "tickets") == 0) {
+ opt.tickets = atoi(q);
+ if (opt.tickets < 0) {
goto usage;
- }
- else if( strcmp( p, "alpn" ) == 0 )
- {
+ }
+ } else if (strcmp(p, "alpn") == 0) {
opt.alpn_string = q;
- }
- else if( strcmp( p, "extended_ms" ) == 0 )
- {
- switch( atoi( q ) )
- {
+ } else if (strcmp(p, "extended_ms") == 0) {
+ switch (atoi(q)) {
case 0:
opt.extended_ms = MBEDTLS_SSL_EXTENDED_MS_DISABLED;
break;
@@ -1210,17 +1171,16 @@
break;
default: goto usage;
}
- }
- else if( strcmp( p, "curves" ) == 0 )
+ } else if (strcmp(p, "curves") == 0) {
opt.curves = q;
+ }
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- else if( strcmp( p, "sig_algs" ) == 0 )
+ else if (strcmp(p, "sig_algs") == 0) {
opt.sig_algs = q;
+ }
#endif
- else if( strcmp( p, "etm" ) == 0 )
- {
- switch( atoi( q ) )
- {
+ else if (strcmp(p, "etm") == 0) {
+ switch (atoi(q)) {
case 0: opt.etm = MBEDTLS_SSL_ETM_DISABLED; break;
case 1: opt.etm = MBEDTLS_SSL_ETM_ENABLED; break;
default: goto usage;
@@ -1229,10 +1189,8 @@
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
#if defined(MBEDTLS_SSL_EARLY_DATA)
- else if( strcmp( p, "early_data" ) == 0 )
- {
- switch( atoi( q ) )
- {
+ else if (strcmp(p, "early_data") == 0) {
+ switch (atoi(q)) {
case 0:
opt.early_data = MBEDTLS_SSL_EARLY_DATA_DISABLED;
break;
@@ -1244,390 +1202,337 @@
}
#endif /* MBEDTLS_SSL_EARLY_DATA */
- else if( strcmp( p, "tls13_kex_modes" ) == 0 )
- {
- if( strcmp( q, "psk" ) == 0 )
+ else if (strcmp(p, "tls13_kex_modes") == 0) {
+ if (strcmp(q, "psk") == 0) {
opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK;
- else if( strcmp(q, "psk_ephemeral" ) == 0 )
+ } else if (strcmp(q, "psk_ephemeral") == 0) {
opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL;
- else if( strcmp(q, "ephemeral" ) == 0 )
+ } else if (strcmp(q, "ephemeral") == 0) {
opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL;
- else if( strcmp(q, "ephemeral_all" ) == 0 )
+ } else if (strcmp(q, "ephemeral_all") == 0) {
opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL;
- else if( strcmp( q, "psk_all" ) == 0 )
+ } else if (strcmp(q, "psk_all") == 0) {
opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL;
- else if( strcmp( q, "all" ) == 0 )
+ } else if (strcmp(q, "all") == 0) {
opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL;
- else goto usage;
+ } else {
+ goto usage;
+ }
}
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
- else if( strcmp( p, "min_version" ) == 0 )
- {
- if( strcmp( q, "tls12" ) == 0 ||
- strcmp( q, "dtls12" ) == 0 )
+ else if (strcmp(p, "min_version") == 0) {
+ if (strcmp(q, "tls12") == 0 ||
+ strcmp(q, "dtls12") == 0) {
opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2;
+ }
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
- else if( strcmp( q, "tls13" ) == 0 )
+ else if (strcmp(q, "tls13") == 0) {
opt.min_version = MBEDTLS_SSL_VERSION_TLS1_3;
+ }
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
- else
+ else {
goto usage;
- }
- else if( strcmp( p, "max_version" ) == 0 )
- {
- if( strcmp( q, "tls12" ) == 0 ||
- strcmp( q, "dtls12" ) == 0 )
+ }
+ } else if (strcmp(p, "max_version") == 0) {
+ if (strcmp(q, "tls12") == 0 ||
+ strcmp(q, "dtls12") == 0) {
opt.max_version = MBEDTLS_SSL_VERSION_TLS1_2;
+ }
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
- else if( strcmp( q, "tls13" ) == 0 )
+ else if (strcmp(q, "tls13") == 0) {
opt.max_version = MBEDTLS_SSL_VERSION_TLS1_3;
+ }
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
- else
+ else {
goto usage;
- }
- else if( strcmp( p, "allow_sha1" ) == 0 )
- {
- switch( atoi( q ) )
- {
+ }
+ } else if (strcmp(p, "allow_sha1") == 0) {
+ switch (atoi(q)) {
case 0: opt.allow_sha1 = 0; break;
case 1: opt.allow_sha1 = 1; break;
default: goto usage;
}
- }
- else if( strcmp( p, "force_version" ) == 0 )
- {
- if( strcmp( q, "tls12" ) == 0 )
- {
+ } else if (strcmp(p, "force_version") == 0) {
+ if (strcmp(q, "tls12") == 0) {
opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2;
opt.max_version = MBEDTLS_SSL_VERSION_TLS1_2;
- }
- else if( strcmp( q, "dtls12" ) == 0 )
- {
+ } else if (strcmp(q, "dtls12") == 0) {
opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2;
opt.max_version = MBEDTLS_SSL_VERSION_TLS1_2;
opt.transport = MBEDTLS_SSL_TRANSPORT_DATAGRAM;
}
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
- else if( strcmp( q, "tls13" ) == 0 )
- {
+ else if (strcmp(q, "tls13") == 0) {
opt.min_version = MBEDTLS_SSL_VERSION_TLS1_3;
opt.max_version = MBEDTLS_SSL_VERSION_TLS1_3;
}
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
- else
+ else {
goto usage;
- }
- else if( strcmp( p, "auth_mode" ) == 0 )
- {
- if( strcmp( q, "none" ) == 0 )
+ }
+ } else if (strcmp(p, "auth_mode") == 0) {
+ if (strcmp(q, "none") == 0) {
opt.auth_mode = MBEDTLS_SSL_VERIFY_NONE;
- else if( strcmp( q, "optional" ) == 0 )
+ } else if (strcmp(q, "optional") == 0) {
opt.auth_mode = MBEDTLS_SSL_VERIFY_OPTIONAL;
- else if( strcmp( q, "required" ) == 0 )
+ } else if (strcmp(q, "required") == 0) {
opt.auth_mode = MBEDTLS_SSL_VERIFY_REQUIRED;
- else
+ } else {
goto usage;
- }
- else if( strcmp( p, "max_frag_len" ) == 0 )
- {
- if( strcmp( q, "512" ) == 0 )
+ }
+ } else if (strcmp(p, "max_frag_len") == 0) {
+ if (strcmp(q, "512") == 0) {
opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_512;
- else if( strcmp( q, "1024" ) == 0 )
+ } else if (strcmp(q, "1024") == 0) {
opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_1024;
- else if( strcmp( q, "2048" ) == 0 )
+ } else if (strcmp(q, "2048") == 0) {
opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_2048;
- else if( strcmp( q, "4096" ) == 0 )
+ } else if (strcmp(q, "4096") == 0) {
opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_4096;
- else
+ } else {
goto usage;
- }
- else if( strcmp( p, "trunc_hmac" ) == 0 )
- {
- switch( atoi( q ) )
- {
+ }
+ } else if (strcmp(p, "trunc_hmac") == 0) {
+ switch (atoi(q)) {
case 0: opt.trunc_hmac = MBEDTLS_SSL_TRUNC_HMAC_DISABLED; break;
case 1: opt.trunc_hmac = MBEDTLS_SSL_TRUNC_HMAC_ENABLED; break;
default: goto usage;
}
- }
- else if( strcmp( p, "hs_timeout" ) == 0 )
- {
- if( ( p = strchr( q, '-' ) ) == NULL )
- goto usage;
- *p++ = '\0';
- opt.hs_to_min = atoi( q );
- opt.hs_to_max = atoi( p );
- if( opt.hs_to_min == 0 || opt.hs_to_max < opt.hs_to_min )
- goto usage;
- }
- else if( strcmp( p, "mtu" ) == 0 )
- {
- opt.dtls_mtu = atoi( q );
- if( opt.dtls_mtu < 0 )
- goto usage;
- }
- else if( strcmp( p, "dgram_packing" ) == 0 )
- {
- opt.dgram_packing = atoi( q );
- if( opt.dgram_packing != 0 &&
- opt.dgram_packing != 1 )
- {
+ } else if (strcmp(p, "hs_timeout") == 0) {
+ if ((p = strchr(q, '-')) == NULL) {
goto usage;
}
- }
- else if( strcmp( p, "recsplit" ) == 0 )
- {
- opt.recsplit = atoi( q );
- if( opt.recsplit < 0 || opt.recsplit > 1 )
+ *p++ = '\0';
+ opt.hs_to_min = atoi(q);
+ opt.hs_to_max = atoi(p);
+ if (opt.hs_to_min == 0 || opt.hs_to_max < opt.hs_to_min) {
goto usage;
- }
- else if( strcmp( p, "dhmlen" ) == 0 )
- {
- opt.dhmlen = atoi( q );
- if( opt.dhmlen < 0 )
+ }
+ } else if (strcmp(p, "mtu") == 0) {
+ opt.dtls_mtu = atoi(q);
+ if (opt.dtls_mtu < 0) {
goto usage;
- }
- else if( strcmp( p, "query_config" ) == 0 )
- {
+ }
+ } else if (strcmp(p, "dgram_packing") == 0) {
+ opt.dgram_packing = atoi(q);
+ if (opt.dgram_packing != 0 &&
+ opt.dgram_packing != 1) {
+ goto usage;
+ }
+ } else if (strcmp(p, "recsplit") == 0) {
+ opt.recsplit = atoi(q);
+ if (opt.recsplit < 0 || opt.recsplit > 1) {
+ goto usage;
+ }
+ } else if (strcmp(p, "dhmlen") == 0) {
+ opt.dhmlen = atoi(q);
+ if (opt.dhmlen < 0) {
+ goto usage;
+ }
+ } else if (strcmp(p, "query_config") == 0) {
opt.query_config_mode = 1;
- query_config_ret = query_config( q );
+ query_config_ret = query_config(q);
goto exit;
- }
- else if( strcmp( p, "serialize") == 0 )
- {
- opt.serialize = atoi( q );
- if( opt.serialize < 0 || opt.serialize > 2)
+ } else if (strcmp(p, "serialize") == 0) {
+ opt.serialize = atoi(q);
+ if (opt.serialize < 0 || opt.serialize > 2) {
goto usage;
- }
- else if( strcmp( p, "context_file") == 0 )
- {
+ }
+ } else if (strcmp(p, "context_file") == 0) {
opt.context_file = q;
- }
- else if( strcmp( p, "eap_tls" ) == 0 )
- {
- opt.eap_tls = atoi( q );
- if( opt.eap_tls < 0 || opt.eap_tls > 1 )
+ } else if (strcmp(p, "eap_tls") == 0) {
+ opt.eap_tls = atoi(q);
+ if (opt.eap_tls < 0 || opt.eap_tls > 1) {
goto usage;
- }
- else if( strcmp( p, "reproducible" ) == 0 )
- {
+ }
+ } else if (strcmp(p, "reproducible") == 0) {
opt.reproducible = 1;
- }
- else if( strcmp( p, "nss_keylog" ) == 0 )
- {
- opt.nss_keylog = atoi( q );
- if( opt.nss_keylog < 0 || opt.nss_keylog > 1 )
+ } else if (strcmp(p, "nss_keylog") == 0) {
+ opt.nss_keylog = atoi(q);
+ if (opt.nss_keylog < 0 || opt.nss_keylog > 1) {
goto usage;
- }
- else if( strcmp( p, "nss_keylog_file" ) == 0 )
- {
+ }
+ } else if (strcmp(p, "nss_keylog_file") == 0) {
opt.nss_keylog_file = q;
- }
- else if( strcmp( p, "skip_close_notify" ) == 0 )
- {
- opt.skip_close_notify = atoi( q );
- if( opt.skip_close_notify < 0 || opt.skip_close_notify > 1 )
+ } else if (strcmp(p, "skip_close_notify") == 0) {
+ opt.skip_close_notify = atoi(q);
+ if (opt.skip_close_notify < 0 || opt.skip_close_notify > 1) {
goto usage;
- }
- else if( strcmp( p, "use_srtp" ) == 0 )
- {
- opt.use_srtp = atoi ( q );
- }
- else if( strcmp( p, "srtp_force_profile" ) == 0 )
- {
- opt.force_srtp_profile = atoi( q );
- }
- else if( strcmp( p, "mki" ) == 0 )
- {
+ }
+ } else if (strcmp(p, "use_srtp") == 0) {
+ opt.use_srtp = atoi(q);
+ } else if (strcmp(p, "srtp_force_profile") == 0) {
+ opt.force_srtp_profile = atoi(q);
+ } else if (strcmp(p, "mki") == 0) {
opt.mki = q;
- }
- else if( strcmp( p, "key_opaque_algs" ) == 0 )
- {
- if( key_opaque_alg_parse( q, &opt.key_opaque_alg1,
- &opt.key_opaque_alg2 ) != 0 )
+ } else if (strcmp(p, "key_opaque_algs") == 0) {
+ if (key_opaque_alg_parse(q, &opt.key_opaque_alg1,
+ &opt.key_opaque_alg2) != 0) {
goto usage;
- }
- else
+ }
+ } else {
goto usage;
+ }
}
- if( opt.nss_keylog != 0 && opt.eap_tls != 0 )
- {
- mbedtls_printf( "Error: eap_tls and nss_keylog options cannot be used together.\n" );
+ if (opt.nss_keylog != 0 && opt.eap_tls != 0) {
+ mbedtls_printf("Error: eap_tls and nss_keylog options cannot be used together.\n");
goto usage;
}
/* Event-driven IO is incompatible with the above custom
* receive and send functions, as the polling builds on
* refers to the underlying net_context. */
- if( opt.event == 1 && opt.nbio != 1 )
- {
- mbedtls_printf( "Warning: event-driven IO mandates nbio=1 - overwrite\n" );
+ if (opt.event == 1 && opt.nbio != 1) {
+ mbedtls_printf("Warning: event-driven IO mandates nbio=1 - overwrite\n");
opt.nbio = 1;
}
#if defined(MBEDTLS_DEBUG_C)
- mbedtls_debug_set_threshold( opt.debug_level );
+ mbedtls_debug_set_threshold(opt.debug_level);
#endif
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
/*
* Unhexify the pre-shared key if any is given
*/
- if( strlen( opt.psk ) )
- {
- if( mbedtls_test_unhexify( psk, sizeof( psk ),
- opt.psk, &psk_len ) != 0 )
- {
- mbedtls_printf( "pre-shared key not valid\n" );
+ if (strlen(opt.psk)) {
+ if (mbedtls_test_unhexify(psk, sizeof(psk),
+ opt.psk, &psk_len) != 0) {
+ mbedtls_printf("pre-shared key not valid\n");
goto exit;
}
}
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- if( opt.psk_opaque != 0 )
- {
- if( opt.psk == NULL )
- {
- mbedtls_printf( "psk_opaque set but no psk to be imported specified.\n" );
+ if (opt.psk_opaque != 0) {
+ if (opt.psk == NULL) {
+ mbedtls_printf("psk_opaque set but no psk to be imported specified.\n");
ret = 2;
goto usage;
}
- if( opt.force_ciphersuite[0] <= 0 )
- {
- mbedtls_printf( "opaque PSKs are only supported in conjunction with forcing TLS 1.2 and a PSK-only ciphersuite through the 'force_ciphersuite' option.\n" );
+ if (opt.force_ciphersuite[0] <= 0) {
+ mbedtls_printf(
+ "opaque PSKs are only supported in conjunction with forcing TLS 1.2 and a PSK-only ciphersuite through the 'force_ciphersuite' option.\n");
ret = 2;
goto usage;
}
}
#endif /* MBEDTLS_USE_PSA_CRYPTO */
- if( opt.force_ciphersuite[0] > 0 )
- {
+ if (opt.force_ciphersuite[0] > 0) {
const mbedtls_ssl_ciphersuite_t *ciphersuite_info;
ciphersuite_info =
- mbedtls_ssl_ciphersuite_from_id( opt.force_ciphersuite[0] );
+ mbedtls_ssl_ciphersuite_from_id(opt.force_ciphersuite[0]);
- if( opt.max_version != -1 &&
- ciphersuite_info->min_tls_version > opt.max_version )
- {
- mbedtls_printf( "forced ciphersuite not allowed with this protocol version\n" );
+ if (opt.max_version != -1 &&
+ ciphersuite_info->min_tls_version > opt.max_version) {
+ mbedtls_printf("forced ciphersuite not allowed with this protocol version\n");
ret = 2;
goto usage;
}
- if( opt.min_version != -1 &&
- ciphersuite_info->max_tls_version < opt.min_version )
- {
- mbedtls_printf( "forced ciphersuite not allowed with this protocol version\n" );
+ if (opt.min_version != -1 &&
+ ciphersuite_info->max_tls_version < opt.min_version) {
+ mbedtls_printf("forced ciphersuite not allowed with this protocol version\n");
ret = 2;
goto usage;
}
/* If the server selects a version that's not supported by
* this suite, then there will be no common ciphersuite... */
- if( opt.max_version == -1 ||
- opt.max_version > ciphersuite_info->max_tls_version )
- {
+ if (opt.max_version == -1 ||
+ opt.max_version > ciphersuite_info->max_tls_version) {
opt.max_version = ciphersuite_info->max_tls_version;
}
- if( opt.min_version < ciphersuite_info->min_tls_version )
- {
+ if (opt.min_version < ciphersuite_info->min_tls_version) {
opt.min_version = ciphersuite_info->min_tls_version;
/* DTLS starts with TLS 1.2 */
- if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM &&
- opt.min_version < MBEDTLS_SSL_VERSION_TLS1_2 )
+ if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM &&
+ opt.min_version < MBEDTLS_SSL_VERSION_TLS1_2) {
opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2;
+ }
}
#if defined(MBEDTLS_USE_PSA_CRYPTO)
-#if defined (MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
- if( opt.psk_opaque != 0 )
- {
+#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
+ if (opt.psk_opaque != 0) {
/* Determine KDF algorithm the opaque PSK will be used in. */
#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
- if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 )
+ if (ciphersuite_info->mac == MBEDTLS_MD_SHA384) {
alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384);
- else
+ } else
#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
- alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256);
+ alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256);
}
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */
#endif /* MBEDTLS_USE_PSA_CRYPTO */
}
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
- if( mbedtls_test_unhexify( cid, sizeof( cid ),
- opt.cid_val, &cid_len ) != 0 )
- {
- mbedtls_printf( "CID not valid\n" );
+ if (mbedtls_test_unhexify(cid, sizeof(cid),
+ opt.cid_val, &cid_len) != 0) {
+ mbedtls_printf("CID not valid\n");
goto exit;
}
/* Keep CID settings for renegotiation unless
* specified otherwise. */
- if( opt.cid_enabled_renego == DFL_CID_ENABLED_RENEGO )
+ if (opt.cid_enabled_renego == DFL_CID_ENABLED_RENEGO) {
opt.cid_enabled_renego = opt.cid_enabled;
- if( opt.cid_val_renego == DFL_CID_VALUE_RENEGO )
+ }
+ if (opt.cid_val_renego == DFL_CID_VALUE_RENEGO) {
opt.cid_val_renego = opt.cid_val;
+ }
- if( mbedtls_test_unhexify( cid_renego, sizeof( cid_renego ),
- opt.cid_val_renego, &cid_renego_len ) != 0 )
- {
- mbedtls_printf( "CID not valid\n" );
+ if (mbedtls_test_unhexify(cid_renego, sizeof(cid_renego),
+ opt.cid_val_renego, &cid_renego_len) != 0) {
+ mbedtls_printf("CID not valid\n");
goto exit;
}
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
#if defined(MBEDTLS_ECP_C)
- if( opt.curves != NULL )
- {
+ if (opt.curves != NULL) {
p = (char *) opt.curves;
i = 0;
- if( strcmp( p, "none" ) == 0 )
- {
+ if (strcmp(p, "none") == 0) {
group_list[0] = 0;
- }
- else if( strcmp( p, "default" ) != 0 )
- {
+ } else if (strcmp(p, "default") != 0) {
/* Leave room for a final NULL in curve list */
- while( i < CURVE_LIST_SIZE - 1 && *p != '\0' )
- {
+ while (i < CURVE_LIST_SIZE - 1 && *p != '\0') {
q = p;
/* Terminate the current string */
- while( *p != ',' && *p != '\0' )
+ while (*p != ',' && *p != '\0') {
p++;
- if( *p == ',' )
- *p++ = '\0';
-
- if( ( curve_cur = mbedtls_ecp_curve_info_from_name( q ) ) != NULL )
- {
- group_list[i++] = curve_cur->tls_id;
}
- else
- {
- mbedtls_printf( "unknown curve %s\n", q );
- mbedtls_printf( "supported curves: " );
- for( curve_cur = mbedtls_ecp_curve_list();
+ if (*p == ',') {
+ *p++ = '\0';
+ }
+
+ if ((curve_cur = mbedtls_ecp_curve_info_from_name(q)) != NULL) {
+ group_list[i++] = curve_cur->tls_id;
+ } else {
+ mbedtls_printf("unknown curve %s\n", q);
+ mbedtls_printf("supported curves: ");
+ for (curve_cur = mbedtls_ecp_curve_list();
curve_cur->grp_id != MBEDTLS_ECP_DP_NONE;
- curve_cur++ )
- {
- mbedtls_printf( "%s ", curve_cur->name );
+ curve_cur++) {
+ mbedtls_printf("%s ", curve_cur->name);
}
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
goto exit;
}
}
- mbedtls_printf("Number of curves: %d\n", i );
+ mbedtls_printf("Number of curves: %d\n", i);
- if( i == CURVE_LIST_SIZE - 1 && *p != '\0' )
- {
- mbedtls_printf( "curves list too long, maximum %d",
- CURVE_LIST_SIZE - 1 );
+ if (i == CURVE_LIST_SIZE - 1 && *p != '\0') {
+ mbedtls_printf("curves list too long, maximum %d",
+ CURVE_LIST_SIZE - 1);
goto exit;
}
@@ -1637,99 +1542,65 @@
#endif /* MBEDTLS_ECP_C */
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- if( opt.sig_algs != NULL )
- {
+ if (opt.sig_algs != NULL) {
p = (char *) opt.sig_algs;
i = 0;
/* Leave room for a final MBEDTLS_TLS1_3_SIG_NONE in signature algorithm list (sig_alg_list). */
- while( i < SIG_ALG_LIST_SIZE - 1 && *p != '\0' )
- {
+ while (i < SIG_ALG_LIST_SIZE - 1 && *p != '\0') {
q = p;
/* Terminate the current string */
- while( *p != ',' && *p != '\0' )
+ while (*p != ',' && *p != '\0') {
p++;
- if( *p == ',' )
+ }
+ if (*p == ',') {
*p++ = '\0';
+ }
- if( strcmp( q, "rsa_pkcs1_sha256" ) == 0 )
- {
+ if (strcmp(q, "rsa_pkcs1_sha256") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256;
- }
- else if( strcmp( q, "rsa_pkcs1_sha384" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pkcs1_sha384") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384;
- }
- else if( strcmp( q, "rsa_pkcs1_sha512" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pkcs1_sha512") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512;
- }
- else if( strcmp( q, "ecdsa_secp256r1_sha256" ) == 0 )
- {
+ } else if (strcmp(q, "ecdsa_secp256r1_sha256") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256;
- }
- else if( strcmp( q, "ecdsa_secp384r1_sha384" ) == 0 )
- {
+ } else if (strcmp(q, "ecdsa_secp384r1_sha384") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384;
- }
- else if( strcmp( q, "ecdsa_secp521r1_sha512" ) == 0 )
- {
+ } else if (strcmp(q, "ecdsa_secp521r1_sha512") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512;
- }
- else if( strcmp( q, "rsa_pss_rsae_sha256" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pss_rsae_sha256") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256;
- }
- else if( strcmp( q, "rsa_pss_rsae_sha384" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pss_rsae_sha384") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384;
- }
- else if( strcmp( q, "rsa_pss_rsae_sha512" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pss_rsae_sha512") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512;
- }
- else if( strcmp( q, "ed25519" ) == 0 )
- {
+ } else if (strcmp(q, "ed25519") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ED25519;
- }
- else if( strcmp( q, "ed448" ) == 0 )
- {
+ } else if (strcmp(q, "ed448") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ED448;
- }
- else if( strcmp( q, "rsa_pss_pss_sha256" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pss_pss_sha256") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA256;
- }
- else if( strcmp( q, "rsa_pss_pss_sha384" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pss_pss_sha384") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA384;
- }
- else if( strcmp( q, "rsa_pss_pss_sha512" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pss_pss_sha512") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA512;
- }
- else if( strcmp( q, "rsa_pkcs1_sha1" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pkcs1_sha1") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA1;
- }
- else if( strcmp( q, "ecdsa_sha1" ) == 0 )
- {
+ } else if (strcmp(q, "ecdsa_sha1") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SHA1;
- }
- else
- {
+ } else {
ret = -1;
- mbedtls_printf( "unknown signature algorithm \"%s\"\n", q );
+ mbedtls_printf("unknown signature algorithm \"%s\"\n", q);
mbedtls_print_supported_sig_algs();
goto exit;
}
}
- if( i == ( SIG_ALG_LIST_SIZE - 1 ) && *p != '\0' )
- {
- mbedtls_printf( "signature algorithm list too long, maximum %d",
- SIG_ALG_LIST_SIZE - 1 );
+ if (i == (SIG_ALG_LIST_SIZE - 1) && *p != '\0') {
+ mbedtls_printf("signature algorithm list too long, maximum %d",
+ SIG_ALG_LIST_SIZE - 1);
goto exit;
}
@@ -1738,490 +1609,462 @@
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
#if defined(MBEDTLS_SSL_ALPN)
- if( opt.alpn_string != NULL )
- {
+ if (opt.alpn_string != NULL) {
p = (char *) opt.alpn_string;
i = 0;
/* Leave room for a final NULL in alpn_list */
- while( i < ALPN_LIST_SIZE - 1 && *p != '\0' )
- {
+ while (i < ALPN_LIST_SIZE - 1 && *p != '\0') {
alpn_list[i++] = p;
/* Terminate the current string and move on to next one */
- while( *p != ',' && *p != '\0' )
+ while (*p != ',' && *p != '\0') {
p++;
- if( *p == ',' )
+ }
+ if (*p == ',') {
*p++ = '\0';
+ }
}
}
#endif /* MBEDTLS_SSL_ALPN */
- mbedtls_printf( "build version: %s (build %d)\n",
- MBEDTLS_VERSION_STRING_FULL, MBEDTLS_VERSION_NUMBER );
+ mbedtls_printf("build version: %s (build %d)\n",
+ MBEDTLS_VERSION_STRING_FULL, MBEDTLS_VERSION_NUMBER);
/*
* 0. Initialize the RNG and the session data
*/
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- ret = rng_seed( &rng, opt.reproducible, pers );
- if( ret != 0 )
+ ret = rng_seed(&rng, opt.reproducible, pers);
+ if (ret != 0) {
goto exit;
- mbedtls_printf( " ok\n" );
+ }
+ mbedtls_printf(" ok\n");
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
/*
* 1.1. Load the trusted CA
*/
- mbedtls_printf( " . Loading the CA root certificate ..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the CA root certificate ...");
+ fflush(stdout);
- if( strcmp( opt.ca_path, "none" ) == 0 ||
- strcmp( opt.ca_file, "none" ) == 0 )
- {
+ if (strcmp(opt.ca_path, "none") == 0 ||
+ strcmp(opt.ca_file, "none") == 0) {
ret = 0;
- }
- else
+ } else
#if defined(MBEDTLS_FS_IO)
- if( strlen( opt.ca_path ) )
- ret = mbedtls_x509_crt_parse_path( &cacert, opt.ca_path );
- else if( strlen( opt.ca_file ) )
- ret = mbedtls_x509_crt_parse_file( &cacert, opt.ca_file );
- else
+ if (strlen(opt.ca_path)) {
+ ret = mbedtls_x509_crt_parse_path(&cacert, opt.ca_path);
+ } else if (strlen(opt.ca_file)) {
+ ret = mbedtls_x509_crt_parse_file(&cacert, opt.ca_file);
+ } else
#endif
{
#if defined(MBEDTLS_PEM_PARSE_C)
- for( i = 0; mbedtls_test_cas[i] != NULL; i++ )
- {
- ret = mbedtls_x509_crt_parse( &cacert,
- (const unsigned char *) mbedtls_test_cas[i],
- mbedtls_test_cas_len[i] );
- if( ret != 0 )
+ for (i = 0; mbedtls_test_cas[i] != NULL; i++) {
+ ret = mbedtls_x509_crt_parse(&cacert,
+ (const unsigned char *) mbedtls_test_cas[i],
+ mbedtls_test_cas_len[i]);
+ if (ret != 0) {
break;
+ }
}
#endif /* MBEDTLS_PEM_PARSE_C */
- if( ret == 0 )
- {
- for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ )
- {
- ret = mbedtls_x509_crt_parse_der( &cacert,
- (const unsigned char *) mbedtls_test_cas_der[i],
- mbedtls_test_cas_der_len[i] );
- if( ret != 0 )
+ if (ret == 0) {
+ for (i = 0; mbedtls_test_cas_der[i] != NULL; i++) {
+ ret = mbedtls_x509_crt_parse_der(&cacert,
+ (const unsigned char *) mbedtls_test_cas_der[i],
+ mbedtls_test_cas_der_len[i]);
+ if (ret != 0) {
break;
+ }
}
}
}
- if( ret < 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n",
- (unsigned int) -ret );
+ if (ret < 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " ok (%d skipped)\n", ret );
+ mbedtls_printf(" ok (%d skipped)\n", ret);
/*
* 1.2. Load own certificate and private key
*
* (can be skipped if client authentication is not required)
*/
- mbedtls_printf( " . Loading the client cert. and key..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the client cert. and key...");
+ fflush(stdout);
- if( strcmp( opt.crt_file, "none" ) == 0 )
+ if (strcmp(opt.crt_file, "none") == 0) {
ret = 0;
- else
+ } else
#if defined(MBEDTLS_FS_IO)
- if( strlen( opt.crt_file ) )
- ret = mbedtls_x509_crt_parse_file( &clicert, opt.crt_file );
- else
+ if (strlen(opt.crt_file)) {
+ ret = mbedtls_x509_crt_parse_file(&clicert, opt.crt_file);
+ } else
#endif
- ret = mbedtls_x509_crt_parse( &clicert,
- (const unsigned char *) mbedtls_test_cli_crt,
- mbedtls_test_cli_crt_len );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n",
- (unsigned int) -ret );
+ { ret = mbedtls_x509_crt_parse(&clicert,
+ (const unsigned char *) mbedtls_test_cli_crt,
+ mbedtls_test_cli_crt_len); }
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- if( strcmp( opt.key_file, "none" ) == 0 )
+ if (strcmp(opt.key_file, "none") == 0) {
ret = 0;
- else
+ } else
#if defined(MBEDTLS_FS_IO)
- if( strlen( opt.key_file ) )
- ret = mbedtls_pk_parse_keyfile( &pkey, opt.key_file, opt.key_pwd, rng_get, &rng );
- else
+ if (strlen(opt.key_file)) {
+ ret = mbedtls_pk_parse_keyfile(&pkey, opt.key_file, opt.key_pwd, rng_get, &rng);
+ } else
#endif
- ret = mbedtls_pk_parse_key( &pkey,
- (const unsigned char *) mbedtls_test_cli_key,
- mbedtls_test_cli_key_len, NULL, 0, rng_get, &rng );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_key returned -0x%x\n\n",
- (unsigned int) -ret );
+ { ret = mbedtls_pk_parse_key(&pkey,
+ (const unsigned char *) mbedtls_test_cli_key,
+ mbedtls_test_cli_key_len, NULL, 0, rng_get, &rng); }
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_key returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- if( opt.key_opaque != 0 )
- {
+ if (opt.key_opaque != 0) {
psa_algorithm_t psa_alg, psa_alg2 = PSA_ALG_NONE;
psa_key_usage_t usage = 0;
- if( key_opaque_set_alg_usage( opt.key_opaque_alg1,
- opt.key_opaque_alg2,
- &psa_alg, &psa_alg2,
- &usage,
- mbedtls_pk_get_type( &pkey ) ) == 0 )
- {
- ret = mbedtls_pk_wrap_as_opaque( &pkey, &key_slot, psa_alg,
- usage, psa_alg2 );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! "
- "mbedtls_pk_wrap_as_opaque returned -0x%x\n\n",
- (unsigned int) -ret );
+ if (key_opaque_set_alg_usage(opt.key_opaque_alg1,
+ opt.key_opaque_alg2,
+ &psa_alg, &psa_alg2,
+ &usage,
+ mbedtls_pk_get_type(&pkey)) == 0) {
+ ret = mbedtls_pk_wrap_as_opaque(&pkey, &key_slot, psa_alg,
+ usage, psa_alg2);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! "
+ "mbedtls_pk_wrap_as_opaque returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
}
#endif /* MBEDTLS_USE_PSA_CRYPTO */
- mbedtls_printf( " ok (key type: %s)\n",
- strlen( opt.key_file ) || strlen( opt.key_opaque_alg1 ) ?
- mbedtls_pk_get_name( &pkey ) : "none" );
+ mbedtls_printf(" ok (key type: %s)\n",
+ strlen(opt.key_file) || strlen(opt.key_opaque_alg1) ?
+ mbedtls_pk_get_name(&pkey) : "none");
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
/*
* 2. Setup stuff
*/
- mbedtls_printf( " . Setting up the SSL/TLS structure..." );
- fflush( stdout );
+ mbedtls_printf(" . Setting up the SSL/TLS structure...");
+ fflush(stdout);
- if( ( ret = mbedtls_ssl_config_defaults( &conf,
- MBEDTLS_SSL_IS_CLIENT,
- opt.transport,
- MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_config_defaults(&conf,
+ MBEDTLS_SSL_IS_CLIENT,
+ opt.transport,
+ MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
/* The default algorithms profile disables SHA-1, but our tests still
rely on it heavily. */
- if( opt.allow_sha1 > 0 )
- {
- crt_profile_for_test.allowed_mds |= MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA1 );
- mbedtls_ssl_conf_cert_profile( &conf, &crt_profile_for_test );
- mbedtls_ssl_conf_sig_algs( &conf, ssl_sig_algs_for_test );
+ if (opt.allow_sha1 > 0) {
+ crt_profile_for_test.allowed_mds |= MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA1);
+ mbedtls_ssl_conf_cert_profile(&conf, &crt_profile_for_test);
+ mbedtls_ssl_conf_sig_algs(&conf, ssl_sig_algs_for_test);
}
- if( opt.context_crt_cb == 0 )
- mbedtls_ssl_conf_verify( &conf, my_verify, NULL );
+ if (opt.context_crt_cb == 0) {
+ mbedtls_ssl_conf_verify(&conf, my_verify, NULL);
+ }
- memset( peer_crt_info, 0, sizeof( peer_crt_info ) );
+ memset(peer_crt_info, 0, sizeof(peer_crt_info));
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
- if( opt.cid_enabled == 1 || opt.cid_enabled_renego == 1 )
- {
- if( opt.cid_enabled == 1 &&
+ if (opt.cid_enabled == 1 || opt.cid_enabled_renego == 1) {
+ if (opt.cid_enabled == 1 &&
opt.cid_enabled_renego == 1 &&
- cid_len != cid_renego_len )
- {
- mbedtls_printf( "CID length must not change during renegotiation\n" );
+ cid_len != cid_renego_len) {
+ mbedtls_printf("CID length must not change during renegotiation\n");
goto usage;
}
- if( opt.cid_enabled == 1 )
- ret = mbedtls_ssl_conf_cid( &conf, cid_len,
- MBEDTLS_SSL_UNEXPECTED_CID_IGNORE );
- else
- ret = mbedtls_ssl_conf_cid( &conf, cid_renego_len,
- MBEDTLS_SSL_UNEXPECTED_CID_IGNORE );
+ if (opt.cid_enabled == 1) {
+ ret = mbedtls_ssl_conf_cid(&conf, cid_len,
+ MBEDTLS_SSL_UNEXPECTED_CID_IGNORE);
+ } else {
+ ret = mbedtls_ssl_conf_cid(&conf, cid_renego_len,
+ MBEDTLS_SSL_UNEXPECTED_CID_IGNORE);
+ }
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_cid_len returned -%#04x\n\n",
- (unsigned int) -ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_cid_len returned -%#04x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
- if( opt.auth_mode != DFL_AUTH_MODE )
- mbedtls_ssl_conf_authmode( &conf, opt.auth_mode );
+ if (opt.auth_mode != DFL_AUTH_MODE) {
+ mbedtls_ssl_conf_authmode(&conf, opt.auth_mode);
+ }
#if defined(MBEDTLS_SSL_PROTO_DTLS)
- if( opt.hs_to_min != DFL_HS_TO_MIN || opt.hs_to_max != DFL_HS_TO_MAX )
- mbedtls_ssl_conf_handshake_timeout( &conf, opt.hs_to_min,
- opt.hs_to_max );
+ if (opt.hs_to_min != DFL_HS_TO_MIN || opt.hs_to_max != DFL_HS_TO_MAX) {
+ mbedtls_ssl_conf_handshake_timeout(&conf, opt.hs_to_min,
+ opt.hs_to_max);
+ }
- if( opt.dgram_packing != DFL_DGRAM_PACKING )
- mbedtls_ssl_set_datagram_packing( &ssl, opt.dgram_packing );
+ if (opt.dgram_packing != DFL_DGRAM_PACKING) {
+ mbedtls_ssl_set_datagram_packing(&ssl, opt.dgram_packing);
+ }
#endif /* MBEDTLS_SSL_PROTO_DTLS */
#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH)
- if( ( ret = mbedtls_ssl_conf_max_frag_len( &conf, opt.mfl_code ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_max_frag_len returned %d\n\n",
- ret );
+ if ((ret = mbedtls_ssl_conf_max_frag_len(&conf, opt.mfl_code)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_max_frag_len returned %d\n\n",
+ ret);
goto exit;
}
#endif
#if defined(MBEDTLS_SSL_DTLS_SRTP)
const mbedtls_ssl_srtp_profile forced_profile[] =
- { opt.force_srtp_profile, MBEDTLS_TLS_SRTP_UNSET };
- if( opt.use_srtp == 1 )
- {
- if( opt.force_srtp_profile != 0 )
- {
- ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles ( &conf, forced_profile );
- }
- else
- {
- ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles ( &conf, default_profiles );
+ { opt.force_srtp_profile, MBEDTLS_TLS_SRTP_UNSET };
+ if (opt.use_srtp == 1) {
+ if (opt.force_srtp_profile != 0) {
+ ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles(&conf, forced_profile);
+ } else {
+ ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles(&conf, default_profiles);
}
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! "
- "mbedtls_ssl_conf_dtls_srtp_protection_profiles returned %d\n\n",
- ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! "
+ "mbedtls_ssl_conf_dtls_srtp_protection_profiles returned %d\n\n",
+ ret);
goto exit;
}
- }
- else if( opt.force_srtp_profile != 0 )
- {
- mbedtls_printf( " failed\n ! must enable use_srtp to force srtp profile\n\n" );
+ } else if (opt.force_srtp_profile != 0) {
+ mbedtls_printf(" failed\n ! must enable use_srtp to force srtp profile\n\n");
goto exit;
}
#endif /* MBEDTLS_SSL_DTLS_SRTP */
#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET)
- if( opt.extended_ms != DFL_EXTENDED_MS )
- mbedtls_ssl_conf_extended_master_secret( &conf, opt.extended_ms );
+ if (opt.extended_ms != DFL_EXTENDED_MS) {
+ mbedtls_ssl_conf_extended_master_secret(&conf, opt.extended_ms);
+ }
#endif
#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC)
- if( opt.etm != DFL_ETM )
- mbedtls_ssl_conf_encrypt_then_mac( &conf, opt.etm );
+ if (opt.etm != DFL_ETM) {
+ mbedtls_ssl_conf_encrypt_then_mac(&conf, opt.etm);
+ }
#endif
#if defined(MBEDTLS_DHM_C)
- if( opt.dhmlen != DFL_DHMLEN )
- mbedtls_ssl_conf_dhm_min_bitlen( &conf, opt.dhmlen );
+ if (opt.dhmlen != DFL_DHMLEN) {
+ mbedtls_ssl_conf_dhm_min_bitlen(&conf, opt.dhmlen);
+ }
#endif
#if defined(MBEDTLS_SSL_ALPN)
- if( opt.alpn_string != NULL )
- if( ( ret = mbedtls_ssl_conf_alpn_protocols( &conf, alpn_list ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_alpn_protocols returned %d\n\n",
- ret );
+ if (opt.alpn_string != NULL) {
+ if ((ret = mbedtls_ssl_conf_alpn_protocols(&conf, alpn_list)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_alpn_protocols returned %d\n\n",
+ ret);
goto exit;
}
+ }
#endif
- if (opt.reproducible)
- {
+ if (opt.reproducible) {
#if defined(MBEDTLS_HAVE_TIME)
#if defined(MBEDTLS_PLATFORM_TIME_ALT)
- mbedtls_platform_set_time( dummy_constant_time );
+ mbedtls_platform_set_time(dummy_constant_time);
#else
- fprintf( stderr, "Warning: reproducible option used without constant time\n" );
+ fprintf(stderr, "Warning: reproducible option used without constant time\n");
#endif
#endif /* MBEDTLS_HAVE_TIME */
}
- mbedtls_ssl_conf_rng( &conf, rng_get, &rng );
- mbedtls_ssl_conf_dbg( &conf, my_debug, stdout );
+ mbedtls_ssl_conf_rng(&conf, rng_get, &rng);
+ mbedtls_ssl_conf_dbg(&conf, my_debug, stdout);
- mbedtls_ssl_conf_read_timeout( &conf, opt.read_timeout );
+ mbedtls_ssl_conf_read_timeout(&conf, opt.read_timeout);
#if defined(MBEDTLS_SSL_SESSION_TICKETS)
- mbedtls_ssl_conf_session_tickets( &conf, opt.tickets );
+ mbedtls_ssl_conf_session_tickets(&conf, opt.tickets);
#endif
- if( opt.force_ciphersuite[0] != DFL_FORCE_CIPHER )
- mbedtls_ssl_conf_ciphersuites( &conf, opt.force_ciphersuite );
+ if (opt.force_ciphersuite[0] != DFL_FORCE_CIPHER) {
+ mbedtls_ssl_conf_ciphersuites(&conf, opt.force_ciphersuite);
+ }
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
- mbedtls_ssl_conf_tls13_key_exchange_modes( &conf, opt.tls13_kex_modes );
+ mbedtls_ssl_conf_tls13_key_exchange_modes(&conf, opt.tls13_kex_modes);
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
- if( opt.allow_legacy != DFL_ALLOW_LEGACY )
- mbedtls_ssl_conf_legacy_renegotiation( &conf, opt.allow_legacy );
+ if (opt.allow_legacy != DFL_ALLOW_LEGACY) {
+ mbedtls_ssl_conf_legacy_renegotiation(&conf, opt.allow_legacy);
+ }
#if defined(MBEDTLS_SSL_RENEGOTIATION)
- mbedtls_ssl_conf_renegotiation( &conf, opt.renegotiation );
+ mbedtls_ssl_conf_renegotiation(&conf, opt.renegotiation);
#endif
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- if( strcmp( opt.ca_path, "none" ) != 0 &&
- strcmp( opt.ca_file, "none" ) != 0 )
- {
+ if (strcmp(opt.ca_path, "none") != 0 &&
+ strcmp(opt.ca_file, "none") != 0) {
#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK)
- if( opt.ca_callback != 0 )
- mbedtls_ssl_conf_ca_cb( &conf, ca_callback, &cacert );
- else
+ if (opt.ca_callback != 0) {
+ mbedtls_ssl_conf_ca_cb(&conf, ca_callback, &cacert);
+ } else
#endif
- mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL );
+ mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL);
}
- if( strcmp( opt.crt_file, "none" ) != 0 &&
- strcmp( opt.key_file, "none" ) != 0 )
- {
- if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &clicert, &pkey ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n",
- ret );
+ if (strcmp(opt.crt_file, "none") != 0 &&
+ strcmp(opt.key_file, "none") != 0) {
+ if ((ret = mbedtls_ssl_conf_own_cert(&conf, &clicert, &pkey)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n",
+ ret);
goto exit;
}
}
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
#if defined(MBEDTLS_ECP_C)
- if( opt.curves != NULL &&
- strcmp( opt.curves, "default" ) != 0 )
- {
- mbedtls_ssl_conf_groups( &conf, group_list );
+ if (opt.curves != NULL &&
+ strcmp(opt.curves, "default") != 0) {
+ mbedtls_ssl_conf_groups(&conf, group_list);
}
#endif
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- if( opt.sig_algs != NULL )
- mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list );
+ if (opt.sig_algs != NULL) {
+ mbedtls_ssl_conf_sig_algs(&conf, sig_alg_list);
+ }
#endif
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- if( opt.psk_opaque != 0 )
- {
+ if (opt.psk_opaque != 0) {
key_attributes = psa_key_attributes_init();
- psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE );
- psa_set_key_algorithm( &key_attributes, alg );
- psa_set_key_type( &key_attributes, PSA_KEY_TYPE_DERIVE );
+ psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_DERIVE);
+ psa_set_key_algorithm(&key_attributes, alg);
+ psa_set_key_type(&key_attributes, PSA_KEY_TYPE_DERIVE);
- status = psa_import_key( &key_attributes, psk, psk_len, &slot );
- if( status != PSA_SUCCESS )
- {
+ status = psa_import_key(&key_attributes, psk, psk_len, &slot);
+ if (status != PSA_SUCCESS) {
ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED;
goto exit;
}
- if( ( ret = mbedtls_ssl_conf_psk_opaque( &conf, slot,
- (const unsigned char *) opt.psk_identity,
- strlen( opt.psk_identity ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_psk_opaque returned %d\n\n",
- ret );
+ if ((ret = mbedtls_ssl_conf_psk_opaque(&conf, slot,
+ (const unsigned char *) opt.psk_identity,
+ strlen(opt.psk_identity))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_psk_opaque returned %d\n\n",
+ ret);
goto exit;
}
- }
- else
+ } else
#endif /* MBEDTLS_USE_PSA_CRYPTO */
- if( psk_len > 0 )
- {
- ret = mbedtls_ssl_conf_psk( &conf, psk, psk_len,
- (const unsigned char *) opt.psk_identity,
- strlen( opt.psk_identity ) );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_psk returned %d\n\n", ret );
+ if (psk_len > 0) {
+ ret = mbedtls_ssl_conf_psk(&conf, psk, psk_len,
+ (const unsigned char *) opt.psk_identity,
+ strlen(opt.psk_identity));
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_psk returned %d\n\n", ret);
goto exit;
}
}
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */
- if( opt.min_version != DFL_MIN_VERSION )
- mbedtls_ssl_conf_min_tls_version( &conf, opt.min_version );
+ if (opt.min_version != DFL_MIN_VERSION) {
+ mbedtls_ssl_conf_min_tls_version(&conf, opt.min_version);
+ }
- if( opt.max_version != DFL_MAX_VERSION )
- mbedtls_ssl_conf_max_tls_version( &conf, opt.max_version );
+ if (opt.max_version != DFL_MAX_VERSION) {
+ mbedtls_ssl_conf_max_tls_version(&conf, opt.max_version);
+ }
#if defined(MBEDTLS_SSL_EARLY_DATA)
- mbedtls_ssl_tls13_conf_early_data( &conf, opt.early_data );
+ mbedtls_ssl_tls13_conf_early_data(&conf, opt.early_data);
#endif /* MBEDTLS_SSL_EARLY_DATA */
- if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- if( opt.eap_tls != 0 )
- {
- mbedtls_ssl_set_export_keys_cb( &ssl, eap_tls_key_derivation,
- &eap_tls_keying );
+ if (opt.eap_tls != 0) {
+ mbedtls_ssl_set_export_keys_cb(&ssl, eap_tls_key_derivation,
+ &eap_tls_keying);
+ } else if (opt.nss_keylog != 0) {
+ mbedtls_ssl_set_export_keys_cb(&ssl,
+ nss_keylog_export,
+ NULL);
}
- else if( opt.nss_keylog != 0 )
- {
- mbedtls_ssl_set_export_keys_cb( &ssl,
- nss_keylog_export,
- NULL );
- }
-#if defined( MBEDTLS_SSL_DTLS_SRTP )
- else if( opt.use_srtp != 0 )
- {
- mbedtls_ssl_set_export_keys_cb( &ssl, dtls_srtp_key_derivation,
- &dtls_srtp_keying );
+#if defined(MBEDTLS_SSL_DTLS_SRTP)
+ else if (opt.use_srtp != 0) {
+ mbedtls_ssl_set_export_keys_cb(&ssl, dtls_srtp_key_derivation,
+ &dtls_srtp_keying);
}
#endif /* MBEDTLS_SSL_DTLS_SRTP */
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- if( ( ret = mbedtls_ssl_set_hostname( &ssl, opt.server_name ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n",
- ret );
+ if ((ret = mbedtls_ssl_set_hostname(&ssl, opt.server_name)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_hostname returned %d\n\n",
+ ret);
goto exit;
}
#endif
#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
- if( opt.ecjpake_pw != DFL_ECJPAKE_PW )
- {
+ if (opt.ecjpake_pw != DFL_ECJPAKE_PW) {
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- if ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE )
- {
+ if (opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE) {
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
- psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE );
- psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE );
- psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD );
+ psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE);
+ psa_set_key_algorithm(&attributes, PSA_ALG_JPAKE);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_PASSWORD);
- status = psa_import_key( &attributes,
- (const unsigned char *) opt.ecjpake_pw,
- strlen( opt.ecjpake_pw ),
- &ecjpake_pw_slot );
- if( status != PSA_SUCCESS )
- {
- mbedtls_printf( " failed\n ! psa_import_key returned %d\n\n",
- status );
+ status = psa_import_key(&attributes,
+ (const unsigned char *) opt.ecjpake_pw,
+ strlen(opt.ecjpake_pw),
+ &ecjpake_pw_slot);
+ if (status != PSA_SUCCESS) {
+ mbedtls_printf(" failed\n ! psa_import_key returned %d\n\n",
+ status);
goto exit;
}
- if( ( ret = mbedtls_ssl_set_hs_ecjpake_password_opaque( &ssl,
- ecjpake_pw_slot ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password_opaque returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_set_hs_ecjpake_password_opaque(&ssl,
+ ecjpake_pw_slot)) != 0) {
+ mbedtls_printf(
+ " failed\n ! mbedtls_ssl_set_hs_ecjpake_password_opaque returned %d\n\n",
+ ret);
goto exit;
}
- mbedtls_printf( "using opaque password\n");
- }
- else
+ mbedtls_printf("using opaque password\n");
+ } else
#endif /* MBEDTLS_USE_PSA_CRYPTO */
{
- if( ( ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl,
- (const unsigned char *) opt.ecjpake_pw,
- strlen( opt.ecjpake_pw ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_set_hs_ecjpake_password(&ssl,
+ (const unsigned char *) opt.ecjpake_pw,
+ strlen(opt.ecjpake_pw))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_hs_ecjpake_password returned %d\n\n",
+ ret);
goto exit;
}
}
@@ -2229,329 +2072,307 @@
#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- if( opt.context_crt_cb == 1 )
- mbedtls_ssl_set_verify( &ssl, my_verify, NULL );
+ if (opt.context_crt_cb == 1) {
+ mbedtls_ssl_set_verify(&ssl, my_verify, NULL);
+ }
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
io_ctx.ssl = &ssl;
io_ctx.net = &server_fd;
- mbedtls_ssl_set_bio( &ssl, &io_ctx, send_cb, recv_cb,
- opt.nbio == 0 ? recv_timeout_cb : NULL );
+ mbedtls_ssl_set_bio(&ssl, &io_ctx, send_cb, recv_cb,
+ opt.nbio == 0 ? recv_timeout_cb : NULL);
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
- if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM )
- {
- if( ( ret = mbedtls_ssl_set_cid( &ssl, opt.cid_enabled,
- cid, cid_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_cid returned %d\n\n",
- ret );
+ if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) {
+ if ((ret = mbedtls_ssl_set_cid(&ssl, opt.cid_enabled,
+ cid, cid_len)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_cid returned %d\n\n",
+ ret);
goto exit;
}
}
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
#if defined(MBEDTLS_SSL_PROTO_DTLS)
- if( opt.dtls_mtu != DFL_DTLS_MTU )
- mbedtls_ssl_set_mtu( &ssl, opt.dtls_mtu );
+ if (opt.dtls_mtu != DFL_DTLS_MTU) {
+ mbedtls_ssl_set_mtu(&ssl, opt.dtls_mtu);
+ }
#endif
#if defined(MBEDTLS_TIMING_C)
- mbedtls_ssl_set_timer_cb( &ssl, &timer, mbedtls_timing_set_delay,
- mbedtls_timing_get_delay );
+ mbedtls_ssl_set_timer_cb(&ssl, &timer, mbedtls_timing_set_delay,
+ mbedtls_timing_get_delay);
#endif
#if defined(MBEDTLS_ECP_RESTARTABLE)
- if( opt.ec_max_ops != DFL_EC_MAX_OPS )
- mbedtls_ecp_set_max_ops( opt.ec_max_ops );
+ if (opt.ec_max_ops != DFL_EC_MAX_OPS) {
+ mbedtls_ecp_set_max_ops(opt.ec_max_ops);
+ }
#endif
#if defined(MBEDTLS_SSL_DTLS_SRTP)
- if( opt.use_srtp != 0 && strlen( opt.mki ) != 0 )
- {
- if( mbedtls_test_unhexify( mki, sizeof( mki ),
- opt.mki,&mki_len ) != 0 )
- {
- mbedtls_printf( "mki value not valid hex\n" );
+ if (opt.use_srtp != 0 && strlen(opt.mki) != 0) {
+ if (mbedtls_test_unhexify(mki, sizeof(mki),
+ opt.mki, &mki_len) != 0) {
+ mbedtls_printf("mki value not valid hex\n");
goto exit;
}
- mbedtls_ssl_conf_srtp_mki_value_supported( &conf, MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED );
- if( ( ret = mbedtls_ssl_dtls_srtp_set_mki_value( &ssl, mki,
- (uint16_t) strlen( opt.mki ) / 2 ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_dtls_srtp_set_mki_value returned %d\n\n", ret );
+ mbedtls_ssl_conf_srtp_mki_value_supported(&conf, MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED);
+ if ((ret = mbedtls_ssl_dtls_srtp_set_mki_value(&ssl, mki,
+ (uint16_t) strlen(opt.mki) / 2)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_dtls_srtp_set_mki_value returned %d\n\n", ret);
goto exit;
}
}
#endif
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 3. Start the connection
*/
- if( opt.server_addr == NULL)
+ if (opt.server_addr == NULL) {
opt.server_addr = opt.server_name;
+ }
- mbedtls_printf( " . Connecting to %s/%s/%s...",
- opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp",
- opt.server_addr, opt.server_port );
- fflush( stdout );
+ mbedtls_printf(" . Connecting to %s/%s/%s...",
+ opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp",
+ opt.server_addr, opt.server_port);
+ fflush(stdout);
- if( ( ret = mbedtls_net_connect( &server_fd,
- opt.server_addr, opt.server_port,
- opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ?
- MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_connect returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_net_connect(&server_fd,
+ opt.server_addr, opt.server_port,
+ opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ?
+ MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_connect returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- if( opt.nbio > 0 )
- ret = mbedtls_net_set_nonblock( &server_fd );
- else
- ret = mbedtls_net_set_block( &server_fd );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! net_set_(non)block() returned -0x%x\n\n",
- (unsigned int) -ret );
+ if (opt.nbio > 0) {
+ ret = mbedtls_net_set_nonblock(&server_fd);
+ } else {
+ ret = mbedtls_net_set_block(&server_fd);
+ }
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! net_set_(non)block() returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 4. Handshake
*/
- mbedtls_printf( " . Performing the SSL/TLS handshake..." );
- fflush( stdout );
+ mbedtls_printf(" . Performing the SSL/TLS handshake...");
+ fflush(stdout);
- while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ &&
+ while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ &&
ret != MBEDTLS_ERR_SSL_WANT_WRITE &&
- ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n",
- (unsigned int) -ret );
- if( ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED )
+ ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n",
+ (unsigned int) -ret);
+ if (ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED) {
mbedtls_printf(
" Unable to verify the server's certificate. "
- "Either it is invalid,\n"
+ "Either it is invalid,\n"
" or you didn't set ca_file or ca_path "
- "to an appropriate value.\n"
+ "to an appropriate value.\n"
" Alternatively, you may want to use "
- "auth_mode=optional for testing purposes if "
- "not using TLS 1.3.\n"
+ "auth_mode=optional for testing purposes if "
+ "not using TLS 1.3.\n"
" For TLS 1.3 server, try `ca_path=/etc/ssl/certs/`"
- "or other folder that has root certificates\n" );
- mbedtls_printf( "\n" );
+ "or other folder that has root certificates\n");
+ }
+ mbedtls_printf("\n");
goto exit;
}
#if defined(MBEDTLS_ECP_RESTARTABLE)
- if( ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS )
+ if (ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) {
continue;
+ }
#endif
/* For event-driven IO, wait for socket to become available */
- if( opt.event == 1 /* level triggered IO */ )
- {
+ if (opt.event == 1 /* level triggered IO */) {
#if defined(MBEDTLS_TIMING_C)
- ret = idle( &server_fd, &timer, ret );
+ ret = idle(&server_fd, &timer, ret);
#else
- ret = idle( &server_fd, ret );
+ ret = idle(&server_fd, ret);
#endif
- if( ret != 0 )
+ if (ret != 0) {
goto exit;
+ }
}
}
{
- int suite_id = mbedtls_ssl_get_ciphersuite_id_from_ssl( &ssl );
+ int suite_id = mbedtls_ssl_get_ciphersuite_id_from_ssl(&ssl);
const mbedtls_ssl_ciphersuite_t *ciphersuite_info;
- ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( suite_id );
+ ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(suite_id);
- mbedtls_printf( " ok\n [ Protocol is %s ]\n"
- " [ Ciphersuite is %s ]\n"
- " [ Key size is %u ]\n",
- mbedtls_ssl_get_version( &ssl ),
- mbedtls_ssl_ciphersuite_get_name( ciphersuite_info ),
- (unsigned int)
- mbedtls_ssl_ciphersuite_get_cipher_key_bitlen( ciphersuite_info ) );
+ mbedtls_printf(" ok\n [ Protocol is %s ]\n"
+ " [ Ciphersuite is %s ]\n"
+ " [ Key size is %u ]\n",
+ mbedtls_ssl_get_version(&ssl),
+ mbedtls_ssl_ciphersuite_get_name(ciphersuite_info),
+ (unsigned int)
+ mbedtls_ssl_ciphersuite_get_cipher_key_bitlen(ciphersuite_info));
}
- if( ( ret = mbedtls_ssl_get_record_expansion( &ssl ) ) >= 0 )
- mbedtls_printf( " [ Record expansion is %d ]\n", ret );
- else
- mbedtls_printf( " [ Record expansion is unknown ]\n" );
+ if ((ret = mbedtls_ssl_get_record_expansion(&ssl)) >= 0) {
+ mbedtls_printf(" [ Record expansion is %d ]\n", ret);
+ } else {
+ mbedtls_printf(" [ Record expansion is unknown ]\n");
+ }
#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH)
- mbedtls_printf( " [ Maximum incoming record payload length is %u ]\n",
- (unsigned int) mbedtls_ssl_get_max_in_record_payload( &ssl ) );
- mbedtls_printf( " [ Maximum outgoing record payload length is %u ]\n",
- (unsigned int) mbedtls_ssl_get_max_out_record_payload( &ssl ) );
+ mbedtls_printf(" [ Maximum incoming record payload length is %u ]\n",
+ (unsigned int) mbedtls_ssl_get_max_in_record_payload(&ssl));
+ mbedtls_printf(" [ Maximum outgoing record payload length is %u ]\n",
+ (unsigned int) mbedtls_ssl_get_max_out_record_payload(&ssl));
#endif
#if defined(MBEDTLS_SSL_ALPN)
- if( opt.alpn_string != NULL )
- {
- const char *alp = mbedtls_ssl_get_alpn_protocol( &ssl );
- mbedtls_printf( " [ Application Layer Protocol is %s ]\n",
- alp ? alp : "(none)" );
+ if (opt.alpn_string != NULL) {
+ const char *alp = mbedtls_ssl_get_alpn_protocol(&ssl);
+ mbedtls_printf(" [ Application Layer Protocol is %s ]\n",
+ alp ? alp : "(none)");
}
#endif
- if( opt.eap_tls != 0 )
- {
+ if (opt.eap_tls != 0) {
size_t j = 0;
- if( ( ret = mbedtls_ssl_tls_prf( eap_tls_keying.tls_prf_type,
- eap_tls_keying.master_secret,
- sizeof( eap_tls_keying.master_secret ),
- eap_tls_label,
- eap_tls_keying.randbytes,
- sizeof( eap_tls_keying.randbytes ),
- eap_tls_keymaterial,
- sizeof( eap_tls_keymaterial ) ) )
- != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_tls_prf(eap_tls_keying.tls_prf_type,
+ eap_tls_keying.master_secret,
+ sizeof(eap_tls_keying.master_secret),
+ eap_tls_label,
+ eap_tls_keying.randbytes,
+ sizeof(eap_tls_keying.randbytes),
+ eap_tls_keymaterial,
+ sizeof(eap_tls_keymaterial)))
+ != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " EAP-TLS key material is:" );
- for( j = 0; j < sizeof( eap_tls_keymaterial ); j++ )
- {
- if( j % 8 == 0 )
+ mbedtls_printf(" EAP-TLS key material is:");
+ for (j = 0; j < sizeof(eap_tls_keymaterial); j++) {
+ if (j % 8 == 0) {
mbedtls_printf("\n ");
- mbedtls_printf("%02x ", eap_tls_keymaterial[j] );
+ }
+ mbedtls_printf("%02x ", eap_tls_keymaterial[j]);
}
mbedtls_printf("\n");
- if( ( ret = mbedtls_ssl_tls_prf( eap_tls_keying.tls_prf_type, NULL, 0,
- eap_tls_label,
- eap_tls_keying.randbytes,
- sizeof( eap_tls_keying.randbytes ),
- eap_tls_iv,
- sizeof( eap_tls_iv ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n",
- (unsigned int) -ret );
- goto exit;
- }
+ if ((ret = mbedtls_ssl_tls_prf(eap_tls_keying.tls_prf_type, NULL, 0,
+ eap_tls_label,
+ eap_tls_keying.randbytes,
+ sizeof(eap_tls_keying.randbytes),
+ eap_tls_iv,
+ sizeof(eap_tls_iv))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n",
+ (unsigned int) -ret);
+ goto exit;
+ }
- mbedtls_printf( " EAP-TLS IV is:" );
- for( j = 0; j < sizeof( eap_tls_iv ); j++ )
- {
- if( j % 8 == 0 )
+ mbedtls_printf(" EAP-TLS IV is:");
+ for (j = 0; j < sizeof(eap_tls_iv); j++) {
+ if (j % 8 == 0) {
mbedtls_printf("\n ");
- mbedtls_printf("%02x ", eap_tls_iv[j] );
+ }
+ mbedtls_printf("%02x ", eap_tls_iv[j]);
}
mbedtls_printf("\n");
}
-#if defined( MBEDTLS_SSL_DTLS_SRTP )
- else if( opt.use_srtp != 0 )
- {
+#if defined(MBEDTLS_SSL_DTLS_SRTP)
+ else if (opt.use_srtp != 0) {
size_t j = 0;
mbedtls_dtls_srtp_info dtls_srtp_negotiation_result;
- mbedtls_ssl_get_dtls_srtp_negotiation_result( &ssl, &dtls_srtp_negotiation_result );
+ mbedtls_ssl_get_dtls_srtp_negotiation_result(&ssl, &dtls_srtp_negotiation_result);
- if( dtls_srtp_negotiation_result.chosen_dtls_srtp_profile
- == MBEDTLS_TLS_SRTP_UNSET )
- {
- mbedtls_printf( " Unable to negotiate "
- "the use of DTLS-SRTP\n" );
- }
- else
- {
- if( ( ret = mbedtls_ssl_tls_prf( dtls_srtp_keying.tls_prf_type,
- dtls_srtp_keying.master_secret,
- sizeof( dtls_srtp_keying.master_secret ),
- dtls_srtp_label,
- dtls_srtp_keying.randbytes,
- sizeof( dtls_srtp_keying.randbytes ),
- dtls_srtp_key_material,
- sizeof( dtls_srtp_key_material ) ) )
- != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n",
- (unsigned int) -ret );
+ if (dtls_srtp_negotiation_result.chosen_dtls_srtp_profile
+ == MBEDTLS_TLS_SRTP_UNSET) {
+ mbedtls_printf(" Unable to negotiate "
+ "the use of DTLS-SRTP\n");
+ } else {
+ if ((ret = mbedtls_ssl_tls_prf(dtls_srtp_keying.tls_prf_type,
+ dtls_srtp_keying.master_secret,
+ sizeof(dtls_srtp_keying.master_secret),
+ dtls_srtp_label,
+ dtls_srtp_keying.randbytes,
+ sizeof(dtls_srtp_keying.randbytes),
+ dtls_srtp_key_material,
+ sizeof(dtls_srtp_key_material)))
+ != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " DTLS-SRTP key material is:" );
- for( j = 0; j < sizeof( dtls_srtp_key_material ); j++ )
- {
- if( j % 8 == 0 )
- mbedtls_printf( "\n " );
- mbedtls_printf( "%02x ", dtls_srtp_key_material[j] );
+ mbedtls_printf(" DTLS-SRTP key material is:");
+ for (j = 0; j < sizeof(dtls_srtp_key_material); j++) {
+ if (j % 8 == 0) {
+ mbedtls_printf("\n ");
+ }
+ mbedtls_printf("%02x ", dtls_srtp_key_material[j]);
}
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
/* produce a less readable output used to perform automatic checks
* - compare client and server output
* - interop test with openssl which client produces this kind of output
*/
- mbedtls_printf( " Keying material: " );
- for( j = 0; j < sizeof( dtls_srtp_key_material ); j++ )
- {
- mbedtls_printf( "%02X", dtls_srtp_key_material[j] );
+ mbedtls_printf(" Keying material: ");
+ for (j = 0; j < sizeof(dtls_srtp_key_material); j++) {
+ mbedtls_printf("%02X", dtls_srtp_key_material[j]);
}
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
- if ( dtls_srtp_negotiation_result.mki_len > 0 )
- {
- mbedtls_printf( " DTLS-SRTP mki value: " );
- for( j = 0; j < dtls_srtp_negotiation_result.mki_len; j++ )
- {
- mbedtls_printf( "%02X", dtls_srtp_negotiation_result.mki_value[j] );
+ if (dtls_srtp_negotiation_result.mki_len > 0) {
+ mbedtls_printf(" DTLS-SRTP mki value: ");
+ for (j = 0; j < dtls_srtp_negotiation_result.mki_len; j++) {
+ mbedtls_printf("%02X", dtls_srtp_negotiation_result.mki_value[j]);
}
+ } else {
+ mbedtls_printf(" DTLS-SRTP no mki value negotiated");
}
- else
- {
- mbedtls_printf( " DTLS-SRTP no mki value negotiated" );
- }
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
}
}
#endif /* MBEDTLS_SSL_DTLS_SRTP */
- if( opt.reconnect != 0 && ssl.tls_version != MBEDTLS_SSL_VERSION_TLS1_3 )
- {
- mbedtls_printf(" . Saving session for reuse..." );
- fflush( stdout );
+ if (opt.reconnect != 0 && ssl.tls_version != MBEDTLS_SSL_VERSION_TLS1_3) {
+ mbedtls_printf(" . Saving session for reuse...");
+ fflush(stdout);
- if( opt.reco_mode == 1 )
- {
- if( ( ret = ssl_save_session_serialize( &ssl,
- &session_data, &session_data_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! ssl_save_session_serialize returned -0x%04x\n\n",
- (unsigned int) -ret );
+ if (opt.reco_mode == 1) {
+ if ((ret = ssl_save_session_serialize(&ssl,
+ &session_data, &session_data_len)) != 0) {
+ mbedtls_printf(" failed\n ! ssl_save_session_serialize returned -0x%04x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- }
- else
- {
- if( ( ret = mbedtls_ssl_get_session( &ssl, &saved_session ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_get_session returned -0x%x\n\n",
- (unsigned int) -ret );
+ } else {
+ if ((ret = mbedtls_ssl_get_session(&ssl, &saved_session)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_get_session returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
- if( opt.reco_mode == 1 )
- {
- mbedtls_printf( " [ Saved %u bytes of session data]\n",
- (unsigned) session_data_len );
+ if (opt.reco_mode == 1) {
+ mbedtls_printf(" [ Saved %u bytes of session data]\n",
+ (unsigned) session_data_len);
}
}
@@ -2559,89 +2380,85 @@
/*
* 5. Verify the server certificate
*/
- mbedtls_printf( " . Verifying peer X.509 certificate..." );
+ mbedtls_printf(" . Verifying peer X.509 certificate...");
- if( ( flags = mbedtls_ssl_get_verify_result( &ssl ) ) != 0 )
- {
+ if ((flags = mbedtls_ssl_get_verify_result(&ssl)) != 0) {
char vrfy_buf[512];
- mbedtls_printf( " failed\n" );
+ mbedtls_printf(" failed\n");
- x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ),
- " ! ", flags );
+ x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf),
+ " ! ", flags);
- mbedtls_printf( "%s\n", vrfy_buf );
+ mbedtls_printf("%s\n", vrfy_buf);
+ } else {
+ mbedtls_printf(" ok\n");
}
- else
- mbedtls_printf( " ok\n" );
#if !defined(MBEDTLS_X509_REMOVE_INFO)
- mbedtls_printf( " . Peer certificate information ...\n" );
- mbedtls_printf( "%s\n", peer_crt_info );
+ mbedtls_printf(" . Peer certificate information ...\n");
+ mbedtls_printf("%s\n", peer_crt_info);
#endif /* !MBEDTLS_X509_REMOVE_INFO */
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
- ret = report_cid_usage( &ssl, "initial handshake" );
- if( ret != 0 )
+ ret = report_cid_usage(&ssl, "initial handshake");
+ if (ret != 0) {
goto exit;
+ }
- if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM )
- {
- if( ( ret = mbedtls_ssl_set_cid( &ssl, opt.cid_enabled_renego,
- cid_renego,
- cid_renego_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_cid returned %d\n\n",
- ret );
+ if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) {
+ if ((ret = mbedtls_ssl_set_cid(&ssl, opt.cid_enabled_renego,
+ cid_renego,
+ cid_renego_len)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_cid returned %d\n\n",
+ ret);
goto exit;
}
}
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
#if defined(MBEDTLS_SSL_RENEGOTIATION)
- if( opt.renegotiate )
- {
+ if (opt.renegotiate) {
/*
* Perform renegotiation (this must be done when the server is waiting
* for input from our side).
*/
- mbedtls_printf( " . Performing renegotiation..." );
- fflush( stdout );
- while( ( ret = mbedtls_ssl_renegotiate( &ssl ) ) != 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ &&
+ mbedtls_printf(" . Performing renegotiation...");
+ fflush(stdout);
+ while ((ret = mbedtls_ssl_renegotiate(&ssl)) != 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ &&
ret != MBEDTLS_ERR_SSL_WANT_WRITE &&
- ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_renegotiate returned %d\n\n",
- ret );
+ ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_renegotiate returned %d\n\n",
+ ret);
goto exit;
}
#if defined(MBEDTLS_ECP_RESTARTABLE)
- if( ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS )
+ if (ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) {
continue;
+ }
#endif
/* For event-driven IO, wait for socket to become available */
- if( opt.event == 1 /* level triggered IO */ )
- {
+ if (opt.event == 1 /* level triggered IO */) {
#if defined(MBEDTLS_TIMING_C)
- idle( &server_fd, &timer, ret );
+ idle(&server_fd, &timer, ret);
#else
- idle( &server_fd, ret );
+ idle(&server_fd, ret);
#endif
}
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
#endif /* MBEDTLS_SSL_RENEGOTIATION */
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
- ret = report_cid_usage( &ssl, "after renegotiation" );
- if( ret != 0 )
+ ret = report_cid_usage(&ssl, "after renegotiation");
+ if (ret != 0) {
goto exit;
+ }
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
/*
@@ -2649,120 +2466,111 @@
*/
retry_left = opt.max_resend;
send_request:
- mbedtls_printf( " > Write to server:" );
- fflush( stdout );
+ mbedtls_printf(" > Write to server:");
+ fflush(stdout);
- len = mbedtls_snprintf( (char *) buf, sizeof( buf ) - 1, GET_REQUEST,
- opt.request_page );
- tail_len = (int) strlen( GET_REQUEST_END );
+ len = mbedtls_snprintf((char *) buf, sizeof(buf) - 1, GET_REQUEST,
+ opt.request_page);
+ tail_len = (int) strlen(GET_REQUEST_END);
/* Add padding to GET request to reach opt.request_size in length */
- if( opt.request_size != DFL_REQUEST_SIZE &&
- len + tail_len < opt.request_size )
- {
- memset( buf + len, 'A', opt.request_size - len - tail_len );
+ if (opt.request_size != DFL_REQUEST_SIZE &&
+ len + tail_len < opt.request_size) {
+ memset(buf + len, 'A', opt.request_size - len - tail_len);
len += opt.request_size - len - tail_len;
}
- strncpy( (char *) buf + len, GET_REQUEST_END, sizeof( buf ) - len - 1 );
+ strncpy((char *) buf + len, GET_REQUEST_END, sizeof(buf) - len - 1);
len += tail_len;
/* Truncate if request size is smaller than the "natural" size */
- if( opt.request_size != DFL_REQUEST_SIZE &&
- len > opt.request_size )
- {
+ if (opt.request_size != DFL_REQUEST_SIZE &&
+ len > opt.request_size) {
len = opt.request_size;
/* Still end with \r\n unless that's really not possible */
- if( len >= 2 ) buf[len - 2] = '\r';
- if( len >= 1 ) buf[len - 1] = '\n';
+ if (len >= 2) {
+ buf[len - 2] = '\r';
+ }
+ if (len >= 1) {
+ buf[len - 1] = '\n';
+ }
}
- if( opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM )
- {
+ if (opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM) {
written = 0;
frags = 0;
- do
- {
- while( ( ret = mbedtls_ssl_write( &ssl, buf + written,
- len - written ) ) < 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ &&
+ do {
+ while ((ret = mbedtls_ssl_write(&ssl, buf + written,
+ len - written)) < 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ &&
ret != MBEDTLS_ERR_SSL_WANT_WRITE &&
- ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_write returned -0x%x\n\n",
- (unsigned int) -ret );
+ ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_write returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
/* For event-driven IO, wait for socket to become available */
- if( opt.event == 1 /* level triggered IO */ )
- {
+ if (opt.event == 1 /* level triggered IO */) {
#if defined(MBEDTLS_TIMING_C)
- idle( &server_fd, &timer, ret );
+ idle(&server_fd, &timer, ret);
#else
- idle( &server_fd, ret );
+ idle(&server_fd, ret);
#endif
}
}
frags++;
written += ret;
- }
- while( written < len );
- }
- else /* Not stream, so datagram */
- {
- while( 1 )
- {
- ret = mbedtls_ssl_write( &ssl, buf, len );
+ } while (written < len);
+ } else { /* Not stream, so datagram */
+ while (1) {
+ ret = mbedtls_ssl_write(&ssl, buf, len);
#if defined(MBEDTLS_ECP_RESTARTABLE)
- if( ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS )
+ if (ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) {
continue;
+ }
#endif
- if( ret != MBEDTLS_ERR_SSL_WANT_READ &&
- ret != MBEDTLS_ERR_SSL_WANT_WRITE )
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ &&
+ ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
break;
+ }
/* For event-driven IO, wait for socket to become available */
- if( opt.event == 1 /* level triggered IO */ )
- {
+ if (opt.event == 1 /* level triggered IO */) {
#if defined(MBEDTLS_TIMING_C)
- idle( &server_fd, &timer, ret );
+ idle(&server_fd, &timer, ret);
#else
- idle( &server_fd, ret );
+ idle(&server_fd, ret);
#endif
}
}
- if( ret < 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n",
- ret );
+ if (ret < 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n",
+ ret);
goto exit;
}
frags = 1;
written = ret;
- if( written < len )
- {
- mbedtls_printf( " warning\n ! request didn't fit into single datagram and "
- "was truncated to size %u", (unsigned) written );
+ if (written < len) {
+ mbedtls_printf(" warning\n ! request didn't fit into single datagram and "
+ "was truncated to size %u", (unsigned) written);
}
}
buf[written] = '\0';
- mbedtls_printf( " %d bytes written in %d fragments\n\n%s\n",
- written, frags, (char *) buf );
+ mbedtls_printf(" %d bytes written in %d fragments\n\n%s\n",
+ written, frags, (char *) buf);
/* Send a non-empty request if request_size == 0 */
- if ( len == 0 )
- {
+ if (len == 0) {
opt.request_size = DFL_REQUEST_SIZE;
goto send_request;
}
@@ -2774,49 +2582,44 @@
/*
* TLS and DTLS need different reading styles (stream vs datagram)
*/
- if( opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM )
- {
+ if (opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM) {
#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS)
int ticket_id = 0;
#endif
- do
- {
- len = sizeof( buf ) - 1;
- memset( buf, 0, sizeof( buf ) );
- ret = mbedtls_ssl_read( &ssl, buf, len );
+ do {
+ len = sizeof(buf) - 1;
+ memset(buf, 0, sizeof(buf));
+ ret = mbedtls_ssl_read(&ssl, buf, len);
#if defined(MBEDTLS_ECP_RESTARTABLE)
- if( ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS )
+ if (ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) {
continue;
+ }
#endif
- if( ret == MBEDTLS_ERR_SSL_WANT_READ ||
- ret == MBEDTLS_ERR_SSL_WANT_WRITE )
- {
+ if (ret == MBEDTLS_ERR_SSL_WANT_READ ||
+ ret == MBEDTLS_ERR_SSL_WANT_WRITE) {
/* For event-driven IO, wait for socket to become available */
- if( opt.event == 1 /* level triggered IO */ )
- {
+ if (opt.event == 1 /* level triggered IO */) {
#if defined(MBEDTLS_TIMING_C)
- idle( &server_fd, &timer, ret );
+ idle(&server_fd, &timer, ret);
#else
- idle( &server_fd, ret );
+ idle(&server_fd, ret);
#endif
}
continue;
}
- if( ret <= 0 )
- {
- switch( ret )
- {
+ if (ret <= 0) {
+ switch (ret) {
case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY:
- mbedtls_printf( " connection was closed gracefully\n" );
+ mbedtls_printf(" connection was closed gracefully\n");
ret = 0;
goto close_notify;
case 0:
case MBEDTLS_ERR_NET_CONN_RESET:
- mbedtls_printf( " connection was reset by peer\n" );
+ mbedtls_printf(" connection was reset by peer\n");
ret = 0;
goto reconnect;
@@ -2826,39 +2629,35 @@
case MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET:
/* We were waiting for application data but got
* a NewSessionTicket instead. */
- mbedtls_printf( " got new session ticket ( %d ).\n",
- ticket_id++ );
- if( opt.reconnect != 0 )
- {
- mbedtls_printf(" . Saving session for reuse..." );
- fflush( stdout );
+ mbedtls_printf(" got new session ticket ( %d ).\n",
+ ticket_id++);
+ if (opt.reconnect != 0) {
+ mbedtls_printf(" . Saving session for reuse...");
+ fflush(stdout);
- if( opt.reco_mode == 1 )
- {
- if( ( ret = ssl_save_session_serialize( &ssl,
- &session_data, &session_data_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! ssl_save_session_serialize returned -0x%04x\n\n",
- (unsigned int) -ret );
+ if (opt.reco_mode == 1) {
+ if ((ret = ssl_save_session_serialize(&ssl,
+ &session_data,
+ &session_data_len)) != 0) {
+ mbedtls_printf(
+ " failed\n ! ssl_save_session_serialize returned -0x%04x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- }
- else
- {
- if( ( ret = mbedtls_ssl_get_session( &ssl, &saved_session ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_get_session returned -0x%x\n\n",
- (unsigned int) -ret );
+ } else {
+ if ((ret = mbedtls_ssl_get_session(&ssl, &saved_session)) != 0) {
+ mbedtls_printf(
+ " failed\n ! mbedtls_ssl_get_session returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
- if( opt.reco_mode == 1 )
- {
- mbedtls_printf( " [ Saved %u bytes of session data]\n",
- (unsigned) session_data_len );
+ if (opt.reco_mode == 1) {
+ mbedtls_printf(" [ Saved %u bytes of session data]\n",
+ (unsigned) session_data_len);
}
}
continue;
@@ -2867,126 +2666,116 @@
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
default:
- mbedtls_printf( " mbedtls_ssl_read returned -0x%x\n",
- (unsigned int) -ret );
+ mbedtls_printf(" mbedtls_ssl_read returned -0x%x\n",
+ (unsigned int) -ret);
goto exit;
}
}
len = ret;
buf[len] = '\0';
- mbedtls_printf( " < Read from server: %d bytes read\n\n%s", len, (char *) buf );
- fflush( stdout );
+ mbedtls_printf(" < Read from server: %d bytes read\n\n%s", len, (char *) buf);
+ fflush(stdout);
/* End of message should be detected according to the syntax of the
* application protocol (eg HTTP), just use a dummy test here. */
- if( ret > 0 && buf[len-1] == '\n' )
- {
+ if (ret > 0 && buf[len-1] == '\n') {
ret = 0;
break;
}
- }
- while( 1 );
- }
- else /* Not stream, so datagram */
- {
- len = sizeof( buf ) - 1;
- memset( buf, 0, sizeof( buf ) );
+ } while (1);
+ } else { /* Not stream, so datagram */
+ len = sizeof(buf) - 1;
+ memset(buf, 0, sizeof(buf));
- while( 1 )
- {
- ret = mbedtls_ssl_read( &ssl, buf, len );
+ while (1) {
+ ret = mbedtls_ssl_read(&ssl, buf, len);
#if defined(MBEDTLS_ECP_RESTARTABLE)
- if( ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS )
+ if (ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) {
continue;
+ }
#endif
- if( ret != MBEDTLS_ERR_SSL_WANT_READ &&
- ret != MBEDTLS_ERR_SSL_WANT_WRITE )
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ &&
+ ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
break;
+ }
/* For event-driven IO, wait for socket to become available */
- if( opt.event == 1 /* level triggered IO */ )
- {
+ if (opt.event == 1 /* level triggered IO */) {
#if defined(MBEDTLS_TIMING_C)
- idle( &server_fd, &timer, ret );
+ idle(&server_fd, &timer, ret);
#else
- idle( &server_fd, ret );
+ idle(&server_fd, ret);
#endif
}
}
- if( ret <= 0 )
- {
- switch( ret )
- {
+ if (ret <= 0) {
+ switch (ret) {
case MBEDTLS_ERR_SSL_TIMEOUT:
- mbedtls_printf( " timeout\n" );
- if( retry_left-- > 0 )
+ mbedtls_printf(" timeout\n");
+ if (retry_left-- > 0) {
goto send_request;
+ }
goto exit;
case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY:
- mbedtls_printf( " connection was closed gracefully\n" );
+ mbedtls_printf(" connection was closed gracefully\n");
ret = 0;
goto close_notify;
default:
- mbedtls_printf( " mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret );
+ mbedtls_printf(" mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret);
goto exit;
}
}
len = ret;
buf[len] = '\0';
- mbedtls_printf( " < Read from server: %d bytes read\n\n%s", len, (char *) buf );
+ mbedtls_printf(" < Read from server: %d bytes read\n\n%s", len, (char *) buf);
ret = 0;
}
/*
* 7b. Simulate hard reset and reconnect from same port?
*/
- if( opt.reconnect_hard != 0 )
- {
+ if (opt.reconnect_hard != 0) {
opt.reconnect_hard = 0;
- mbedtls_printf( " . Restarting connection from same port..." );
- fflush( stdout );
+ mbedtls_printf(" . Restarting connection from same port...");
+ fflush(stdout);
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- memset( peer_crt_info, 0, sizeof( peer_crt_info ) );
+ memset(peer_crt_info, 0, sizeof(peer_crt_info));
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
- if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_session_reset returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_session_reset(&ssl)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_session_reset returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ &&
+ while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ &&
ret != MBEDTLS_ERR_SSL_WANT_WRITE &&
- ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n",
- (unsigned int) -ret );
+ ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
/* For event-driven IO, wait for socket to become available */
- if( opt.event == 1 /* level triggered IO */ )
- {
+ if (opt.event == 1 /* level triggered IO */) {
#if defined(MBEDTLS_TIMING_C)
- idle( &server_fd, &timer, ret );
+ idle(&server_fd, &timer, ret);
#else
- idle( &server_fd, ret );
+ idle(&server_fd, ret);
#endif
}
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
goto send_request;
}
@@ -2995,160 +2784,149 @@
* 7c. Simulate serialize/deserialize and go back to data exchange
*/
#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION)
- if( opt.serialize != 0 )
- {
+ if (opt.serialize != 0) {
size_t buf_len;
- mbedtls_printf( " . Serializing live connection..." );
+ mbedtls_printf(" . Serializing live connection...");
- ret = mbedtls_ssl_context_save( &ssl, NULL, 0, &buf_len );
- if( ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_context_save returned "
- "-0x%x\n\n", (unsigned int) -ret );
+ ret = mbedtls_ssl_context_save(&ssl, NULL, 0, &buf_len);
+ if (ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_context_save returned "
+ "-0x%x\n\n", (unsigned int) -ret);
goto exit;
}
- if( ( context_buf = mbedtls_calloc( 1, buf_len ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Couldn't allocate buffer for "
- "serialized context" );
+ if ((context_buf = mbedtls_calloc(1, buf_len)) == NULL) {
+ mbedtls_printf(" failed\n ! Couldn't allocate buffer for "
+ "serialized context");
goto exit;
}
context_buf_len = buf_len;
- if( ( ret = mbedtls_ssl_context_save( &ssl, context_buf,
- buf_len, &buf_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_context_save returned "
- "-0x%x\n\n", (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_context_save(&ssl, context_buf,
+ buf_len, &buf_len)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_context_save returned "
+ "-0x%x\n\n", (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/* Save serialized context to the 'opt.context_file' as a base64 code */
- if( 0 < strlen( opt.context_file ) )
- {
+ if (0 < strlen(opt.context_file)) {
FILE *b64_file;
uint8_t *b64_buf;
size_t b64_len;
- mbedtls_printf( " . Save serialized context to a file... " );
+ mbedtls_printf(" . Save serialized context to a file... ");
- mbedtls_base64_encode( NULL, 0, &b64_len, context_buf, buf_len );
+ mbedtls_base64_encode(NULL, 0, &b64_len, context_buf, buf_len);
- if( ( b64_buf = mbedtls_calloc( 1, b64_len ) ) == NULL )
- {
- mbedtls_printf( "failed\n ! Couldn't allocate buffer for "
- "the base64 code\n" );
+ if ((b64_buf = mbedtls_calloc(1, b64_len)) == NULL) {
+ mbedtls_printf("failed\n ! Couldn't allocate buffer for "
+ "the base64 code\n");
goto exit;
}
- if( ( ret = mbedtls_base64_encode( b64_buf, b64_len, &b64_len,
- context_buf, buf_len ) ) != 0 )
- {
- mbedtls_printf( "failed\n ! mbedtls_base64_encode returned "
- "-0x%x\n", (unsigned int) -ret );
- mbedtls_free( b64_buf );
+ if ((ret = mbedtls_base64_encode(b64_buf, b64_len, &b64_len,
+ context_buf, buf_len)) != 0) {
+ mbedtls_printf("failed\n ! mbedtls_base64_encode returned "
+ "-0x%x\n", (unsigned int) -ret);
+ mbedtls_free(b64_buf);
goto exit;
}
- if( ( b64_file = fopen( opt.context_file, "w" ) ) == NULL )
- {
- mbedtls_printf( "failed\n ! Cannot open '%s' for writing.\n",
- opt.context_file );
- mbedtls_free( b64_buf );
+ if ((b64_file = fopen(opt.context_file, "w")) == NULL) {
+ mbedtls_printf("failed\n ! Cannot open '%s' for writing.\n",
+ opt.context_file);
+ mbedtls_free(b64_buf);
goto exit;
}
- if( b64_len != fwrite( b64_buf, 1, b64_len, b64_file ) )
- {
- mbedtls_printf( "failed\n ! fwrite(%ld bytes) failed\n",
- (long) b64_len );
- mbedtls_free( b64_buf );
- fclose( b64_file );
+ if (b64_len != fwrite(b64_buf, 1, b64_len, b64_file)) {
+ mbedtls_printf("failed\n ! fwrite(%ld bytes) failed\n",
+ (long) b64_len);
+ mbedtls_free(b64_buf);
+ fclose(b64_file);
goto exit;
}
- mbedtls_free( b64_buf );
- fclose( b64_file );
+ mbedtls_free(b64_buf);
+ fclose(b64_file);
- mbedtls_printf( "ok\n" );
+ mbedtls_printf("ok\n");
}
- if( opt.serialize == 1 )
- {
+ if (opt.serialize == 1) {
/* nothing to do here, done by context_save() already */
- mbedtls_printf( " . Context has been reset... ok\n" );
+ mbedtls_printf(" . Context has been reset... ok\n");
}
- if( opt.serialize == 2 )
- {
- mbedtls_printf( " . Freeing and reinitializing context..." );
+ if (opt.serialize == 2) {
+ mbedtls_printf(" . Freeing and reinitializing context...");
- mbedtls_ssl_free( &ssl );
+ mbedtls_ssl_free(&ssl);
- mbedtls_ssl_init( &ssl );
+ mbedtls_ssl_init(&ssl);
- if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned "
- "-0x%x\n\n", (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned "
+ "-0x%x\n\n", (unsigned int) -ret);
goto exit;
}
- if( opt.nbio == 2 )
- mbedtls_ssl_set_bio( &ssl, &server_fd, delayed_send,
- delayed_recv, NULL );
- else
- mbedtls_ssl_set_bio( &ssl, &server_fd, mbedtls_net_send,
- mbedtls_net_recv,
- opt.nbio == 0 ? mbedtls_net_recv_timeout : NULL );
+ if (opt.nbio == 2) {
+ mbedtls_ssl_set_bio(&ssl, &server_fd, delayed_send,
+ delayed_recv, NULL);
+ } else {
+ mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send,
+ mbedtls_net_recv,
+ opt.nbio == 0 ? mbedtls_net_recv_timeout : NULL);
+ }
#if defined(MBEDTLS_TIMING_C)
- mbedtls_ssl_set_timer_cb( &ssl, &timer,
- mbedtls_timing_set_delay,
- mbedtls_timing_get_delay );
+ mbedtls_ssl_set_timer_cb(&ssl, &timer,
+ mbedtls_timing_set_delay,
+ mbedtls_timing_get_delay);
#endif /* MBEDTLS_TIMING_C */
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
- mbedtls_printf( " . Deserializing connection..." );
+ mbedtls_printf(" . Deserializing connection...");
- if( ( ret = mbedtls_ssl_context_load( &ssl, context_buf,
- buf_len ) ) != 0 )
- {
- mbedtls_printf( "failed\n ! mbedtls_ssl_context_load returned "
- "-0x%x\n\n", (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_context_load(&ssl, context_buf,
+ buf_len)) != 0) {
+ mbedtls_printf("failed\n ! mbedtls_ssl_context_load returned "
+ "-0x%x\n\n", (unsigned int) -ret);
goto exit;
}
- mbedtls_free( context_buf );
+ mbedtls_free(context_buf);
context_buf = NULL;
context_buf_len = 0;
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
#endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */
/*
* 7d. Continue doing data exchanges?
*/
- if( --opt.exchanges > 0 )
+ if (--opt.exchanges > 0) {
goto send_request;
+ }
/*
* 8. Done, cleanly close the connection
*/
close_notify:
- mbedtls_printf( " . Closing the connection..." );
- fflush( stdout );
+ mbedtls_printf(" . Closing the connection...");
+ fflush(stdout);
/*
* Most of the time sending a close_notify before closing is the right
@@ -3162,108 +2940,100 @@
* failures in tests that use DTLS and resumption with ssl_server2 in
* ssl-opt.sh, avoided by enabling skip_close_notify client-side.
*/
- if( opt.skip_close_notify == 0 )
- {
+ if (opt.skip_close_notify == 0) {
/* No error checking, the connection might be closed already */
- do ret = mbedtls_ssl_close_notify( &ssl );
- while( ret == MBEDTLS_ERR_SSL_WANT_WRITE );
+ do {
+ ret = mbedtls_ssl_close_notify(&ssl);
+ } while (ret == MBEDTLS_ERR_SSL_WANT_WRITE);
ret = 0;
}
- mbedtls_printf( " done\n" );
+ mbedtls_printf(" done\n");
/*
* 9. Reconnect?
*/
reconnect:
- if( opt.reconnect != 0 )
- {
+ if (opt.reconnect != 0) {
--opt.reconnect;
- mbedtls_net_free( &server_fd );
+ mbedtls_net_free(&server_fd);
#if defined(MBEDTLS_TIMING_C)
- if( opt.reco_delay > 0 )
- mbedtls_net_usleep( 1000000 * opt.reco_delay );
+ if (opt.reco_delay > 0) {
+ mbedtls_net_usleep(1000000 * opt.reco_delay);
+ }
#endif
- mbedtls_printf( " . Reconnecting with saved session..." );
+ mbedtls_printf(" . Reconnecting with saved session...");
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- memset( peer_crt_info, 0, sizeof( peer_crt_info ) );
+ memset(peer_crt_info, 0, sizeof(peer_crt_info));
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
- if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_session_reset returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_session_reset(&ssl)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_session_reset returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- if( opt.reco_mode == 1 )
- {
- if( ( ret = mbedtls_ssl_session_load( &saved_session,
- session_data,
- session_data_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_session_load returned -0x%x\n\n",
- (unsigned int) -ret );
+ if (opt.reco_mode == 1) {
+ if ((ret = mbedtls_ssl_session_load(&saved_session,
+ session_data,
+ session_data_len)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_session_load returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
- if( ( ret = mbedtls_ssl_set_session( &ssl, &saved_session ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_session returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_set_session(&ssl, &saved_session)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_session returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
#if defined(MBEDTLS_X509_CRT_PARSE_C)
- if( opt.reco_server_name != NULL &&
- ( ret = mbedtls_ssl_set_hostname( &ssl,
- opt.reco_server_name ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n",
- ret );
+ if (opt.reco_server_name != NULL &&
+ (ret = mbedtls_ssl_set_hostname(&ssl,
+ opt.reco_server_name)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_hostname returned %d\n\n",
+ ret);
goto exit;
}
#endif
- if( ( ret = mbedtls_net_connect( &server_fd,
- opt.server_addr, opt.server_port,
- opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ?
- MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_connect returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_net_connect(&server_fd,
+ opt.server_addr, opt.server_port,
+ opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ?
+ MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_connect returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- if( opt.nbio > 0 )
- ret = mbedtls_net_set_nonblock( &server_fd );
- else
- ret = mbedtls_net_set_block( &server_fd );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! net_set_(non)block() returned -0x%x\n\n",
- (unsigned int) -ret );
+ if (opt.nbio > 0) {
+ ret = mbedtls_net_set_nonblock(&server_fd);
+ } else {
+ ret = mbedtls_net_set_block(&server_fd);
+ }
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! net_set_(non)block() returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ &&
+ while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ &&
ret != MBEDTLS_ERR_SSL_WANT_WRITE &&
- ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n",
- (unsigned int) -ret );
+ ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
goto send_request;
}
@@ -3273,55 +3043,55 @@
*/
exit:
#ifdef MBEDTLS_ERROR_C
- if( ret != 0 )
- {
+ if (ret != 0) {
char error_buf[100];
- mbedtls_strerror( ret, error_buf, 100 );
- mbedtls_printf("Last error was: -0x%X - %s\n\n", (unsigned int) -ret, error_buf );
+ mbedtls_strerror(ret, error_buf, 100);
+ mbedtls_printf("Last error was: -0x%X - %s\n\n", (unsigned int) -ret, error_buf);
}
#endif
- mbedtls_net_free( &server_fd );
+ mbedtls_net_free(&server_fd);
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
- mbedtls_ssl_session_free( &saved_session );
+ mbedtls_ssl_free(&ssl);
+ mbedtls_ssl_config_free(&conf);
+ mbedtls_ssl_session_free(&saved_session);
- if( session_data != NULL )
- mbedtls_platform_zeroize( session_data, session_data_len );
- mbedtls_free( session_data );
+ if (session_data != NULL) {
+ mbedtls_platform_zeroize(session_data, session_data_len);
+ }
+ mbedtls_free(session_data);
#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION)
- if( context_buf != NULL )
- mbedtls_platform_zeroize( context_buf, context_buf_len );
- mbedtls_free( context_buf );
+ if (context_buf != NULL) {
+ mbedtls_platform_zeroize(context_buf, context_buf_len);
+ }
+ mbedtls_free(context_buf);
#endif
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- mbedtls_x509_crt_free( &clicert );
- mbedtls_x509_crt_free( &cacert );
- mbedtls_pk_free( &pkey );
+ mbedtls_x509_crt_free(&clicert);
+ mbedtls_x509_crt_free(&cacert);
+ mbedtls_pk_free(&pkey);
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- psa_destroy_key( key_slot );
+ psa_destroy_key(key_slot);
#endif
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) && \
defined(MBEDTLS_USE_PSA_CRYPTO)
- if( opt.psk_opaque != 0 )
- {
+ if (opt.psk_opaque != 0) {
/* This is ok even if the slot hasn't been
* initialized (we might have jumed here
* immediately because of bad cmd line params,
* for example). */
- status = psa_destroy_key( slot );
- if( ( status != PSA_SUCCESS ) &&
- ( opt.query_config_mode == DFL_QUERY_CONFIG_MODE ) )
- {
- mbedtls_printf( "Failed to destroy key slot %u - error was %d",
- (unsigned) MBEDTLS_SVC_KEY_ID_GET_KEY_ID( slot ),
- (int) status );
- if( ret == 0 )
+ status = psa_destroy_key(slot);
+ if ((status != PSA_SUCCESS) &&
+ (opt.query_config_mode == DFL_QUERY_CONFIG_MODE)) {
+ mbedtls_printf("Failed to destroy key slot %u - error was %d",
+ (unsigned) MBEDTLS_SVC_KEY_ID_GET_KEY_ID(slot),
+ (int) status);
+ if (ret == 0) {
ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED;
+ }
}
}
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED &&
@@ -3333,32 +3103,29 @@
* In case opaque keys it's the user responsibility to keep the key valid
* for the duration of the handshake and destroy it at the end
*/
- if( ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) )
- {
+ if ((opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE)) {
psa_key_attributes_t check_attributes = PSA_KEY_ATTRIBUTES_INIT;
/* Verify that the key is still valid before destroying it */
- if( psa_get_key_attributes( ecjpake_pw_slot, &check_attributes ) !=
- PSA_SUCCESS )
- {
- if( ret == 0 )
+ if (psa_get_key_attributes(ecjpake_pw_slot, &check_attributes) !=
+ PSA_SUCCESS) {
+ if (ret == 0) {
ret = 1;
- mbedtls_printf( "The EC J-PAKE password key has unexpectedly been already destroyed\n" );
- }
- else
- {
- psa_destroy_key( ecjpake_pw_slot );
+ }
+ mbedtls_printf("The EC J-PAKE password key has unexpectedly been already destroyed\n");
+ } else {
+ psa_destroy_key(ecjpake_pw_slot);
}
}
#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO */
#if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)
- const char* message = mbedtls_test_helper_is_psa_leaking();
- if( message )
- {
- if( ret == 0 )
+ const char *message = mbedtls_test_helper_is_psa_leaking();
+ if (message) {
+ if (ret == 0) {
ret = 1;
- mbedtls_printf( "PSA memory leak detected: %s\n", message);
+ }
+ mbedtls_printf("PSA memory leak detected: %s\n", message);
}
#endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */
@@ -3366,19 +3133,19 @@
* resources are freed by rng_free(). */
#if (defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)) && \
!defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG)
- mbedtls_psa_crypto_free( );
+ mbedtls_psa_crypto_free();
#endif
- rng_free( &rng );
+ rng_free(&rng);
#if defined(MBEDTLS_TEST_HOOKS)
- if( test_hooks_failure_detected( ) )
- {
- if( ret == 0 )
+ if (test_hooks_failure_detected()) {
+ if (ret == 0) {
ret = 1;
- mbedtls_printf( "Test hooks detected errors.\n" );
+ }
+ mbedtls_printf("Test hooks detected errors.\n");
}
- test_hooks_free( );
+ test_hooks_free();
#endif /* MBEDTLS_TEST_HOOKS */
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
@@ -3389,12 +3156,14 @@
#endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */
// Shell can not handle large exit numbers -> 1 for errors
- if( ret < 0 )
+ if (ret < 0) {
ret = 1;
+ }
- if( opt.query_config_mode == DFL_QUERY_CONFIG_MODE )
- mbedtls_exit( ret );
- else
- mbedtls_exit( query_config_ret );
+ if (opt.query_config_mode == DFL_QUERY_CONFIG_MODE) {
+ mbedtls_exit(ret);
+ } else {
+ mbedtls_exit(query_config_ret);
+ }
}
#endif /* !MBEDTLS_SSL_TEST_IMPOSSIBLE && MBEDTLS_SSL_CLI_C */
diff --git a/programs/ssl/ssl_context_info.c b/programs/ssl/ssl_context_info.c
index d0431f2..0ba0d2c 100644
--- a/programs/ssl/ssl_context_info.c
+++ b/programs/ssl/ssl_context_info.c
@@ -27,11 +27,11 @@
#if !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_ERROR_C) || \
!defined(MBEDTLS_SSL_TLS_C)
-int main( void )
+int main(void)
{
printf("MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_ERROR_C and/or "
"MBEDTLS_SSL_TLS_C not defined.\n");
- return( 0 );
+ return 0;
}
#else
@@ -62,18 +62,18 @@
/*
* Flags copied from the Mbed TLS library.
*/
-#define SESSION_CONFIG_TIME_BIT ( 1 << 0 )
-#define SESSION_CONFIG_CRT_BIT ( 1 << 1 )
-#define SESSION_CONFIG_CLIENT_TICKET_BIT ( 1 << 2 )
-#define SESSION_CONFIG_MFL_BIT ( 1 << 3 )
-#define SESSION_CONFIG_TRUNC_HMAC_BIT ( 1 << 4 )
-#define SESSION_CONFIG_ETM_BIT ( 1 << 5 )
-#define SESSION_CONFIG_TICKET_BIT ( 1 << 6 )
+#define SESSION_CONFIG_TIME_BIT (1 << 0)
+#define SESSION_CONFIG_CRT_BIT (1 << 1)
+#define SESSION_CONFIG_CLIENT_TICKET_BIT (1 << 2)
+#define SESSION_CONFIG_MFL_BIT (1 << 3)
+#define SESSION_CONFIG_TRUNC_HMAC_BIT (1 << 4)
+#define SESSION_CONFIG_ETM_BIT (1 << 5)
+#define SESSION_CONFIG_TICKET_BIT (1 << 6)
-#define CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT ( 1 << 0 )
-#define CONTEXT_CONFIG_DTLS_BADMAC_LIMIT_BIT ( 1 << 1 )
-#define CONTEXT_CONFIG_DTLS_ANTI_REPLAY_BIT ( 1 << 2 )
-#define CONTEXT_CONFIG_ALPN_BIT ( 1 << 3 )
+#define CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT (1 << 0)
+#define CONTEXT_CONFIG_DTLS_BADMAC_LIMIT_BIT (1 << 1)
+#define CONTEXT_CONFIG_DTLS_ANTI_REPLAY_BIT (1 << 2)
+#define CONTEXT_CONFIG_ALPN_BIT (1 << 3)
#define TRANSFORM_RANDBYTE_LEN 64
@@ -88,28 +88,28 @@
#define MAX_CONTEXT_LEN 875 /* without session data */
#define MAX_SESSION_LEN 109 /* without certificate and ticket data */
-#define MAX_CERTIFICATE_LEN ( ( 1 << 24 ) - 1 )
-#define MAX_TICKET_LEN ( ( 1 << 24 ) - 1 )
+#define MAX_CERTIFICATE_LEN ((1 << 24) - 1)
+#define MAX_TICKET_LEN ((1 << 24) - 1)
-#define MIN_SERIALIZED_DATA ( MIN_CONTEXT_LEN + MIN_SESSION_LEN )
-#define MAX_SERIALIZED_DATA ( MAX_CONTEXT_LEN + MAX_SESSION_LEN + \
- MAX_CERTIFICATE_LEN + MAX_TICKET_LEN )
+#define MIN_SERIALIZED_DATA (MIN_CONTEXT_LEN + MIN_SESSION_LEN)
+#define MAX_SERIALIZED_DATA (MAX_CONTEXT_LEN + MAX_SESSION_LEN + \
+ MAX_CERTIFICATE_LEN + MAX_TICKET_LEN)
-#define MIN_BASE64_LEN ( MIN_SERIALIZED_DATA * 4 / 3 )
-#define MAX_BASE64_LEN ( MAX_SERIALIZED_DATA * 4 / 3 + 3 )
+#define MIN_BASE64_LEN (MIN_SERIALIZED_DATA * 4 / 3)
+#define MAX_BASE64_LEN (MAX_SERIALIZED_DATA * 4 / 3 + 3)
/*
* A macro that prevents from reading out of the ssl buffer range.
*/
-#define CHECK_SSL_END( LEN ) \
-do \
-{ \
- if( end - ssl < (int)( LEN ) ) \
- { \
- printf_err( "%s", buf_ln_err ); \
- return; \
- } \
-} while( 0 )
+#define CHECK_SSL_END(LEN) \
+ do \
+ { \
+ if (end - ssl < (int) (LEN)) \
+ { \
+ printf_err("%s", buf_ln_err); \
+ return; \
+ } \
+ } while (0)
/*
* Global values
@@ -124,17 +124,17 @@
/*
* Basic printing functions
*/
-void print_version( )
+void print_version()
{
- printf( "%s v%d.%d\n", PROG_NAME, VER_MAJOR, VER_MINOR );
+ printf("%s v%d.%d\n", PROG_NAME, VER_MAJOR, VER_MINOR);
}
-void print_usage( )
+void print_usage()
{
print_version();
- printf( "\nThis program is used to deserialize an Mbed TLS SSL session from the base64 code provided\n"
- "in the text file. The program can deserialize many codes from one file, but they must be\n"
- "separated, e.g. by a newline.\n\n" );
+ printf("\nThis program is used to deserialize an Mbed TLS SSL session from the base64 code provided\n"
+ "in the text file. The program can deserialize many codes from one file, but they must be\n"
+ "separated, e.g. by a newline.\n\n");
printf(
"Usage:\n"
"\t-f path - Path to the file with base64 code\n"
@@ -148,32 +148,31 @@
"\t--dtls-protocol=0 - Use this option if you know that the Mbed TLS library\n"
"\t has been compiled without the MBEDTLS_SSL_PROTO_DTLS flag\n"
"\n"
- );
+ );
}
-void printf_dbg( const char *str, ... )
+void printf_dbg(const char *str, ...)
{
- if( debug )
- {
+ if (debug) {
va_list args;
- va_start( args, str );
- printf( "debug: " );
- vprintf( str, args );
- fflush( stdout );
- va_end( args );
+ va_start(args, str);
+ printf("debug: ");
+ vprintf(str, args);
+ fflush(stdout);
+ va_end(args);
}
}
-MBEDTLS_PRINTF_ATTRIBUTE( 1, 2 )
-void printf_err( const char *str, ... )
+MBEDTLS_PRINTF_ATTRIBUTE(1, 2)
+void printf_err(const char *str, ...)
{
va_list args;
- va_start( args, str );
- fflush( stdout );
- fprintf( stderr, "ERROR: " );
- vfprintf( stderr, str, args );
- fflush( stderr );
- va_end( args );
+ va_start(args, str);
+ fflush(stdout);
+ fprintf(stderr, "ERROR: ");
+ vfprintf(stderr, str, args);
+ fflush(stderr);
+ va_end(args);
}
/*
@@ -181,70 +180,51 @@
*/
void error_exit()
{
- if( NULL != b64_file )
- {
- fclose( b64_file );
+ if (NULL != b64_file) {
+ fclose(b64_file);
}
- exit( -1 );
+ exit(-1);
}
/*
* This function takes the input arguments of this program
*/
-void parse_arguments( int argc, char *argv[] )
+void parse_arguments(int argc, char *argv[])
{
int i = 1;
- if( argc < 2 )
- {
+ if (argc < 2) {
print_usage();
error_exit();
}
- while( i < argc )
- {
- if( strcmp( argv[i], "-d" ) == 0 )
- {
+ while (i < argc) {
+ if (strcmp(argv[i], "-d") == 0) {
debug = 1;
- }
- else if( strcmp( argv[i], "-h" ) == 0 )
- {
+ } else if (strcmp(argv[i], "-h") == 0) {
print_usage();
- }
- else if( strcmp( argv[i], "-v" ) == 0 )
- {
+ } else if (strcmp(argv[i], "-v") == 0) {
print_version();
- }
- else if( strcmp( argv[i], "-f" ) == 0 )
- {
- if( ++i >= argc )
- {
- printf_err( "File path is empty\n" );
+ } else if (strcmp(argv[i], "-f") == 0) {
+ if (++i >= argc) {
+ printf_err("File path is empty\n");
error_exit();
}
- if( NULL != b64_file )
- {
- printf_err( "Cannot specify more than one file with -f\n" );
- error_exit( );
- }
-
- if( ( b64_file = fopen( argv[i], "r" )) == NULL )
- {
- printf_err( "Cannot find file \"%s\"\n", argv[i] );
+ if (NULL != b64_file) {
+ printf_err("Cannot specify more than one file with -f\n");
error_exit();
}
- }
- else if( strcmp( argv[i], "--keep-peer-cert=0" ) == 0 )
- {
+
+ if ((b64_file = fopen(argv[i], "r")) == NULL) {
+ printf_err("Cannot find file \"%s\"\n", argv[i]);
+ error_exit();
+ }
+ } else if (strcmp(argv[i], "--keep-peer-cert=0") == 0) {
conf_keep_peer_certificate = 0;
- }
- else if( strcmp( argv[i], "--dtls-protocol=0" ) == 0 )
- {
+ } else if (strcmp(argv[i], "--dtls-protocol=0") == 0) {
conf_dtls_proto = 0;
- }
- else
- {
+ } else {
print_usage();
error_exit();
}
@@ -256,22 +236,20 @@
/*
* This function prints base64 code to the stdout
*/
-void print_b64( const uint8_t *b, size_t len )
+void print_b64(const uint8_t *b, size_t len)
{
size_t i = 0;
const uint8_t *end = b + len;
printf("\t");
- while( b < end )
- {
- if( ++i > 75 )
- {
- printf( "\n\t" );
+ while (b < end) {
+ if (++i > 75) {
+ printf("\n\t");
i = 0;
}
- printf( "%c", *b++ );
+ printf("%c", *b++);
}
- printf( "\n" );
- fflush( stdout );
+ printf("\n");
+ fflush(stdout);
}
/*
@@ -282,25 +260,22 @@
* /p in_line number of bytes in one line
* /p prefix prefix for the new lines
*/
-void print_hex( const uint8_t *b, size_t len,
- const size_t in_line, const char *prefix )
+void print_hex(const uint8_t *b, size_t len,
+ const size_t in_line, const char *prefix)
{
size_t i = 0;
const uint8_t *end = b + len;
- if( prefix == NULL )
- {
+ if (prefix == NULL) {
prefix = "";
}
- while( b < end )
- {
- if( ++i > in_line )
- {
- printf( "\n%s", prefix );
+ while (b < end) {
+ if (++i > in_line) {
+ printf("\n%s", prefix);
i = 1;
}
- printf( "%02X ", (uint8_t) *b++ );
+ printf("%02X ", (uint8_t) *b++);
}
printf("\n");
fflush(stdout);
@@ -309,53 +284,48 @@
/*
* Print the value of time_t in format e.g. 2020-01-23 13:05:59
*/
-void print_time( const uint64_t *time )
+void print_time(const uint64_t *time)
{
#if defined(MBEDTLS_HAVE_TIME)
char buf[20];
- struct tm *t = gmtime( (time_t*) time );
+ struct tm *t = gmtime((time_t *) time);
static const char format[] = "%Y-%m-%d %H:%M:%S";
- if( NULL != t )
- {
- strftime( buf, sizeof( buf ), format, t );
- printf( "%s\n", buf );
- }
- else
- {
- printf( "unknown\n" );
+ if (NULL != t) {
+ strftime(buf, sizeof(buf), format, t);
+ printf("%s\n", buf);
+ } else {
+ printf("unknown\n");
}
#else
(void) time;
- printf( "not supported\n" );
+ printf("not supported\n");
#endif
}
/*
* Print the input string if the bit is set in the value
*/
-void print_if_bit( const char *str, int bit, int val )
+void print_if_bit(const char *str, int bit, int val)
{
- if( bit & val )
- {
- printf( "\t%s\n", str );
+ if (bit & val) {
+ printf("\t%s\n", str);
}
}
/*
* Return pointer to hardcoded "enabled" or "disabled" depending on the input value
*/
-const char * get_enabled_str( int is_en )
+const char *get_enabled_str(int is_en)
{
- return ( is_en ) ? "enabled" : "disabled";
+ return (is_en) ? "enabled" : "disabled";
}
/*
* Return pointer to hardcoded MFL string value depending on the MFL code at the input
*/
-const char * get_mfl_str( int mfl_code )
+const char *get_mfl_str(int mfl_code)
{
- switch( mfl_code )
- {
+ switch (mfl_code) {
case MBEDTLS_SSL_MAX_FRAG_LEN_NONE:
return "none";
case MBEDTLS_SSL_MAX_FRAG_LEN_512:
@@ -386,125 +356,95 @@
* \retval number of bytes written in to the b64 buffer or 0 in case no more
* data was found
*/
-size_t read_next_b64_code( uint8_t **b64, size_t *max_len )
+size_t read_next_b64_code(uint8_t **b64, size_t *max_len)
{
int valid_balance = 0; /* balance between valid and invalid characters */
size_t len = 0;
char pad = 0;
int c = 0;
- while( EOF != c )
- {
+ while (EOF != c) {
char c_valid = 0;
- c = fgetc( b64_file );
+ c = fgetc(b64_file);
- if( pad > 0 )
- {
- if( c == '=' && pad == 1 )
- {
+ if (pad > 0) {
+ if (c == '=' && pad == 1) {
c_valid = 1;
pad = 2;
}
- }
- else if( ( c >= 'A' && c <= 'Z' ) ||
- ( c >= 'a' && c <= 'z' ) ||
- ( c >= '0' && c <= '9' ) ||
- c == '+' || c == '/' )
- {
+ } else if ((c >= 'A' && c <= 'Z') ||
+ (c >= 'a' && c <= 'z') ||
+ (c >= '0' && c <= '9') ||
+ c == '+' || c == '/') {
c_valid = 1;
- }
- else if( c == '=' )
- {
+ } else if (c == '=') {
c_valid = 1;
pad = 1;
- }
- else if( c == '-' )
- {
+ } else if (c == '-') {
c = '+';
c_valid = 1;
- }
- else if( c == '_' )
- {
+ } else if (c == '_') {
c = '/';
c_valid = 1;
}
- if( c_valid )
- {
+ if (c_valid) {
/* A string of characters that could be a base64 code. */
valid_balance++;
- if( len < *max_len )
- {
- ( *b64 )[ len++ ] = c;
- }
- else if( *max_len < MAX_BASE64_LEN )
- {
+ if (len < *max_len) {
+ (*b64)[len++] = c;
+ } else if (*max_len < MAX_BASE64_LEN) {
/* Current buffer is too small, but can be resized. */
void *ptr;
- size_t new_size = ( MAX_BASE64_LEN - 4096 > *max_len ) ?
+ size_t new_size = (MAX_BASE64_LEN - 4096 > *max_len) ?
*max_len + 4096 : MAX_BASE64_LEN;
- ptr = realloc( *b64, new_size );
- if( NULL == ptr )
- {
- printf_err( alloc_err );
+ ptr = realloc(*b64, new_size);
+ if (NULL == ptr) {
+ printf_err(alloc_err);
return 0;
}
*b64 = ptr;
*max_len = new_size;
- ( *b64 )[ len++ ] = c;
- }
- else
- {
+ (*b64)[len++] = c;
+ } else {
/* Too much data so it will be treated as invalid */
len++;
}
- }
- else if( len > 0 )
- {
+ } else if (len > 0) {
/* End of a string that could be a base64 code, but need to check
* that the length of the characters is correct. */
valid_balance--;
- if( len < MIN_CONTEXT_LEN )
- {
- printf_dbg( "The code found is too small to be a SSL context.\n" );
+ if (len < MIN_CONTEXT_LEN) {
+ printf_dbg("The code found is too small to be a SSL context.\n");
len = pad = 0;
- }
- else if( len > *max_len )
- {
- printf_err( "The code found is too large by %" MBEDTLS_PRINTF_SIZET " bytes.\n",
- len - *max_len );
+ } else if (len > *max_len) {
+ printf_err("The code found is too large by %" MBEDTLS_PRINTF_SIZET " bytes.\n",
+ len - *max_len);
len = pad = 0;
- }
- else if( len % 4 != 0 )
- {
- printf_err( "The length of the base64 code found should be a multiple of 4.\n" );
+ } else if (len % 4 != 0) {
+ printf_err("The length of the base64 code found should be a multiple of 4.\n");
len = pad = 0;
- }
- else
- {
+ } else {
/* Base64 code with valid character length. */
return len;
}
- }
- else
- {
+ } else {
valid_balance--;
}
/* Detection of potentially wrong file format like: binary, zip, ISO, etc. */
- if( valid_balance < -100 )
- {
- printf_err( "Too many bad symbols detected. File check aborted.\n" );
+ if (valid_balance < -100) {
+ printf_err("Too many bad symbols detected. File check aborted.\n");
return 0;
}
}
- printf_dbg( "End of file\n" );
+ printf_dbg("End of file\n");
return 0;
}
@@ -515,53 +455,45 @@
*
* /p ssl pointer to serialized certificate
* /p len number of bytes in the buffer
-*/
-void print_deserialized_ssl_cert( const uint8_t *ssl, uint32_t len )
+ */
+void print_deserialized_ssl_cert(const uint8_t *ssl, uint32_t len)
{
enum { STRLEN = 4096 };
mbedtls_x509_crt crt;
int ret;
char str[STRLEN];
- printf( "\nCertificate:\n" );
+ printf("\nCertificate:\n");
- mbedtls_x509_crt_init( &crt );
- ret = mbedtls_x509_crt_parse_der( &crt, ssl, len );
- if( 0 != ret )
- {
- mbedtls_strerror( ret, str, STRLEN );
- printf_err( "Invalid format of X.509 - %s\n", str );
- printf( "Cannot deserialize:\n\t" );
- print_hex( ssl, len, 25, "\t" );
- }
- else
- {
+ mbedtls_x509_crt_init(&crt);
+ ret = mbedtls_x509_crt_parse_der(&crt, ssl, len);
+ if (0 != ret) {
+ mbedtls_strerror(ret, str, STRLEN);
+ printf_err("Invalid format of X.509 - %s\n", str);
+ printf("Cannot deserialize:\n\t");
+ print_hex(ssl, len, 25, "\t");
+ } else {
mbedtls_x509_crt *current = &crt;
- while( current != NULL )
- {
- ret = mbedtls_x509_crt_info( str, STRLEN, "\t", current );
- if( 0 > ret )
- {
- mbedtls_strerror( ret, str, STRLEN );
- printf_err( "Cannot write to the output - %s\n", str );
- }
- else
- {
- printf( "%s", str );
+ while (current != NULL) {
+ ret = mbedtls_x509_crt_info(str, STRLEN, "\t", current);
+ if (0 > ret) {
+ mbedtls_strerror(ret, str, STRLEN);
+ printf_err("Cannot write to the output - %s\n", str);
+ } else {
+ printf("%s", str);
}
current = current->next;
- if( current )
- {
- printf( "\n" );
+ if (current) {
+ printf("\n");
}
}
}
- mbedtls_x509_crt_free( &crt );
+ mbedtls_x509_crt_free(&crt);
}
#endif /* !MBEDTLS_X509_REMOVE_INFO */
@@ -590,226 +522,202 @@
* /p len number of bytes in the buffer
* /p session_cfg_flag session configuration flags
*/
-void print_deserialized_ssl_session( const uint8_t *ssl, uint32_t len,
- int session_cfg_flag )
+void print_deserialized_ssl_session(const uint8_t *ssl, uint32_t len,
+ int session_cfg_flag)
{
- const struct mbedtls_ssl_ciphersuite_t * ciphersuite_info;
+ const struct mbedtls_ssl_ciphersuite_t *ciphersuite_info;
int ciphersuite_id;
uint32_t cert_len, ticket_len;
uint32_t verify_result, ticket_lifetime;
const uint8_t *end = ssl + len;
- printf( "\nSession info:\n" );
+ printf("\nSession info:\n");
- if( session_cfg_flag & SESSION_CONFIG_TIME_BIT )
- {
+ if (session_cfg_flag & SESSION_CONFIG_TIME_BIT) {
uint64_t start;
- CHECK_SSL_END( 8 );
- start = ( (uint64_t) ssl[0] << 56 ) |
- ( (uint64_t) ssl[1] << 48 ) |
- ( (uint64_t) ssl[2] << 40 ) |
- ( (uint64_t) ssl[3] << 32 ) |
- ( (uint64_t) ssl[4] << 24 ) |
- ( (uint64_t) ssl[5] << 16 ) |
- ( (uint64_t) ssl[6] << 8 ) |
- ( (uint64_t) ssl[7] );
+ CHECK_SSL_END(8);
+ start = ((uint64_t) ssl[0] << 56) |
+ ((uint64_t) ssl[1] << 48) |
+ ((uint64_t) ssl[2] << 40) |
+ ((uint64_t) ssl[3] << 32) |
+ ((uint64_t) ssl[4] << 24) |
+ ((uint64_t) ssl[5] << 16) |
+ ((uint64_t) ssl[6] << 8) |
+ ((uint64_t) ssl[7]);
ssl += 8;
- printf( "\tstart time : " );
- print_time( &start );
+ printf("\tstart time : ");
+ print_time(&start);
}
- CHECK_SSL_END( 2 );
- ciphersuite_id = ( (int) ssl[0] << 8 ) | (int) ssl[1];
- printf_dbg( "Ciphersuite ID: %d\n", ciphersuite_id );
+ CHECK_SSL_END(2);
+ ciphersuite_id = ((int) ssl[0] << 8) | (int) ssl[1];
+ printf_dbg("Ciphersuite ID: %d\n", ciphersuite_id);
ssl += 2;
- ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( ciphersuite_id );
- if( ciphersuite_info == NULL )
- {
- printf_err( "Cannot find ciphersuite info\n" );
- }
- else
- {
+ ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(ciphersuite_id);
+ if (ciphersuite_info == NULL) {
+ printf_err("Cannot find ciphersuite info\n");
+ } else {
const mbedtls_cipher_info_t *cipher_info;
#if defined(MBEDTLS_MD_C)
const mbedtls_md_info_t *md_info;
#endif
- printf( "\tciphersuite : %s\n", ciphersuite_info->name );
- printf( "\tcipher flags : 0x%02X\n", ciphersuite_info->flags );
+ printf("\tciphersuite : %s\n", ciphersuite_info->name);
+ printf("\tcipher flags : 0x%02X\n", ciphersuite_info->flags);
- cipher_info = mbedtls_cipher_info_from_type( ciphersuite_info->cipher );
- if( cipher_info == NULL )
- {
- printf_err( "Cannot find cipher info\n" );
- }
- else
- {
- printf( "\tcipher : %s\n", cipher_info->name );
+ cipher_info = mbedtls_cipher_info_from_type(ciphersuite_info->cipher);
+ if (cipher_info == NULL) {
+ printf_err("Cannot find cipher info\n");
+ } else {
+ printf("\tcipher : %s\n", cipher_info->name);
}
#if defined(MBEDTLS_MD_C)
- md_info = mbedtls_md_info_from_type( ciphersuite_info->mac );
- if( md_info == NULL )
- {
- printf_err( "Cannot find Message-Digest info\n" );
- }
- else
- {
- printf( "\tMessage-Digest : %s\n", mbedtls_md_get_name( md_info ) );
+ md_info = mbedtls_md_info_from_type(ciphersuite_info->mac);
+ if (md_info == NULL) {
+ printf_err("Cannot find Message-Digest info\n");
+ } else {
+ printf("\tMessage-Digest : %s\n", mbedtls_md_get_name(md_info));
}
#endif /* MBEDTLS_MD_C */
}
- CHECK_SSL_END( 1 );
- printf( "\tcompression : %s\n", get_enabled_str( *ssl++ ) );
+ CHECK_SSL_END(1);
+ printf("\tcompression : %s\n", get_enabled_str(*ssl++));
/* Note - Here we can get session ID length from serialized data, but we
* use hardcoded 32-bytes length. This approach was taken from
* 'mbedtls_ssl_session_load()'. */
- CHECK_SSL_END( 1 + 32 );
- printf_dbg( "Session id length: %u\n", (uint32_t) *ssl++ );
- printf( "\tsession ID : ");
- print_hex( ssl, 32, 16, "\t " );
+ CHECK_SSL_END(1 + 32);
+ printf_dbg("Session id length: %u\n", (uint32_t) *ssl++);
+ printf("\tsession ID : ");
+ print_hex(ssl, 32, 16, "\t ");
ssl += 32;
- printf( "\tmaster secret : ");
- CHECK_SSL_END( 48 );
- print_hex( ssl, 48, 16, "\t " );
+ printf("\tmaster secret : ");
+ CHECK_SSL_END(48);
+ print_hex(ssl, 48, 16, "\t ");
ssl += 48;
- CHECK_SSL_END( 4 );
- verify_result = ( (uint32_t) ssl[0] << 24 ) |
- ( (uint32_t) ssl[1] << 16 ) |
- ( (uint32_t) ssl[2] << 8 ) |
- ( (uint32_t) ssl[3] );
+ CHECK_SSL_END(4);
+ verify_result = ((uint32_t) ssl[0] << 24) |
+ ((uint32_t) ssl[1] << 16) |
+ ((uint32_t) ssl[2] << 8) |
+ ((uint32_t) ssl[3]);
ssl += 4;
- printf( "\tverify result : 0x%08X\n", verify_result );
+ printf("\tverify result : 0x%08X\n", verify_result);
- if( SESSION_CONFIG_CRT_BIT & session_cfg_flag )
- {
- if( conf_keep_peer_certificate )
- {
- CHECK_SSL_END( 3 );
- cert_len = ( (uint32_t) ssl[0] << 16 ) |
- ( (uint32_t) ssl[1] << 8 ) |
- ( (uint32_t) ssl[2] );
+ if (SESSION_CONFIG_CRT_BIT & session_cfg_flag) {
+ if (conf_keep_peer_certificate) {
+ CHECK_SSL_END(3);
+ cert_len = ((uint32_t) ssl[0] << 16) |
+ ((uint32_t) ssl[1] << 8) |
+ ((uint32_t) ssl[2]);
ssl += 3;
- printf_dbg( "Certificate length: %u\n", cert_len );
+ printf_dbg("Certificate length: %u\n", cert_len);
- if( cert_len > 0 )
- {
- CHECK_SSL_END( cert_len );
+ if (cert_len > 0) {
+ CHECK_SSL_END(cert_len);
#if !defined(MBEDTLS_X509_REMOVE_INFO)
- print_deserialized_ssl_cert( ssl, cert_len );
+ print_deserialized_ssl_cert(ssl, cert_len);
#endif
ssl += cert_len;
}
- }
- else
- {
- printf( "\tPeer digest : " );
+ } else {
+ printf("\tPeer digest : ");
- CHECK_SSL_END( 1 );
- switch( (mbedtls_md_type_t) *ssl++ )
- {
+ CHECK_SSL_END(1);
+ switch ((mbedtls_md_type_t) *ssl++) {
case MBEDTLS_MD_NONE:
- printf( "none\n" );
+ printf("none\n");
break;
case MBEDTLS_MD_MD5:
- printf( "MD5\n" );
+ printf("MD5\n");
break;
case MBEDTLS_MD_SHA1:
- printf( "SHA1\n" );
+ printf("SHA1\n");
break;
case MBEDTLS_MD_SHA224:
- printf( "SHA224\n" );
+ printf("SHA224\n");
break;
case MBEDTLS_MD_SHA256:
- printf( "SHA256\n" );
+ printf("SHA256\n");
break;
case MBEDTLS_MD_SHA384:
- printf( "SHA384\n" );
+ printf("SHA384\n");
break;
case MBEDTLS_MD_SHA512:
- printf( "SHA512\n" );
+ printf("SHA512\n");
break;
case MBEDTLS_MD_RIPEMD160:
- printf( "RIPEMD160\n" );
+ printf("RIPEMD160\n");
break;
default:
- printf( "undefined or erroneous\n" );
+ printf("undefined or erroneous\n");
break;
}
- CHECK_SSL_END( 1 );
+ CHECK_SSL_END(1);
cert_len = (uint32_t) *ssl++;
- printf_dbg( "Message-Digest length: %u\n", cert_len );
+ printf_dbg("Message-Digest length: %u\n", cert_len);
- if( cert_len > 0 )
- {
- printf( "\tPeer digest cert : " );
- CHECK_SSL_END( cert_len );
- print_hex( ssl, cert_len, 16, "\t " );
+ if (cert_len > 0) {
+ printf("\tPeer digest cert : ");
+ CHECK_SSL_END(cert_len);
+ print_hex(ssl, cert_len, 16, "\t ");
ssl += cert_len;
}
}
}
- if( SESSION_CONFIG_CLIENT_TICKET_BIT & session_cfg_flag )
- {
- printf( "\nTicket:\n" );
+ if (SESSION_CONFIG_CLIENT_TICKET_BIT & session_cfg_flag) {
+ printf("\nTicket:\n");
- CHECK_SSL_END( 3 );
- ticket_len = ( (uint32_t) ssl[0] << 16 ) |
- ( (uint32_t) ssl[1] << 8 ) |
- ( (uint32_t) ssl[2] );
+ CHECK_SSL_END(3);
+ ticket_len = ((uint32_t) ssl[0] << 16) |
+ ((uint32_t) ssl[1] << 8) |
+ ((uint32_t) ssl[2]);
ssl += 3;
- printf_dbg( "Ticket length: %u\n", ticket_len );
+ printf_dbg("Ticket length: %u\n", ticket_len);
- if( ticket_len > 0 )
- {
- printf( "\t" );
- CHECK_SSL_END( ticket_len );
- print_hex( ssl, ticket_len, 22, "\t" );
+ if (ticket_len > 0) {
+ printf("\t");
+ CHECK_SSL_END(ticket_len);
+ print_hex(ssl, ticket_len, 22, "\t");
ssl += ticket_len;
- printf( "\n" );
+ printf("\n");
}
- CHECK_SSL_END( 4 );
- ticket_lifetime = ( (uint32_t) ssl[0] << 24 ) |
- ( (uint32_t) ssl[1] << 16 ) |
- ( (uint32_t) ssl[2] << 8 ) |
- ( (uint32_t) ssl[3] );
+ CHECK_SSL_END(4);
+ ticket_lifetime = ((uint32_t) ssl[0] << 24) |
+ ((uint32_t) ssl[1] << 16) |
+ ((uint32_t) ssl[2] << 8) |
+ ((uint32_t) ssl[3]);
ssl += 4;
- printf( "\tlifetime : %u sec.\n", ticket_lifetime );
+ printf("\tlifetime : %u sec.\n", ticket_lifetime);
}
- if( ssl < end )
- {
- printf( "\nSession others:\n" );
+ if (ssl < end) {
+ printf("\nSession others:\n");
}
- if( SESSION_CONFIG_MFL_BIT & session_cfg_flag )
- {
- CHECK_SSL_END( 1 );
- printf( "\tMFL : %s\n", get_mfl_str( *ssl++ ) );
+ if (SESSION_CONFIG_MFL_BIT & session_cfg_flag) {
+ CHECK_SSL_END(1);
+ printf("\tMFL : %s\n", get_mfl_str(*ssl++));
}
- if( SESSION_CONFIG_TRUNC_HMAC_BIT & session_cfg_flag )
- {
- CHECK_SSL_END( 1 );
- printf( "\tnegotiate truncated HMAC : %s\n", get_enabled_str( *ssl++ ) );
+ if (SESSION_CONFIG_TRUNC_HMAC_BIT & session_cfg_flag) {
+ CHECK_SSL_END(1);
+ printf("\tnegotiate truncated HMAC : %s\n", get_enabled_str(*ssl++));
}
- if( SESSION_CONFIG_ETM_BIT & session_cfg_flag )
- {
- CHECK_SSL_END( 1 );
- printf( "\tEncrypt-then-MAC : %s\n", get_enabled_str( *ssl++ ) );
+ if (SESSION_CONFIG_ETM_BIT & session_cfg_flag) {
+ CHECK_SSL_END(1);
+ printf("\tEncrypt-then-MAC : %s\n", get_enabled_str(*ssl++));
}
- if( 0 != ( end - ssl ) )
- {
- printf_err( "%i bytes left to analyze from session\n", (int32_t)( end - ssl ) );
+ if (0 != (end - ssl)) {
+ printf_err("%i bytes left to analyze from session\n", (int32_t) (end - ssl));
}
}
@@ -846,187 +754,175 @@
* /p ssl pointer to serialized session
* /p len number of bytes in the buffer
*/
-void print_deserialized_ssl_context( const uint8_t *ssl, size_t len )
+void print_deserialized_ssl_context(const uint8_t *ssl, size_t len)
{
const uint8_t *end = ssl + len;
uint32_t session_len;
int session_cfg_flag;
int context_cfg_flag;
- printf( "\nMbed TLS version:\n" );
+ printf("\nMbed TLS version:\n");
- CHECK_SSL_END( 3 + 2 + 3 );
+ CHECK_SSL_END(3 + 2 + 3);
- printf( "\tmajor %u\n", (uint32_t) *ssl++ );
- printf( "\tminor %u\n", (uint32_t) *ssl++ );
- printf( "\tpath %u\n", (uint32_t) *ssl++ );
+ printf("\tmajor %u\n", (uint32_t) *ssl++);
+ printf("\tminor %u\n", (uint32_t) *ssl++);
+ printf("\tpath %u\n", (uint32_t) *ssl++);
- printf( "\nEnabled session and context configuration:\n" );
+ printf("\nEnabled session and context configuration:\n");
- session_cfg_flag = ( (int) ssl[0] << 8 ) | ( (int) ssl[1] );
+ session_cfg_flag = ((int) ssl[0] << 8) | ((int) ssl[1]);
ssl += 2;
- context_cfg_flag = ( (int) ssl[0] << 16 ) |
- ( (int) ssl[1] << 8 ) |
- ( (int) ssl[2] ) ;
+ context_cfg_flag = ((int) ssl[0] << 16) |
+ ((int) ssl[1] << 8) |
+ ((int) ssl[2]);
ssl += 3;
- printf_dbg( "Session config flags 0x%04X\n", session_cfg_flag );
- printf_dbg( "Context config flags 0x%06X\n", context_cfg_flag );
+ printf_dbg("Session config flags 0x%04X\n", session_cfg_flag);
+ printf_dbg("Context config flags 0x%06X\n", context_cfg_flag);
- print_if_bit( "MBEDTLS_HAVE_TIME", SESSION_CONFIG_TIME_BIT, session_cfg_flag );
- print_if_bit( "MBEDTLS_X509_CRT_PARSE_C", SESSION_CONFIG_CRT_BIT, session_cfg_flag );
- print_if_bit( "MBEDTLS_SSL_MAX_FRAGMENT_LENGTH", SESSION_CONFIG_MFL_BIT, session_cfg_flag );
- print_if_bit( "MBEDTLS_SSL_ENCRYPT_THEN_MAC", SESSION_CONFIG_ETM_BIT, session_cfg_flag );
- print_if_bit( "MBEDTLS_SSL_SESSION_TICKETS", SESSION_CONFIG_TICKET_BIT, session_cfg_flag );
- print_if_bit( "MBEDTLS_SSL_SESSION_TICKETS and client", SESSION_CONFIG_CLIENT_TICKET_BIT, session_cfg_flag );
+ print_if_bit("MBEDTLS_HAVE_TIME", SESSION_CONFIG_TIME_BIT, session_cfg_flag);
+ print_if_bit("MBEDTLS_X509_CRT_PARSE_C", SESSION_CONFIG_CRT_BIT, session_cfg_flag);
+ print_if_bit("MBEDTLS_SSL_MAX_FRAGMENT_LENGTH", SESSION_CONFIG_MFL_BIT, session_cfg_flag);
+ print_if_bit("MBEDTLS_SSL_ENCRYPT_THEN_MAC", SESSION_CONFIG_ETM_BIT, session_cfg_flag);
+ print_if_bit("MBEDTLS_SSL_SESSION_TICKETS", SESSION_CONFIG_TICKET_BIT, session_cfg_flag);
+ print_if_bit("MBEDTLS_SSL_SESSION_TICKETS and client",
+ SESSION_CONFIG_CLIENT_TICKET_BIT,
+ session_cfg_flag);
- print_if_bit( "MBEDTLS_SSL_DTLS_CONNECTION_ID", CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT, context_cfg_flag );
- print_if_bit( "MBEDTLS_SSL_DTLS_ANTI_REPLAY", CONTEXT_CONFIG_DTLS_ANTI_REPLAY_BIT, context_cfg_flag );
- print_if_bit( "MBEDTLS_SSL_ALPN", CONTEXT_CONFIG_ALPN_BIT, context_cfg_flag );
+ print_if_bit("MBEDTLS_SSL_DTLS_CONNECTION_ID",
+ CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT,
+ context_cfg_flag);
+ print_if_bit("MBEDTLS_SSL_DTLS_ANTI_REPLAY",
+ CONTEXT_CONFIG_DTLS_ANTI_REPLAY_BIT,
+ context_cfg_flag);
+ print_if_bit("MBEDTLS_SSL_ALPN", CONTEXT_CONFIG_ALPN_BIT, context_cfg_flag);
- CHECK_SSL_END( 4 );
- session_len = ( (uint32_t) ssl[0] << 24 ) |
- ( (uint32_t) ssl[1] << 16 ) |
- ( (uint32_t) ssl[2] << 8 ) |
- ( (uint32_t) ssl[3] );
+ CHECK_SSL_END(4);
+ session_len = ((uint32_t) ssl[0] << 24) |
+ ((uint32_t) ssl[1] << 16) |
+ ((uint32_t) ssl[2] << 8) |
+ ((uint32_t) ssl[3]);
ssl += 4;
- printf_dbg( "Session length %u\n", session_len );
+ printf_dbg("Session length %u\n", session_len);
- CHECK_SSL_END( session_len );
- print_deserialized_ssl_session( ssl, session_len, session_cfg_flag );
+ CHECK_SSL_END(session_len);
+ print_deserialized_ssl_session(ssl, session_len, session_cfg_flag);
ssl += session_len;
- printf( "\nRandom bytes:\n\t");
+ printf("\nRandom bytes:\n\t");
- CHECK_SSL_END( TRANSFORM_RANDBYTE_LEN );
- print_hex( ssl, TRANSFORM_RANDBYTE_LEN, 22, "\t" );
+ CHECK_SSL_END(TRANSFORM_RANDBYTE_LEN);
+ print_hex(ssl, TRANSFORM_RANDBYTE_LEN, 22, "\t");
ssl += TRANSFORM_RANDBYTE_LEN;
- printf( "\nContext others:\n" );
+ printf("\nContext others:\n");
- if( CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT & context_cfg_flag )
- {
+ if (CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT & context_cfg_flag) {
uint8_t cid_len;
- CHECK_SSL_END( 1 );
+ CHECK_SSL_END(1);
cid_len = *ssl++;
- printf_dbg( "In CID length %u\n", (uint32_t) cid_len );
+ printf_dbg("In CID length %u\n", (uint32_t) cid_len);
- printf( "\tin CID : " );
- if( cid_len > 0 )
- {
- CHECK_SSL_END( cid_len );
- print_hex( ssl, cid_len, 20, "\t" );
+ printf("\tin CID : ");
+ if (cid_len > 0) {
+ CHECK_SSL_END(cid_len);
+ print_hex(ssl, cid_len, 20, "\t");
ssl += cid_len;
- }
- else
- {
- printf( "none\n" );
+ } else {
+ printf("none\n");
}
- CHECK_SSL_END( 1 );
+ CHECK_SSL_END(1);
cid_len = *ssl++;
- printf_dbg( "Out CID length %u\n", (uint32_t) cid_len );
+ printf_dbg("Out CID length %u\n", (uint32_t) cid_len);
- printf( "\tout CID : " );
- if( cid_len > 0 )
- {
- CHECK_SSL_END( cid_len );
- print_hex( ssl, cid_len, 20, "\t" );
+ printf("\tout CID : ");
+ if (cid_len > 0) {
+ CHECK_SSL_END(cid_len);
+ print_hex(ssl, cid_len, 20, "\t");
ssl += cid_len;
- }
- else
- {
- printf( "none\n" );
+ } else {
+ printf("none\n");
}
}
- if( CONTEXT_CONFIG_DTLS_BADMAC_LIMIT_BIT & context_cfg_flag )
- {
+ if (CONTEXT_CONFIG_DTLS_BADMAC_LIMIT_BIT & context_cfg_flag) {
uint32_t badmac_seen;
- CHECK_SSL_END( 4 );
- badmac_seen = ( (uint32_t) ssl[0] << 24 ) |
- ( (uint32_t) ssl[1] << 16 ) |
- ( (uint32_t) ssl[2] << 8 ) |
- ( (uint32_t) ssl[3] );
+ CHECK_SSL_END(4);
+ badmac_seen = ((uint32_t) ssl[0] << 24) |
+ ((uint32_t) ssl[1] << 16) |
+ ((uint32_t) ssl[2] << 8) |
+ ((uint32_t) ssl[3]);
ssl += 4;
- printf( "\tbad MAC seen number : %u\n", badmac_seen );
+ printf("\tbad MAC seen number : %u\n", badmac_seen);
/* value 'in_window_top' from mbedtls_ssl_context */
- printf( "\tlast validated record sequence no. : " );
- CHECK_SSL_END( 8 );
- print_hex( ssl, 8, 20, "" );
+ printf("\tlast validated record sequence no. : ");
+ CHECK_SSL_END(8);
+ print_hex(ssl, 8, 20, "");
ssl += 8;
/* value 'in_window' from mbedtls_ssl_context */
- printf( "\tbitmask for replay detection : " );
- CHECK_SSL_END( 8 );
- print_hex( ssl, 8, 20, "" );
+ printf("\tbitmask for replay detection : ");
+ CHECK_SSL_END(8);
+ print_hex(ssl, 8, 20, "");
ssl += 8;
}
- if( conf_dtls_proto )
- {
- CHECK_SSL_END( 1 );
- printf( "\tDTLS datagram packing : %s\n",
- get_enabled_str( ! ( *ssl++ ) ) );
+ if (conf_dtls_proto) {
+ CHECK_SSL_END(1);
+ printf("\tDTLS datagram packing : %s\n",
+ get_enabled_str(!(*ssl++)));
}
/* value 'cur_out_ctr' from mbedtls_ssl_context */
- printf( "\toutgoing record sequence no. : ");
- CHECK_SSL_END( 8 );
- print_hex( ssl, 8, 20, "" );
+ printf("\toutgoing record sequence no. : ");
+ CHECK_SSL_END(8);
+ print_hex(ssl, 8, 20, "");
ssl += 8;
- if( conf_dtls_proto )
- {
+ if (conf_dtls_proto) {
uint16_t mtu;
- CHECK_SSL_END( 2 );
- mtu = ( ssl[0] << 8 ) | ssl[1];
+ CHECK_SSL_END(2);
+ mtu = (ssl[0] << 8) | ssl[1];
ssl += 2;
- printf( "\tMTU : %u\n", mtu );
+ printf("\tMTU : %u\n", mtu);
}
- if( CONTEXT_CONFIG_ALPN_BIT & context_cfg_flag )
- {
+ if (CONTEXT_CONFIG_ALPN_BIT & context_cfg_flag) {
uint8_t alpn_len;
- CHECK_SSL_END( 1 );
+ CHECK_SSL_END(1);
alpn_len = *ssl++;
- printf_dbg( "ALPN length %u\n", (uint32_t) alpn_len );
+ printf_dbg("ALPN length %u\n", (uint32_t) alpn_len);
- printf( "\tALPN negotiation : " );
- CHECK_SSL_END( alpn_len );
- if( alpn_len > 0 )
- {
- if( strlen( (const char*) ssl ) == alpn_len )
- {
- printf( "%s\n", ssl );
- }
- else
- {
- printf( "\n" );
- printf_err( "\tALPN negotiation is incorrect\n" );
+ printf("\tALPN negotiation : ");
+ CHECK_SSL_END(alpn_len);
+ if (alpn_len > 0) {
+ if (strlen((const char *) ssl) == alpn_len) {
+ printf("%s\n", ssl);
+ } else {
+ printf("\n");
+ printf_err("\tALPN negotiation is incorrect\n");
}
ssl += alpn_len;
- }
- else
- {
- printf( "not selected\n" );
+ } else {
+ printf("not selected\n");
}
}
- if( 0 != ( end - ssl ) )
- {
- printf_err( "%i bytes left to analyze from context\n", (int32_t)( end - ssl ) );
+ if (0 != (end - ssl)) {
+ printf_err("%i bytes left to analyze from context\n", (int32_t) (end - ssl));
}
- printf( "\n" );
+ printf("\n");
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
enum { SSL_INIT_LEN = 4096 };
@@ -1037,39 +933,33 @@
size_t ssl_max_len = SSL_INIT_LEN;
size_t ssl_len = 0;
- /* The 'b64_file' is opened when parsing arguments to check that the
- * file name is correct */
- parse_arguments( argc, argv );
+ /* The 'b64_file' is opened when parsing arguments to check that the
+ * file name is correct */
+ parse_arguments(argc, argv);
- if( NULL != b64_file )
- {
- b64_buf = malloc( SSL_INIT_LEN );
- ssl_buf = malloc( SSL_INIT_LEN );
+ if (NULL != b64_file) {
+ b64_buf = malloc(SSL_INIT_LEN);
+ ssl_buf = malloc(SSL_INIT_LEN);
- if( NULL == b64_buf || NULL == ssl_buf )
- {
- printf_err( alloc_err );
- fclose( b64_file );
+ if (NULL == b64_buf || NULL == ssl_buf) {
+ printf_err(alloc_err);
+ fclose(b64_file);
b64_file = NULL;
}
}
- while( NULL != b64_file )
- {
- size_t b64_len = read_next_b64_code( &b64_buf, &b64_max_len );
- if( b64_len > 0)
- {
+ while (NULL != b64_file) {
+ size_t b64_len = read_next_b64_code(&b64_buf, &b64_max_len);
+ if (b64_len > 0) {
int ret;
size_t ssl_required_len = b64_len * 3 / 4 + 1;
/* Allocate more memory if necessary. */
- if( ssl_required_len > ssl_max_len )
- {
- void *ptr = realloc( ssl_buf, ssl_required_len );
- if( NULL == ptr )
- {
- printf_err( alloc_err );
- fclose( b64_file );
+ if (ssl_required_len > ssl_max_len) {
+ void *ptr = realloc(ssl_buf, ssl_required_len);
+ if (NULL == ptr) {
+ printf_err(alloc_err);
+ fclose(b64_file);
b64_file = NULL;
break;
}
@@ -1077,45 +967,38 @@
ssl_max_len = ssl_required_len;
}
- printf( "\nDeserializing number %u:\n", ++b64_counter );
+ printf("\nDeserializing number %u:\n", ++b64_counter);
- printf( "\nBase64 code:\n" );
- print_b64( b64_buf, b64_len );
+ printf("\nBase64 code:\n");
+ print_b64(b64_buf, b64_len);
- ret = mbedtls_base64_decode( ssl_buf, ssl_max_len, &ssl_len, b64_buf, b64_len );
- if( ret != 0)
- {
- mbedtls_strerror( ret, (char*) b64_buf, b64_max_len );
- printf_err( "base64 code cannot be decoded - %s\n", b64_buf );
+ ret = mbedtls_base64_decode(ssl_buf, ssl_max_len, &ssl_len, b64_buf, b64_len);
+ if (ret != 0) {
+ mbedtls_strerror(ret, (char *) b64_buf, b64_max_len);
+ printf_err("base64 code cannot be decoded - %s\n", b64_buf);
continue;
}
- if( debug )
- {
- printf( "\nDecoded data in hex:\n\t");
- print_hex( ssl_buf, ssl_len, 25, "\t" );
+ if (debug) {
+ printf("\nDecoded data in hex:\n\t");
+ print_hex(ssl_buf, ssl_len, 25, "\t");
}
- print_deserialized_ssl_context( ssl_buf, ssl_len );
+ print_deserialized_ssl_context(ssl_buf, ssl_len);
- }
- else
- {
- fclose( b64_file );
+ } else {
+ fclose(b64_file);
b64_file = NULL;
}
}
- free( b64_buf );
- free( ssl_buf );
+ free(b64_buf);
+ free(ssl_buf);
- if( b64_counter > 0 )
- {
- printf_dbg( "Finished. Found %u base64 codes\n", b64_counter );
- }
- else
- {
- printf( "Finished. No valid base64 code found\n" );
+ if (b64_counter > 0) {
+ printf_dbg("Finished. Found %u base64 codes\n", b64_counter);
+ } else {
+ printf("Finished. No valid base64 code found\n");
}
return 0;
diff --git a/programs/ssl/ssl_fork_server.c b/programs/ssl/ssl_fork_server.c
index 49de984..7ee880d 100644
--- a/programs/ssl/ssl_fork_server.c
+++ b/programs/ssl/ssl_fork_server.c
@@ -27,24 +27,24 @@
!defined(MBEDTLS_CTR_DRBG_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \
!defined(MBEDTLS_TIMING_C) || !defined(MBEDTLS_FS_IO) || \
!defined(MBEDTLS_PEM_PARSE_C)
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
((void) argc);
((void) argv);
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C "
- "and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or "
- "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C and/or "
- "MBEDTLS_TIMING_C and/or MBEDTLS_PEM_PARSE_C not defined.\n");
- mbedtls_exit( 0 );
+ "and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or "
+ "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
+ "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C and/or "
+ "MBEDTLS_TIMING_C and/or MBEDTLS_PEM_PARSE_C not defined.\n");
+ mbedtls_exit(0);
}
#elif defined(_WIN32)
-int main( void )
+int main(void)
{
mbedtls_printf("_WIN32 defined. This application requires fork() and signals "
- "to work correctly.\n");
- mbedtls_exit( 0 );
+ "to work correctly.\n");
+ mbedtls_exit(0);
}
#else
@@ -71,17 +71,17 @@
#define DEBUG_LEVEL 0
-static void my_debug( void *ctx, int level,
- const char *file, int line,
- const char *str )
+static void my_debug(void *ctx, int level,
+ const char *file, int line,
+ const char *str)
{
((void) level);
- mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
- fflush( (FILE *) ctx );
+ mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str);
+ fflush((FILE *) ctx);
}
-int main( void )
+int main(void)
{
int ret = 1, len, cnt = 0, pid;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -96,127 +96,118 @@
mbedtls_x509_crt srvcert;
mbedtls_pk_context pkey;
- mbedtls_net_init( &listen_fd );
- mbedtls_net_init( &client_fd );
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- mbedtls_entropy_init( &entropy );
- mbedtls_pk_init( &pkey );
- mbedtls_x509_crt_init( &srvcert );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_net_init(&listen_fd);
+ mbedtls_net_init(&client_fd);
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
+ mbedtls_entropy_init(&entropy);
+ mbedtls_pk_init(&pkey);
+ mbedtls_x509_crt_init(&srvcert);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
- signal( SIGCHLD, SIG_IGN );
+ signal(SIGCHLD, SIG_IGN);
/*
* 0. Initial seeding of the RNG
*/
- mbedtls_printf( "\n . Initial seeding of the random generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Initial seeding of the random generator...");
+ fflush(stdout);
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed! mbedtls_ctr_drbg_seed returned %d\n\n", ret );
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed! mbedtls_ctr_drbg_seed returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1. Load the certificates and private RSA key
*/
- mbedtls_printf( " . Loading the server cert. and key..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the server cert. and key...");
+ fflush(stdout);
/*
* This demonstration program uses embedded test certificates.
* Instead, you may want to use mbedtls_x509_crt_parse_file() to read the
* server and CA certificates, as well as mbedtls_pk_parse_keyfile().
*/
- ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_srv_crt,
- mbedtls_test_srv_crt_len );
- if( ret != 0 )
- {
- mbedtls_printf( " failed! mbedtls_x509_crt_parse returned %d\n\n", ret );
+ ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_srv_crt,
+ mbedtls_test_srv_crt_len);
+ if (ret != 0) {
+ mbedtls_printf(" failed! mbedtls_x509_crt_parse returned %d\n\n", ret);
goto exit;
}
- ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_cas_pem,
- mbedtls_test_cas_pem_len );
- if( ret != 0 )
- {
- mbedtls_printf( " failed! mbedtls_x509_crt_parse returned %d\n\n", ret );
+ ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_cas_pem,
+ mbedtls_test_cas_pem_len);
+ if (ret != 0) {
+ mbedtls_printf(" failed! mbedtls_x509_crt_parse returned %d\n\n", ret);
goto exit;
}
- ret = mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_srv_key,
- mbedtls_test_srv_key_len, NULL, 0,
- mbedtls_ctr_drbg_random, &ctr_drbg );
- if( ret != 0 )
- {
- mbedtls_printf( " failed! mbedtls_pk_parse_key returned %d\n\n", ret );
+ ret = mbedtls_pk_parse_key(&pkey, (const unsigned char *) mbedtls_test_srv_key,
+ mbedtls_test_srv_key_len, NULL, 0,
+ mbedtls_ctr_drbg_random, &ctr_drbg);
+ if (ret != 0) {
+ mbedtls_printf(" failed! mbedtls_pk_parse_key returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1b. Prepare SSL configuration
*/
- mbedtls_printf( " . Configuring SSL..." );
- fflush( stdout );
+ mbedtls_printf(" . Configuring SSL...");
+ fflush(stdout);
- if( ( ret = mbedtls_ssl_config_defaults( &conf,
- MBEDTLS_SSL_IS_SERVER,
- MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 )
- {
- mbedtls_printf( " failed! mbedtls_ssl_config_defaults returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_config_defaults(&conf,
+ MBEDTLS_SSL_IS_SERVER,
+ MBEDTLS_SSL_TRANSPORT_STREAM,
+ MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
+ mbedtls_printf(" failed! mbedtls_ssl_config_defaults returned %d\n\n", ret);
goto exit;
}
- mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg );
- mbedtls_ssl_conf_dbg( &conf, my_debug, stdout );
+ mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg);
+ mbedtls_ssl_conf_dbg(&conf, my_debug, stdout);
- mbedtls_ssl_conf_ca_chain( &conf, srvcert.next, NULL );
- if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &srvcert, &pkey ) ) != 0 )
- {
- mbedtls_printf( " failed! mbedtls_ssl_conf_own_cert returned %d\n\n", ret );
+ mbedtls_ssl_conf_ca_chain(&conf, srvcert.next, NULL);
+ if ((ret = mbedtls_ssl_conf_own_cert(&conf, &srvcert, &pkey)) != 0) {
+ mbedtls_printf(" failed! mbedtls_ssl_conf_own_cert returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 2. Setup the listening TCP socket
*/
- mbedtls_printf( " . Bind on https://localhost:4433/ ..." );
- fflush( stdout );
+ mbedtls_printf(" . Bind on https://localhost:4433/ ...");
+ fflush(stdout);
- if( ( ret = mbedtls_net_bind( &listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP ) ) != 0 )
- {
- mbedtls_printf( " failed! mbedtls_net_bind returned %d\n\n", ret );
+ if ((ret = mbedtls_net_bind(&listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP)) != 0) {
+ mbedtls_printf(" failed! mbedtls_net_bind returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
- while( 1 )
- {
+ while (1) {
/*
* 3. Wait until a client connects
*/
- mbedtls_net_init( &client_fd );
- mbedtls_ssl_init( &ssl );
+ mbedtls_net_init(&client_fd);
+ mbedtls_ssl_init(&ssl);
- mbedtls_printf( " . Waiting for a remote connection ...\n" );
- fflush( stdout );
+ mbedtls_printf(" . Waiting for a remote connection ...\n");
+ fflush(stdout);
- if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd,
- NULL, 0, NULL ) ) != 0 )
- {
- mbedtls_printf( " failed! mbedtls_net_accept returned %d\n\n", ret );
+ if ((ret = mbedtls_net_accept(&listen_fd, &client_fd,
+ NULL, 0, NULL)) != 0) {
+ mbedtls_printf(" failed! mbedtls_net_accept returned %d\n\n", ret);
goto exit;
}
@@ -224,113 +215,104 @@
* 3.5. Forking server thread
*/
- mbedtls_printf( " . Forking to handle connection ..." );
- fflush( stdout );
+ mbedtls_printf(" . Forking to handle connection ...");
+ fflush(stdout);
pid = fork();
- if( pid < 0 )
- {
- mbedtls_printf(" failed! fork returned %d\n\n", pid );
+ if (pid < 0) {
+ mbedtls_printf(" failed! fork returned %d\n\n", pid);
goto exit;
}
- if( pid != 0 )
- {
- mbedtls_printf( " ok\n" );
- mbedtls_net_close( &client_fd );
+ if (pid != 0) {
+ mbedtls_printf(" ok\n");
+ mbedtls_net_close(&client_fd);
- if( ( ret = mbedtls_ctr_drbg_reseed( &ctr_drbg,
- (const unsigned char *) "parent",
- 6 ) ) != 0 )
- {
- mbedtls_printf( " failed! mbedtls_ctr_drbg_reseed returned %d\n\n", ret );
+ if ((ret = mbedtls_ctr_drbg_reseed(&ctr_drbg,
+ (const unsigned char *) "parent",
+ 6)) != 0) {
+ mbedtls_printf(" failed! mbedtls_ctr_drbg_reseed returned %d\n\n", ret);
goto exit;
}
continue;
}
- mbedtls_net_close( &listen_fd );
+ mbedtls_net_close(&listen_fd);
pid = getpid();
/*
* 4. Setup stuff
*/
- mbedtls_printf( "pid %d: Setting up the SSL data.\n", pid );
- fflush( stdout );
+ mbedtls_printf("pid %d: Setting up the SSL data.\n", pid);
+ fflush(stdout);
- if( ( ret = mbedtls_ctr_drbg_reseed( &ctr_drbg,
- (const unsigned char *) "child",
- 5 ) ) != 0 )
- {
+ if ((ret = mbedtls_ctr_drbg_reseed(&ctr_drbg,
+ (const unsigned char *) "child",
+ 5)) != 0) {
mbedtls_printf(
- "pid %d: SSL setup failed! mbedtls_ctr_drbg_reseed returned %d\n\n",
- pid, ret );
+ "pid %d: SSL setup failed! mbedtls_ctr_drbg_reseed returned %d\n\n",
+ pid, ret);
goto exit;
}
- if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 )
- {
+ if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) {
mbedtls_printf(
- "pid %d: SSL setup failed! mbedtls_ssl_setup returned %d\n\n",
- pid, ret );
+ "pid %d: SSL setup failed! mbedtls_ssl_setup returned %d\n\n",
+ pid, ret);
goto exit;
}
- mbedtls_ssl_set_bio( &ssl, &client_fd, mbedtls_net_send, mbedtls_net_recv, NULL );
+ mbedtls_ssl_set_bio(&ssl, &client_fd, mbedtls_net_send, mbedtls_net_recv, NULL);
- mbedtls_printf( "pid %d: SSL setup ok\n", pid );
+ mbedtls_printf("pid %d: SSL setup ok\n", pid);
/*
* 5. Handshake
*/
- mbedtls_printf( "pid %d: Performing the SSL/TLS handshake.\n", pid );
- fflush( stdout );
+ mbedtls_printf("pid %d: Performing the SSL/TLS handshake.\n", pid);
+ fflush(stdout);
- while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
+ while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
mbedtls_printf(
- "pid %d: SSL handshake failed! mbedtls_ssl_handshake returned %d\n\n",
- pid, ret );
+ "pid %d: SSL handshake failed! mbedtls_ssl_handshake returned %d\n\n",
+ pid, ret);
goto exit;
}
}
- mbedtls_printf( "pid %d: SSL handshake ok\n", pid );
+ mbedtls_printf("pid %d: SSL handshake ok\n", pid);
/*
* 6. Read the HTTP Request
*/
- mbedtls_printf( "pid %d: Start reading from client.\n", pid );
- fflush( stdout );
+ mbedtls_printf("pid %d: Start reading from client.\n", pid);
+ fflush(stdout);
- do
- {
- len = sizeof( buf ) - 1;
- memset( buf, 0, sizeof( buf ) );
- ret = mbedtls_ssl_read( &ssl, buf, len );
+ do {
+ len = sizeof(buf) - 1;
+ memset(buf, 0, sizeof(buf));
+ ret = mbedtls_ssl_read(&ssl, buf, len);
- if( ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE )
+ if (ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE) {
continue;
+ }
- if( ret <= 0 )
- {
- switch( ret )
- {
+ if (ret <= 0) {
+ switch (ret) {
case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY:
- mbedtls_printf( "pid %d: connection was closed gracefully\n", pid );
+ mbedtls_printf("pid %d: connection was closed gracefully\n", pid);
break;
case MBEDTLS_ERR_NET_CONN_RESET:
- mbedtls_printf( "pid %d: connection was reset by peer\n", pid );
+ mbedtls_printf("pid %d: connection was reset by peer\n", pid);
break;
default:
- mbedtls_printf( "pid %d: mbedtls_ssl_read returned %d\n", pid, ret );
+ mbedtls_printf("pid %d: mbedtls_ssl_read returned %d\n", pid, ret);
break;
}
@@ -338,65 +320,61 @@
}
len = ret;
- mbedtls_printf( "pid %d: %d bytes read\n\n%s", pid, len, (char *) buf );
+ mbedtls_printf("pid %d: %d bytes read\n\n%s", pid, len, (char *) buf);
- if( ret > 0 )
+ if (ret > 0) {
break;
- }
- while( 1 );
+ }
+ } while (1);
/*
* 7. Write the 200 Response
*/
- mbedtls_printf( "pid %d: Start writing to client.\n", pid );
- fflush( stdout );
+ mbedtls_printf("pid %d: Start writing to client.\n", pid);
+ fflush(stdout);
- len = sprintf( (char *) buf, HTTP_RESPONSE,
- mbedtls_ssl_get_ciphersuite( &ssl ) );
+ len = sprintf((char *) buf, HTTP_RESPONSE,
+ mbedtls_ssl_get_ciphersuite(&ssl));
- while( cnt++ < 100 )
- {
- while( ( ret = mbedtls_ssl_write( &ssl, buf, len ) ) <= 0 )
- {
- if( ret == MBEDTLS_ERR_NET_CONN_RESET )
- {
+ while (cnt++ < 100) {
+ while ((ret = mbedtls_ssl_write(&ssl, buf, len)) <= 0) {
+ if (ret == MBEDTLS_ERR_NET_CONN_RESET) {
mbedtls_printf(
- "pid %d: Write failed! peer closed the connection\n\n", pid );
+ "pid %d: Write failed! peer closed the connection\n\n", pid);
goto exit;
}
- if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
mbedtls_printf(
- "pid %d: Write failed! mbedtls_ssl_write returned %d\n\n",
- pid, ret );
+ "pid %d: Write failed! mbedtls_ssl_write returned %d\n\n",
+ pid, ret);
goto exit;
}
}
len = ret;
- mbedtls_printf( "pid %d: %d bytes written\n\n%s\n", pid, len, (char *) buf );
+ mbedtls_printf("pid %d: %d bytes written\n\n%s\n", pid, len, (char *) buf);
- mbedtls_net_usleep( 1000000 );
+ mbedtls_net_usleep(1000000);
}
- mbedtls_ssl_close_notify( &ssl );
+ mbedtls_ssl_close_notify(&ssl);
goto exit;
}
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_net_free( &client_fd );
- mbedtls_net_free( &listen_fd );
+ mbedtls_net_free(&client_fd);
+ mbedtls_net_free(&listen_fd);
- mbedtls_x509_crt_free( &srvcert );
- mbedtls_pk_free( &pkey );
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_x509_crt_free(&srvcert);
+ mbedtls_pk_free(&pkey);
+ mbedtls_ssl_free(&ssl);
+ mbedtls_ssl_config_free(&conf);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C &&
MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_SRV_C && MBEDTLS_NET_C &&
diff --git a/programs/ssl/ssl_mail_client.c b/programs/ssl/ssl_mail_client.c
index 9fb6507..4e54be8 100644
--- a/programs/ssl/ssl_mail_client.c
+++ b/programs/ssl/ssl_mail_client.c
@@ -33,14 +33,14 @@
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_CTR_DRBG_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \
!defined(MBEDTLS_FS_IO)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C and/or "
- "MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_CLI_C and/or "
- "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C "
- "not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_CLI_C and/or "
+ "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
+ "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C "
+ "not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -96,7 +96,8 @@
#define USAGE_AUTH \
" authentication=%%d default: 0 (disabled)\n" \
" user_name=%%s default: \"" DFL_USER_NAME "\"\n" \
- " user_pwd=%%s default: \"" DFL_USER_PWD "\"\n"
+ " user_pwd=%%s default: \"" \
+ DFL_USER_PWD "\"\n"
#else
#define USAGE_AUTH \
" authentication options disabled. (Require MBEDTLS_BASE64_C)\n"
@@ -116,9 +117,10 @@
"\n usage: ssl_mail_client param=<>...\n" \
"\n acceptable parameters:\n" \
" server_name=%%s default: " DFL_SERVER_NAME "\n" \
- " server_port=%%d default: " DFL_SERVER_PORT "\n" \
- " debug_level=%%d default: 0 (disabled)\n" \
- " mode=%%d default: 0 (SSL/TLS) (1 for STARTTLS)\n" \
+ " server_port=%%d default: " \
+ DFL_SERVER_PORT "\n" \
+ " debug_level=%%d default: 0 (disabled)\n" \
+ " mode=%%d default: 0 (SSL/TLS) (1 for STARTTLS)\n" \
USAGE_AUTH \
" mail_from=%%s default: \"\"\n" \
" mail_to=%%s default: \"\"\n" \
@@ -130,8 +132,7 @@
/*
* global options
*/
-struct options
-{
+struct options {
const char *server_name; /* hostname of the server (client only) */
const char *server_port; /* port on which the ssl service runs */
int debug_level; /* level of debugging */
@@ -147,17 +148,17 @@
int force_ciphersuite[2]; /* protocol/ciphersuite to use, or all */
} opt;
-static void my_debug( void *ctx, int level,
- const char *file, int line,
- const char *str )
+static void my_debug(void *ctx, int level,
+ const char *file, int line,
+ const char *str)
{
((void) level);
- mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
- fflush( (FILE *) ctx );
+ mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str);
+ fflush((FILE *) ctx);
}
-static int do_handshake( mbedtls_ssl_context *ssl )
+static int do_handshake(mbedtls_ssl_context *ssl)
{
int ret;
uint32_t flags;
@@ -167,75 +168,70 @@
/*
* 4. Handshake
*/
- mbedtls_printf( " . Performing the SSL/TLS handshake..." );
- fflush( stdout );
+ mbedtls_printf(" . Performing the SSL/TLS handshake...");
+ fflush(stdout);
- while( ( ret = mbedtls_ssl_handshake( ssl ) ) != 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
+ while ((ret = mbedtls_ssl_handshake(ssl)) != 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
#if defined(MBEDTLS_ERROR_C)
- mbedtls_strerror( ret, (char *) buf, 1024 );
+ mbedtls_strerror(ret, (char *) buf, 1024);
#endif
- mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned %d: %s\n\n", ret, buf );
- return( -1 );
- }
- }
-
- mbedtls_printf( " ok\n [ Ciphersuite is %s ]\n",
- mbedtls_ssl_get_ciphersuite( ssl ) );
-
- /*
- * 5. Verify the server certificate
- */
- mbedtls_printf( " . Verifying peer X.509 certificate..." );
-
- /* In real life, we probably want to bail out when ret != 0 */
- if( ( flags = mbedtls_ssl_get_verify_result( ssl ) ) != 0 )
- {
-#if !defined(MBEDTLS_X509_REMOVE_INFO)
- char vrfy_buf[512];
-#endif
-
- mbedtls_printf( " failed\n" );
-
-#if !defined(MBEDTLS_X509_REMOVE_INFO)
- mbedtls_x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ), " ! ", flags );
-
- mbedtls_printf( "%s\n", vrfy_buf );
-#endif
- }
- else
- mbedtls_printf( " ok\n" );
-
-#if !defined(MBEDTLS_X509_REMOVE_INFO)
- mbedtls_printf( " . Peer certificate information ...\n" );
- mbedtls_x509_crt_info( (char *) buf, sizeof( buf ) - 1, " ",
- mbedtls_ssl_get_peer_cert( ssl ) );
- mbedtls_printf( "%s\n", buf );
-#endif
-
- return( 0 );
-}
-
-static int write_ssl_data( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len )
-{
- int ret;
-
- mbedtls_printf("\n%s", buf);
- while( len && ( ret = mbedtls_ssl_write( ssl, buf, len ) ) <= 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret );
+ mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned %d: %s\n\n", ret, buf);
return -1;
}
}
- return( 0 );
+ mbedtls_printf(" ok\n [ Ciphersuite is %s ]\n",
+ mbedtls_ssl_get_ciphersuite(ssl));
+
+ /*
+ * 5. Verify the server certificate
+ */
+ mbedtls_printf(" . Verifying peer X.509 certificate...");
+
+ /* In real life, we probably want to bail out when ret != 0 */
+ if ((flags = mbedtls_ssl_get_verify_result(ssl)) != 0) {
+#if !defined(MBEDTLS_X509_REMOVE_INFO)
+ char vrfy_buf[512];
+#endif
+
+ mbedtls_printf(" failed\n");
+
+#if !defined(MBEDTLS_X509_REMOVE_INFO)
+ mbedtls_x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), " ! ", flags);
+
+ mbedtls_printf("%s\n", vrfy_buf);
+#endif
+ } else {
+ mbedtls_printf(" ok\n");
+ }
+
+#if !defined(MBEDTLS_X509_REMOVE_INFO)
+ mbedtls_printf(" . Peer certificate information ...\n");
+ mbedtls_x509_crt_info((char *) buf, sizeof(buf) - 1, " ",
+ mbedtls_ssl_get_peer_cert(ssl));
+ mbedtls_printf("%s\n", buf);
+#endif
+
+ return 0;
}
-static int write_ssl_and_get_response( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len )
+static int write_ssl_data(mbedtls_ssl_context *ssl, unsigned char *buf, size_t len)
+{
+ int ret;
+
+ mbedtls_printf("\n%s", buf);
+ while (len && (ret = mbedtls_ssl_write(ssl, buf, len)) <= 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret);
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+static int write_ssl_and_get_response(mbedtls_ssl_context *ssl, unsigned char *buf, size_t len)
{
int ret;
unsigned char data[128];
@@ -243,57 +239,52 @@
size_t i, idx = 0;
mbedtls_printf("\n%s", buf);
- while( len && ( ret = mbedtls_ssl_write( ssl, buf, len ) ) <= 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret );
+ while (len && (ret = mbedtls_ssl_write(ssl, buf, len)) <= 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret);
return -1;
}
}
- do
- {
- len = sizeof( data ) - 1;
- memset( data, 0, sizeof( data ) );
- ret = mbedtls_ssl_read( ssl, data, len );
+ do {
+ len = sizeof(data) - 1;
+ memset(data, 0, sizeof(data));
+ ret = mbedtls_ssl_read(ssl, data, len);
- if( ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE )
+ if (ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE) {
continue;
+ }
- if( ret == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY )
+ if (ret == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY) {
return -1;
+ }
- if( ret <= 0 )
- {
- mbedtls_printf( "failed\n ! mbedtls_ssl_read returned %d\n\n", ret );
+ if (ret <= 0) {
+ mbedtls_printf("failed\n ! mbedtls_ssl_read returned %d\n\n", ret);
return -1;
}
mbedtls_printf("\n%s", data);
len = ret;
- for( i = 0; i < len; i++ )
- {
- if( data[i] != '\n' )
- {
- if( idx < 4 )
- code[ idx++ ] = data[i];
+ for (i = 0; i < len; i++) {
+ if (data[i] != '\n') {
+ if (idx < 4) {
+ code[idx++] = data[i];
+ }
continue;
}
- if( idx == 4 && code[0] >= '0' && code[0] <= '9' && code[3] == ' ' )
- {
+ if (idx == 4 && code[0] >= '0' && code[0] <= '9' && code[3] == ' ') {
code[3] = '\0';
- return atoi( code );
+ return atoi(code);
}
idx = 0;
}
- }
- while( 1 );
+ } while (1);
}
-static int write_and_get_response( mbedtls_net_context *sock_fd, unsigned char *buf, size_t len )
+static int write_and_get_response(mbedtls_net_context *sock_fd, unsigned char *buf, size_t len)
{
int ret;
unsigned char data[128];
@@ -301,49 +292,43 @@
size_t i, idx = 0;
mbedtls_printf("\n%s", buf);
- if( len && ( ret = mbedtls_net_send( sock_fd, buf, len ) ) <= 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_send returned %d\n\n", ret );
- return -1;
+ if (len && (ret = mbedtls_net_send(sock_fd, buf, len)) <= 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_send returned %d\n\n", ret);
+ return -1;
}
- do
- {
- len = sizeof( data ) - 1;
- memset( data, 0, sizeof( data ) );
- ret = mbedtls_net_recv( sock_fd, data, len );
+ do {
+ len = sizeof(data) - 1;
+ memset(data, 0, sizeof(data));
+ ret = mbedtls_net_recv(sock_fd, data, len);
- if( ret <= 0 )
- {
- mbedtls_printf( "failed\n ! mbedtls_net_recv returned %d\n\n", ret );
+ if (ret <= 0) {
+ mbedtls_printf("failed\n ! mbedtls_net_recv returned %d\n\n", ret);
return -1;
}
data[len] = '\0';
mbedtls_printf("\n%s", data);
len = ret;
- for( i = 0; i < len; i++ )
- {
- if( data[i] != '\n' )
- {
- if( idx < 4 )
- code[ idx++ ] = data[i];
+ for (i = 0; i < len; i++) {
+ if (data[i] != '\n') {
+ if (idx < 4) {
+ code[idx++] = data[i];
+ }
continue;
}
- if( idx == 4 && code[0] >= '0' && code[0] <= '9' && code[3] == ' ' )
- {
+ if (idx == 4 && code[0] >= '0' && code[0] <= '9' && code[3] == ' ') {
code[3] = '\0';
- return atoi( code );
+ return atoi(code);
}
idx = 0;
}
- }
- while( 1 );
+ } while (1);
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1, len;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -354,7 +339,7 @@
* "%s\r\n". Hence, the size of buf should be at least the size of base
* plus 2 bytes for the \r and \n characters.
*/
- unsigned char buf[sizeof( base ) + 2];
+ unsigned char buf[sizeof(base) + 2];
#else
unsigned char buf[1024];
#endif
@@ -376,24 +361,22 @@
/*
* Make sure memory references are valid in case we exit early.
*/
- mbedtls_net_init( &server_fd );
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- memset( &buf, 0, sizeof( buf ) );
- mbedtls_x509_crt_init( &cacert );
- mbedtls_x509_crt_init( &clicert );
- mbedtls_pk_init( &pkey );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_net_init(&server_fd);
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
+ memset(&buf, 0, sizeof(buf));
+ mbedtls_x509_crt_init(&cacert);
+ mbedtls_x509_crt_init(&clicert);
+ mbedtls_pk_init(&pkey);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
- if( argc == 0 )
- {
- usage:
- mbedtls_printf( USAGE );
+ if (argc == 0) {
+usage:
+ mbedtls_printf(USAGE);
list = mbedtls_ssl_list_ciphersuites();
- while( *list )
- {
- mbedtls_printf(" %s\n", mbedtls_ssl_get_ciphersuite_name( *list ) );
+ while (*list) {
+ mbedtls_printf(" %s\n", mbedtls_ssl_get_ciphersuite_name(*list));
list++;
}
mbedtls_printf("\n");
@@ -412,144 +395,141 @@
opt.ca_file = DFL_CA_FILE;
opt.crt_file = DFL_CRT_FILE;
opt.key_file = DFL_KEY_FILE;
- opt.force_ciphersuite[0]= DFL_FORCE_CIPHER;
+ opt.force_ciphersuite[0] = DFL_FORCE_CIPHER;
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
+ if ((q = strchr(p, '=')) == NULL) {
goto usage;
+ }
*q++ = '\0';
- if( strcmp( p, "server_name" ) == 0 )
+ if (strcmp(p, "server_name") == 0) {
opt.server_name = q;
- else if( strcmp( p, "server_port" ) == 0 )
+ } else if (strcmp(p, "server_port") == 0) {
opt.server_port = q;
- else if( strcmp( p, "debug_level" ) == 0 )
- {
- opt.debug_level = atoi( q );
- if( opt.debug_level < 0 || opt.debug_level > 65535 )
+ } else if (strcmp(p, "debug_level") == 0) {
+ opt.debug_level = atoi(q);
+ if (opt.debug_level < 0 || opt.debug_level > 65535) {
goto usage;
- }
- else if( strcmp( p, "authentication" ) == 0 )
- {
- opt.authentication = atoi( q );
- if( opt.authentication < 0 || opt.authentication > 1 )
+ }
+ } else if (strcmp(p, "authentication") == 0) {
+ opt.authentication = atoi(q);
+ if (opt.authentication < 0 || opt.authentication > 1) {
goto usage;
- }
- else if( strcmp( p, "mode" ) == 0 )
- {
- opt.mode = atoi( q );
- if( opt.mode < 0 || opt.mode > 1 )
+ }
+ } else if (strcmp(p, "mode") == 0) {
+ opt.mode = atoi(q);
+ if (opt.mode < 0 || opt.mode > 1) {
goto usage;
- }
- else if( strcmp( p, "user_name" ) == 0 )
+ }
+ } else if (strcmp(p, "user_name") == 0) {
opt.user_name = q;
- else if( strcmp( p, "user_pwd" ) == 0 )
+ } else if (strcmp(p, "user_pwd") == 0) {
opt.user_pwd = q;
- else if( strcmp( p, "mail_from" ) == 0 )
+ } else if (strcmp(p, "mail_from") == 0) {
opt.mail_from = q;
- else if( strcmp( p, "mail_to" ) == 0 )
+ } else if (strcmp(p, "mail_to") == 0) {
opt.mail_to = q;
- else if( strcmp( p, "ca_file" ) == 0 )
+ } else if (strcmp(p, "ca_file") == 0) {
opt.ca_file = q;
- else if( strcmp( p, "crt_file" ) == 0 )
+ } else if (strcmp(p, "crt_file") == 0) {
opt.crt_file = q;
- else if( strcmp( p, "key_file" ) == 0 )
+ } else if (strcmp(p, "key_file") == 0) {
opt.key_file = q;
- else if( strcmp( p, "force_ciphersuite" ) == 0 )
- {
+ } else if (strcmp(p, "force_ciphersuite") == 0) {
opt.force_ciphersuite[0] = -1;
- opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id( q );
+ opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id(q);
- if( opt.force_ciphersuite[0] <= 0 )
+ if (opt.force_ciphersuite[0] <= 0) {
goto usage;
+ }
opt.force_ciphersuite[1] = 0;
- }
- else
+ } else {
goto usage;
+ }
}
/*
* 0. Initialize the RNG and the session data
*/
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- mbedtls_entropy_init( &entropy );
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret );
+ mbedtls_entropy_init(&entropy);
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1.1. Load the trusted CA
*/
- mbedtls_printf( " . Loading the CA root certificate ..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the CA root certificate ...");
+ fflush(stdout);
#if defined(MBEDTLS_FS_IO)
- if( strlen( opt.ca_file ) )
- ret = mbedtls_x509_crt_parse_file( &cacert, opt.ca_file );
- else
+ if (strlen(opt.ca_file)) {
+ ret = mbedtls_x509_crt_parse_file(&cacert, opt.ca_file);
+ } else
#endif
#if defined(MBEDTLS_PEM_PARSE_C)
- ret = mbedtls_x509_crt_parse( &cacert, (const unsigned char *) mbedtls_test_cas_pem,
- mbedtls_test_cas_pem_len );
+ ret = mbedtls_x509_crt_parse(&cacert, (const unsigned char *) mbedtls_test_cas_pem,
+ mbedtls_test_cas_pem_len);
#else
{
mbedtls_printf("MBEDTLS_PEM_PARSE_C not defined.");
goto exit;
}
#endif
- if( ret < 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret );
+ if (ret < 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok (%d skipped)\n", ret );
+ mbedtls_printf(" ok (%d skipped)\n", ret);
/*
* 1.2. Load own certificate and private key
*
* (can be skipped if client authentication is not required)
*/
- mbedtls_printf( " . Loading the client cert. and key..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the client cert. and key...");
+ fflush(stdout);
#if defined(MBEDTLS_FS_IO)
- if( strlen( opt.crt_file ) )
- ret = mbedtls_x509_crt_parse_file( &clicert, opt.crt_file );
- else
+ if (strlen(opt.crt_file)) {
+ ret = mbedtls_x509_crt_parse_file(&clicert, opt.crt_file);
+ } else
#endif
- ret = mbedtls_x509_crt_parse( &clicert, (const unsigned char *) mbedtls_test_cli_crt,
- mbedtls_test_cli_crt_len );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret );
+ ret = mbedtls_x509_crt_parse(&clicert, (const unsigned char *) mbedtls_test_cli_crt,
+ mbedtls_test_cli_crt_len);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret);
goto exit;
}
#if defined(MBEDTLS_FS_IO)
- if( strlen( opt.key_file ) )
- {
- ret = mbedtls_pk_parse_keyfile( &pkey, opt.key_file, "",
- mbedtls_ctr_drbg_random, &ctr_drbg );
- }
- else
+ if (strlen(opt.key_file)) {
+ ret = mbedtls_pk_parse_keyfile(&pkey, opt.key_file, "",
+ mbedtls_ctr_drbg_random, &ctr_drbg);
+ } else
#endif
#if defined(MBEDTLS_PEM_PARSE_C)
{
- ret = mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_cli_key,
- mbedtls_test_cli_key_len, NULL, 0, mbedtls_ctr_drbg_random, &ctr_drbg );
+ ret = mbedtls_pk_parse_key(&pkey,
+ (const unsigned char *) mbedtls_test_cli_key,
+ mbedtls_test_cli_key_len,
+ NULL,
+ 0,
+ mbedtls_ctr_drbg_random,
+ &ctr_drbg);
}
#else
{
@@ -557,286 +537,267 @@
goto exit;
}
#endif
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 2. Start the connection
*/
- mbedtls_printf( " . Connecting to tcp/%s/%s...", opt.server_name,
- opt.server_port );
- fflush( stdout );
+ mbedtls_printf(" . Connecting to tcp/%s/%s...", opt.server_name,
+ opt.server_port);
+ fflush(stdout);
- if( ( ret = mbedtls_net_connect( &server_fd, opt.server_name,
- opt.server_port, MBEDTLS_NET_PROTO_TCP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_connect returned %d\n\n", ret );
+ if ((ret = mbedtls_net_connect(&server_fd, opt.server_name,
+ opt.server_port, MBEDTLS_NET_PROTO_TCP)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_connect returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 3. Setup stuff
*/
- mbedtls_printf( " . Setting up the SSL/TLS structure..." );
- fflush( stdout );
+ mbedtls_printf(" . Setting up the SSL/TLS structure...");
+ fflush(stdout);
- if( ( ret = mbedtls_ssl_config_defaults( &conf,
- MBEDTLS_SSL_IS_CLIENT,
- MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_config_defaults(&conf,
+ MBEDTLS_SSL_IS_CLIENT,
+ MBEDTLS_SSL_TRANSPORT_STREAM,
+ MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret);
goto exit;
}
/* OPTIONAL is not optimal for security,
* but makes interop easier in this simplified example */
- mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_OPTIONAL );
+ mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_OPTIONAL);
- mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg );
- mbedtls_ssl_conf_dbg( &conf, my_debug, stdout );
+ mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg);
+ mbedtls_ssl_conf_dbg(&conf, my_debug, stdout);
- if( opt.force_ciphersuite[0] != DFL_FORCE_CIPHER )
- mbedtls_ssl_conf_ciphersuites( &conf, opt.force_ciphersuite );
+ if (opt.force_ciphersuite[0] != DFL_FORCE_CIPHER) {
+ mbedtls_ssl_conf_ciphersuites(&conf, opt.force_ciphersuite);
+ }
- mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL );
- if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &clicert, &pkey ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret );
+ mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL);
+ if ((ret = mbedtls_ssl_conf_own_cert(&conf, &clicert, &pkey)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret);
goto exit;
}
- if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned %d\n\n", ret);
goto exit;
}
- if( ( ret = mbedtls_ssl_set_hostname( &ssl, opt.server_name ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_set_hostname(&ssl, opt.server_name)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret);
goto exit;
}
- mbedtls_ssl_set_bio( &ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL );
+ mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL);
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
- if( opt.mode == MODE_SSL_TLS )
- {
- if( do_handshake( &ssl ) != 0 )
- goto exit;
-
- mbedtls_printf( " > Get header from server:" );
- fflush( stdout );
-
- ret = write_ssl_and_get_response( &ssl, buf, 0 );
- if( ret < 200 || ret > 299 )
- {
- mbedtls_printf( " failed\n ! server responded with %d\n\n", ret );
+ if (opt.mode == MODE_SSL_TLS) {
+ if (do_handshake(&ssl) != 0) {
goto exit;
}
- mbedtls_printf(" ok\n" );
+ mbedtls_printf(" > Get header from server:");
+ fflush(stdout);
- mbedtls_printf( " > Write EHLO to server:" );
- fflush( stdout );
-
- gethostname( hostname, 32 );
- len = sprintf( (char *) buf, "EHLO %s\r\n", hostname );
- ret = write_ssl_and_get_response( &ssl, buf, len );
- if( ret < 200 || ret > 299 )
- {
- mbedtls_printf( " failed\n ! server responded with %d\n\n", ret );
- goto exit;
- }
- }
- else
- {
- mbedtls_printf( " > Get header from server:" );
- fflush( stdout );
-
- ret = write_and_get_response( &server_fd, buf, 0 );
- if( ret < 200 || ret > 299 )
- {
- mbedtls_printf( " failed\n ! server responded with %d\n\n", ret );
+ ret = write_ssl_and_get_response(&ssl, buf, 0);
+ if (ret < 200 || ret > 299) {
+ mbedtls_printf(" failed\n ! server responded with %d\n\n", ret);
goto exit;
}
- mbedtls_printf(" ok\n" );
+ mbedtls_printf(" ok\n");
- mbedtls_printf( " > Write EHLO to server:" );
- fflush( stdout );
+ mbedtls_printf(" > Write EHLO to server:");
+ fflush(stdout);
- gethostname( hostname, 32 );
- len = sprintf( (char *) buf, "EHLO %s\r\n", hostname );
- ret = write_and_get_response( &server_fd, buf, len );
- if( ret < 200 || ret > 299 )
- {
- mbedtls_printf( " failed\n ! server responded with %d\n\n", ret );
+ gethostname(hostname, 32);
+ len = sprintf((char *) buf, "EHLO %s\r\n", hostname);
+ ret = write_ssl_and_get_response(&ssl, buf, len);
+ if (ret < 200 || ret > 299) {
+ mbedtls_printf(" failed\n ! server responded with %d\n\n", ret);
+ goto exit;
+ }
+ } else {
+ mbedtls_printf(" > Get header from server:");
+ fflush(stdout);
+
+ ret = write_and_get_response(&server_fd, buf, 0);
+ if (ret < 200 || ret > 299) {
+ mbedtls_printf(" failed\n ! server responded with %d\n\n", ret);
goto exit;
}
- mbedtls_printf(" ok\n" );
+ mbedtls_printf(" ok\n");
- mbedtls_printf( " > Write STARTTLS to server:" );
- fflush( stdout );
+ mbedtls_printf(" > Write EHLO to server:");
+ fflush(stdout);
- gethostname( hostname, 32 );
- len = sprintf( (char *) buf, "STARTTLS\r\n" );
- ret = write_and_get_response( &server_fd, buf, len );
- if( ret < 200 || ret > 299 )
- {
- mbedtls_printf( " failed\n ! server responded with %d\n\n", ret );
+ gethostname(hostname, 32);
+ len = sprintf((char *) buf, "EHLO %s\r\n", hostname);
+ ret = write_and_get_response(&server_fd, buf, len);
+ if (ret < 200 || ret > 299) {
+ mbedtls_printf(" failed\n ! server responded with %d\n\n", ret);
goto exit;
}
- mbedtls_printf(" ok\n" );
+ mbedtls_printf(" ok\n");
- if( do_handshake( &ssl ) != 0 )
+ mbedtls_printf(" > Write STARTTLS to server:");
+ fflush(stdout);
+
+ gethostname(hostname, 32);
+ len = sprintf((char *) buf, "STARTTLS\r\n");
+ ret = write_and_get_response(&server_fd, buf, len);
+ if (ret < 200 || ret > 299) {
+ mbedtls_printf(" failed\n ! server responded with %d\n\n", ret);
goto exit;
+ }
+
+ mbedtls_printf(" ok\n");
+
+ if (do_handshake(&ssl) != 0) {
+ goto exit;
+ }
}
#if defined(MBEDTLS_BASE64_C)
- if( opt.authentication )
- {
- mbedtls_printf( " > Write AUTH LOGIN to server:" );
- fflush( stdout );
+ if (opt.authentication) {
+ mbedtls_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 )
- {
- mbedtls_printf( " failed\n ! server responded with %d\n\n", ret );
+ len = sprintf((char *) buf, "AUTH LOGIN\r\n");
+ ret = write_ssl_and_get_response(&ssl, buf, len);
+ if (ret < 200 || ret > 399) {
+ mbedtls_printf(" failed\n ! server responded with %d\n\n", ret);
goto exit;
}
- mbedtls_printf(" ok\n" );
+ mbedtls_printf(" ok\n");
- mbedtls_printf( " > Write username to server: %s", opt.user_name );
- fflush( stdout );
+ mbedtls_printf(" > Write username to server: %s", opt.user_name);
+ fflush(stdout);
- ret = mbedtls_base64_encode( base, sizeof( base ), &n, (const unsigned char *) opt.user_name,
- strlen( opt.user_name ) );
+ ret = mbedtls_base64_encode(base, sizeof(base), &n, (const unsigned char *) opt.user_name,
+ strlen(opt.user_name));
- if( ret != 0 ) {
- mbedtls_printf( " failed\n ! mbedtls_base64_encode returned %d\n\n", ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_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 )
- {
- mbedtls_printf( " failed\n ! server responded with %d\n\n", ret );
+ len = sprintf((char *) buf, "%s\r\n", base);
+ ret = write_ssl_and_get_response(&ssl, buf, len);
+ if (ret < 300 || ret > 399) {
+ mbedtls_printf(" failed\n ! server responded with %d\n\n", ret);
goto exit;
}
- mbedtls_printf(" ok\n" );
+ mbedtls_printf(" ok\n");
- mbedtls_printf( " > Write password to server: %s", opt.user_pwd );
- fflush( stdout );
+ mbedtls_printf(" > Write password to server: %s", opt.user_pwd);
+ fflush(stdout);
- ret = mbedtls_base64_encode( base, sizeof( base ), &n, (const unsigned char *) opt.user_pwd,
- strlen( opt.user_pwd ) );
+ ret = mbedtls_base64_encode(base, sizeof(base), &n, (const unsigned char *) opt.user_pwd,
+ strlen(opt.user_pwd));
- if( ret != 0 ) {
- mbedtls_printf( " failed\n ! mbedtls_base64_encode returned %d\n\n", ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_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 )
- {
- mbedtls_printf( " failed\n ! server responded with %d\n\n", ret );
+ len = sprintf((char *) buf, "%s\r\n", base);
+ ret = write_ssl_and_get_response(&ssl, buf, len);
+ if (ret < 200 || ret > 399) {
+ mbedtls_printf(" failed\n ! server responded with %d\n\n", ret);
goto exit;
}
- mbedtls_printf(" ok\n" );
+ mbedtls_printf(" ok\n");
}
#endif
- mbedtls_printf( " > Write MAIL FROM to server:" );
- fflush( stdout );
+ mbedtls_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 )
- {
- mbedtls_printf( " failed\n ! server responded with %d\n\n", ret );
+ 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) {
+ mbedtls_printf(" failed\n ! server responded with %d\n\n", ret);
goto exit;
}
- mbedtls_printf(" ok\n" );
+ mbedtls_printf(" ok\n");
- mbedtls_printf( " > Write RCPT TO to server:" );
- fflush( stdout );
+ mbedtls_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 )
- {
- mbedtls_printf( " failed\n ! server responded with %d\n\n", ret );
+ 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) {
+ mbedtls_printf(" failed\n ! server responded with %d\n\n", ret);
goto exit;
}
- mbedtls_printf(" ok\n" );
+ mbedtls_printf(" ok\n");
- mbedtls_printf( " > Write DATA to server:" );
- fflush( stdout );
+ mbedtls_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 )
- {
- mbedtls_printf( " failed\n ! server responded with %d\n\n", ret );
+ len = sprintf((char *) buf, "DATA\r\n");
+ ret = write_ssl_and_get_response(&ssl, buf, len);
+ if (ret < 300 || ret > 399) {
+ mbedtls_printf(" failed\n ! server responded with %d\n\n", ret);
goto exit;
}
- mbedtls_printf(" ok\n" );
+ mbedtls_printf(" ok\n");
- mbedtls_printf( " > Write content to server:" );
- fflush( stdout );
+ mbedtls_printf(" > Write content to server:");
+ fflush(stdout);
- len = sprintf( (char *) buf, "From: %s\r\nSubject: mbed TLS Test mail\r\n\r\n"
- "This is a simple test mail from the "
- "mbed TLS mail client example.\r\n"
- "\r\n"
- "Enjoy!", opt.mail_from );
- ret = write_ssl_data( &ssl, buf, len );
+ len = sprintf((char *) buf, "From: %s\r\nSubject: mbed TLS Test mail\r\n\r\n"
+ "This is a simple test mail from the "
+ "mbed TLS mail client example.\r\n"
+ "\r\n"
+ "Enjoy!", opt.mail_from);
+ ret = write_ssl_data(&ssl, buf, len);
- len = sprintf( (char *) buf, "\r\n.\r\n");
- ret = write_ssl_and_get_response( &ssl, buf, len );
- if( ret < 200 || ret > 299 )
- {
- mbedtls_printf( " failed\n ! server responded with %d\n\n", ret );
+ len = sprintf((char *) buf, "\r\n.\r\n");
+ ret = write_ssl_and_get_response(&ssl, buf, len);
+ if (ret < 200 || ret > 299) {
+ mbedtls_printf(" failed\n ! server responded with %d\n\n", ret);
goto exit;
}
- mbedtls_printf(" ok\n" );
+ mbedtls_printf(" ok\n");
- mbedtls_ssl_close_notify( &ssl );
+ mbedtls_ssl_close_notify(&ssl);
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_net_free( &server_fd );
- mbedtls_x509_crt_free( &clicert );
- mbedtls_x509_crt_free( &cacert );
- mbedtls_pk_free( &pkey );
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_net_free(&server_fd);
+ mbedtls_x509_crt_free(&clicert);
+ mbedtls_x509_crt_free(&cacert);
+ mbedtls_pk_free(&pkey);
+ mbedtls_ssl_free(&ssl);
+ mbedtls_ssl_config_free(&conf);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_SSL_TLS_C &&
MBEDTLS_SSL_CLI_C && MBEDTLS_NET_C && MBEDTLS_RSA_C **
diff --git a/programs/ssl/ssl_pthread_server.c b/programs/ssl/ssl_pthread_server.c
index b3ec7d6..2b3baff 100644
--- a/programs/ssl/ssl_pthread_server.c
+++ b/programs/ssl/ssl_pthread_server.c
@@ -28,15 +28,15 @@
!defined(MBEDTLS_CTR_DRBG_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \
!defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_THREADING_C) || \
!defined(MBEDTLS_THREADING_PTHREAD) || !defined(MBEDTLS_PEM_PARSE_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C "
- "and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or "
- "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C and/or "
- "MBEDTLS_THREADING_C and/or MBEDTLS_THREADING_PTHREAD "
- "and/or MBEDTLS_PEM_PARSE_C not defined.\n");
- mbedtls_exit( 0 );
+ "and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or "
+ "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
+ "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C and/or "
+ "MBEDTLS_THREADING_C and/or MBEDTLS_THREADING_PTHREAD "
+ "and/or MBEDTLS_PEM_PARSE_C not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -75,20 +75,20 @@
mbedtls_threading_mutex_t debug_mutex;
-static void my_mutexed_debug( void *ctx, int level,
- const char *file, int line,
- const char *str )
+static void my_mutexed_debug(void *ctx, int level,
+ const char *file, int line,
+ const char *str)
{
long int thread_id = (long int) pthread_self();
- mbedtls_mutex_lock( &debug_mutex );
+ mbedtls_mutex_lock(&debug_mutex);
((void) level);
- mbedtls_fprintf( (FILE *) ctx, "%s:%04d: [ #%ld ] %s",
- file, line, thread_id, str );
- fflush( (FILE *) ctx );
+ mbedtls_fprintf((FILE *) ctx, "%s:%04d: [ #%ld ] %s",
+ file, line, thread_id, str);
+ fflush((FILE *) ctx);
- mbedtls_mutex_unlock( &debug_mutex );
+ mbedtls_mutex_unlock(&debug_mutex);
}
typedef struct {
@@ -106,7 +106,7 @@
static thread_info_t base_info;
static pthread_info_t threads[MAX_NUM_THREADS];
-static void *handle_ssl_connection( void *data )
+static void *handle_ssl_connection(void *data)
{
int ret, len;
thread_info_t *thread_info = (thread_info_t *) data;
@@ -116,190 +116,178 @@
mbedtls_ssl_context ssl;
/* Make sure memory references are valid */
- mbedtls_ssl_init( &ssl );
+ mbedtls_ssl_init(&ssl);
- mbedtls_printf( " [ #%ld ] Setting up SSL/TLS data\n", thread_id );
+ mbedtls_printf(" [ #%ld ] Setting up SSL/TLS data\n", thread_id);
/*
* 4. Get the SSL context ready
*/
- if( ( ret = mbedtls_ssl_setup( &ssl, thread_info->config ) ) != 0 )
- {
- mbedtls_printf( " [ #%ld ] failed: mbedtls_ssl_setup returned -0x%04x\n",
- thread_id, ( unsigned int ) -ret );
+ if ((ret = mbedtls_ssl_setup(&ssl, thread_info->config)) != 0) {
+ mbedtls_printf(" [ #%ld ] failed: mbedtls_ssl_setup returned -0x%04x\n",
+ thread_id, (unsigned int) -ret);
goto thread_exit;
}
- mbedtls_ssl_set_bio( &ssl, client_fd, mbedtls_net_send, mbedtls_net_recv, NULL );
+ mbedtls_ssl_set_bio(&ssl, client_fd, mbedtls_net_send, mbedtls_net_recv, NULL);
/*
* 5. Handshake
*/
- mbedtls_printf( " [ #%ld ] Performing the SSL/TLS handshake\n", thread_id );
+ mbedtls_printf(" [ #%ld ] Performing the SSL/TLS handshake\n", thread_id);
- while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
- mbedtls_printf( " [ #%ld ] failed: mbedtls_ssl_handshake returned -0x%04x\n",
- thread_id, ( unsigned int ) -ret );
+ while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
+ mbedtls_printf(" [ #%ld ] failed: mbedtls_ssl_handshake returned -0x%04x\n",
+ thread_id, (unsigned int) -ret);
goto thread_exit;
}
}
- mbedtls_printf( " [ #%ld ] ok\n", thread_id );
+ mbedtls_printf(" [ #%ld ] ok\n", thread_id);
/*
* 6. Read the HTTP Request
*/
- mbedtls_printf( " [ #%ld ] < Read from client\n", thread_id );
+ mbedtls_printf(" [ #%ld ] < Read from client\n", thread_id);
- do
- {
- len = sizeof( buf ) - 1;
- memset( buf, 0, sizeof( buf ) );
- ret = mbedtls_ssl_read( &ssl, buf, len );
+ do {
+ len = sizeof(buf) - 1;
+ memset(buf, 0, sizeof(buf));
+ ret = mbedtls_ssl_read(&ssl, buf, len);
- if( ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE )
+ if (ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE) {
continue;
+ }
- if( ret <= 0 )
- {
- switch( ret )
- {
+ if (ret <= 0) {
+ switch (ret) {
case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY:
- mbedtls_printf( " [ #%ld ] connection was closed gracefully\n",
- thread_id );
+ mbedtls_printf(" [ #%ld ] connection was closed gracefully\n",
+ thread_id);
goto thread_exit;
case MBEDTLS_ERR_NET_CONN_RESET:
- mbedtls_printf( " [ #%ld ] connection was reset by peer\n",
- thread_id );
+ mbedtls_printf(" [ #%ld ] connection was reset by peer\n",
+ thread_id);
goto thread_exit;
default:
- mbedtls_printf( " [ #%ld ] mbedtls_ssl_read returned -0x%04x\n",
- thread_id, ( unsigned int ) -ret );
+ mbedtls_printf(" [ #%ld ] mbedtls_ssl_read returned -0x%04x\n",
+ thread_id, (unsigned int) -ret);
goto thread_exit;
}
}
len = ret;
- mbedtls_printf( " [ #%ld ] %d bytes read\n=====\n%s\n=====\n",
- thread_id, len, (char *) buf );
+ mbedtls_printf(" [ #%ld ] %d bytes read\n=====\n%s\n=====\n",
+ thread_id, len, (char *) buf);
- if( ret > 0 )
+ if (ret > 0) {
break;
- }
- while( 1 );
+ }
+ } while (1);
/*
* 7. Write the 200 Response
*/
- mbedtls_printf( " [ #%ld ] > Write to client:\n", thread_id );
+ mbedtls_printf(" [ #%ld ] > Write to client:\n", thread_id);
- len = sprintf( (char *) buf, HTTP_RESPONSE,
- mbedtls_ssl_get_ciphersuite( &ssl ) );
+ len = sprintf((char *) buf, HTTP_RESPONSE,
+ mbedtls_ssl_get_ciphersuite(&ssl));
- while( ( ret = mbedtls_ssl_write( &ssl, buf, len ) ) <= 0 )
- {
- if( ret == MBEDTLS_ERR_NET_CONN_RESET )
- {
- mbedtls_printf( " [ #%ld ] failed: peer closed the connection\n",
- thread_id );
+ while ((ret = mbedtls_ssl_write(&ssl, buf, len)) <= 0) {
+ if (ret == MBEDTLS_ERR_NET_CONN_RESET) {
+ mbedtls_printf(" [ #%ld ] failed: peer closed the connection\n",
+ thread_id);
goto thread_exit;
}
- if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
- mbedtls_printf( " [ #%ld ] failed: mbedtls_ssl_write returned -0x%04x\n",
- thread_id, ( unsigned int ) ret );
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
+ mbedtls_printf(" [ #%ld ] failed: mbedtls_ssl_write returned -0x%04x\n",
+ thread_id, (unsigned int) ret);
goto thread_exit;
}
}
len = ret;
- mbedtls_printf( " [ #%ld ] %d bytes written\n=====\n%s\n=====\n",
- thread_id, len, (char *) buf );
+ mbedtls_printf(" [ #%ld ] %d bytes written\n=====\n%s\n=====\n",
+ thread_id, len, (char *) buf);
- mbedtls_printf( " [ #%ld ] . Closing the connection...", thread_id );
+ mbedtls_printf(" [ #%ld ] . Closing the connection...", thread_id);
- while( ( ret = mbedtls_ssl_close_notify( &ssl ) ) < 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ &&
- ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
- mbedtls_printf( " [ #%ld ] failed: mbedtls_ssl_close_notify returned -0x%04x\n",
- thread_id, ( unsigned int ) ret );
+ while ((ret = mbedtls_ssl_close_notify(&ssl)) < 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ &&
+ ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
+ mbedtls_printf(" [ #%ld ] failed: mbedtls_ssl_close_notify returned -0x%04x\n",
+ thread_id, (unsigned int) ret);
goto thread_exit;
}
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
ret = 0;
thread_exit:
#ifdef MBEDTLS_ERROR_C
- if( ret != 0 )
- {
+ if (ret != 0) {
char error_buf[100];
- mbedtls_strerror( ret, error_buf, 100 );
+ mbedtls_strerror(ret, error_buf, 100);
mbedtls_printf(" [ #%ld ] Last error was: -0x%04x - %s\n\n",
- thread_id, ( unsigned int ) -ret, error_buf );
+ thread_id, (unsigned int) -ret, error_buf);
}
#endif
- mbedtls_net_free( client_fd );
- mbedtls_ssl_free( &ssl );
+ mbedtls_net_free(client_fd);
+ mbedtls_ssl_free(&ssl);
thread_info->thread_complete = 1;
- return( NULL );
+ return NULL;
}
-static int thread_create( mbedtls_net_context *client_fd )
+static int thread_create(mbedtls_net_context *client_fd)
{
int ret, i;
/*
* Find in-active or finished thread slot
*/
- for( i = 0; i < MAX_NUM_THREADS; i++ )
- {
- if( threads[i].active == 0 )
+ for (i = 0; i < MAX_NUM_THREADS; i++) {
+ if (threads[i].active == 0) {
break;
+ }
- if( threads[i].data.thread_complete == 1 )
- {
- mbedtls_printf( " [ main ] Cleaning up thread %d\n", i );
- pthread_join(threads[i].thread, NULL );
- memset( &threads[i], 0, sizeof(pthread_info_t) );
+ if (threads[i].data.thread_complete == 1) {
+ mbedtls_printf(" [ main ] Cleaning up thread %d\n", i);
+ pthread_join(threads[i].thread, NULL);
+ memset(&threads[i], 0, sizeof(pthread_info_t));
break;
}
}
- if( i == MAX_NUM_THREADS )
- return( -1 );
+ if (i == MAX_NUM_THREADS) {
+ return -1;
+ }
/*
* Fill thread-info for thread
*/
- memcpy( &threads[i].data, &base_info, sizeof(base_info) );
+ memcpy(&threads[i].data, &base_info, sizeof(base_info));
threads[i].active = 1;
- memcpy( &threads[i].data.client_fd, client_fd, sizeof( mbedtls_net_context ) );
+ memcpy(&threads[i].data.client_fd, client_fd, sizeof(mbedtls_net_context));
- if( ( ret = pthread_create( &threads[i].thread, NULL, handle_ssl_connection,
- &threads[i].data ) ) != 0 )
- {
- return( ret );
+ if ((ret = pthread_create(&threads[i].thread, NULL, handle_ssl_connection,
+ &threads[i].data)) != 0) {
+ return ret;
}
- return( 0 );
+ return 0;
}
-int main( void )
+int main(void)
{
int ret;
mbedtls_net_context listen_fd, client_fd;
@@ -319,167 +307,157 @@
#endif
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
- mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof(alloc_buf) );
+ mbedtls_memory_buffer_alloc_init(alloc_buf, sizeof(alloc_buf));
#endif
#if defined(MBEDTLS_SSL_CACHE_C)
- mbedtls_ssl_cache_init( &cache );
+ mbedtls_ssl_cache_init(&cache);
#endif
- mbedtls_x509_crt_init( &srvcert );
- mbedtls_x509_crt_init( &cachain );
+ mbedtls_x509_crt_init(&srvcert);
+ mbedtls_x509_crt_init(&cachain);
- mbedtls_ssl_config_init( &conf );
- mbedtls_ctr_drbg_init( &ctr_drbg );
- memset( threads, 0, sizeof(threads) );
- mbedtls_net_init( &listen_fd );
- mbedtls_net_init( &client_fd );
+ mbedtls_ssl_config_init(&conf);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ memset(threads, 0, sizeof(threads));
+ mbedtls_net_init(&listen_fd);
+ mbedtls_net_init(&client_fd);
- mbedtls_mutex_init( &debug_mutex );
+ mbedtls_mutex_init(&debug_mutex);
base_info.config = &conf;
/*
* We use only a single entropy source that is used in all the threads.
*/
- mbedtls_entropy_init( &entropy );
+ mbedtls_entropy_init(&entropy);
/*
* 1a. Seed the random number generator
*/
- mbedtls_printf( " . Seeding the random number generator..." );
+ mbedtls_printf(" . Seeding the random number generator...");
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed: mbedtls_ctr_drbg_seed returned -0x%04x\n",
- ( unsigned int ) -ret );
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed: mbedtls_ctr_drbg_seed returned -0x%04x\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1b. Load the certificates and private RSA key
*/
- mbedtls_printf( "\n . Loading the server cert. and key..." );
- fflush( stdout );
+ mbedtls_printf("\n . Loading the server cert. and key...");
+ fflush(stdout);
/*
* This demonstration program uses embedded test certificates.
* Instead, you may want to use mbedtls_x509_crt_parse_file() to read the
* server and CA certificates, as well as mbedtls_pk_parse_keyfile().
*/
- ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_srv_crt,
- mbedtls_test_srv_crt_len );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret );
+ ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_srv_crt,
+ mbedtls_test_srv_crt_len);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret);
goto exit;
}
- ret = mbedtls_x509_crt_parse( &cachain, (const unsigned char *) mbedtls_test_cas_pem,
- mbedtls_test_cas_pem_len );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret );
+ ret = mbedtls_x509_crt_parse(&cachain, (const unsigned char *) mbedtls_test_cas_pem,
+ mbedtls_test_cas_pem_len);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret);
goto exit;
}
- mbedtls_pk_init( &pkey );
- ret = mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_srv_key,
- mbedtls_test_srv_key_len, NULL, 0,
- mbedtls_ctr_drbg_random, &ctr_drbg );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret );
+ mbedtls_pk_init(&pkey);
+ ret = mbedtls_pk_parse_key(&pkey, (const unsigned char *) mbedtls_test_srv_key,
+ mbedtls_test_srv_key_len, NULL, 0,
+ mbedtls_ctr_drbg_random, &ctr_drbg);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1c. Prepare SSL configuration
*/
- mbedtls_printf( " . Setting up the SSL data...." );
+ mbedtls_printf(" . Setting up the SSL data....");
- if( ( ret = mbedtls_ssl_config_defaults( &conf,
- MBEDTLS_SSL_IS_SERVER,
- MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 )
- {
- mbedtls_printf( " failed: mbedtls_ssl_config_defaults returned -0x%04x\n",
- ( unsigned int ) -ret );
+ if ((ret = mbedtls_ssl_config_defaults(&conf,
+ MBEDTLS_SSL_IS_SERVER,
+ MBEDTLS_SSL_TRANSPORT_STREAM,
+ MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
+ mbedtls_printf(" failed: mbedtls_ssl_config_defaults returned -0x%04x\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg );
- mbedtls_ssl_conf_dbg( &conf, my_mutexed_debug, stdout );
+ mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg);
+ mbedtls_ssl_conf_dbg(&conf, my_mutexed_debug, stdout);
/* mbedtls_ssl_cache_get() and mbedtls_ssl_cache_set() are thread-safe if
* MBEDTLS_THREADING_C is set.
*/
#if defined(MBEDTLS_SSL_CACHE_C)
- mbedtls_ssl_conf_session_cache( &conf, &cache,
+ mbedtls_ssl_conf_session_cache(&conf, &cache,
mbedtls_ssl_cache_get,
- mbedtls_ssl_cache_set );
+ mbedtls_ssl_cache_set);
#endif
- mbedtls_ssl_conf_ca_chain( &conf, &cachain, NULL );
- if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &srvcert, &pkey ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret );
+ mbedtls_ssl_conf_ca_chain(&conf, &cachain, NULL);
+ if ((ret = mbedtls_ssl_conf_own_cert(&conf, &srvcert, &pkey)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 2. Setup the listening TCP socket
*/
- mbedtls_printf( " . Bind on https://localhost:4433/ ..." );
- fflush( stdout );
+ mbedtls_printf(" . Bind on https://localhost:4433/ ...");
+ fflush(stdout);
- if( ( ret = mbedtls_net_bind( &listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_bind returned %d\n\n", ret );
+ if ((ret = mbedtls_net_bind(&listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_bind returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
reset:
#ifdef MBEDTLS_ERROR_C
- if( ret != 0 )
- {
+ if (ret != 0) {
char error_buf[100];
- mbedtls_strerror( ret, error_buf, 100 );
- mbedtls_printf( " [ main ] Last error was: -0x%04x - %s\n", ( unsigned int ) -ret,
- error_buf );
+ mbedtls_strerror(ret, error_buf, 100);
+ mbedtls_printf(" [ main ] Last error was: -0x%04x - %s\n", (unsigned int) -ret,
+ error_buf);
}
#endif
/*
* 3. Wait until a client connects
*/
- mbedtls_printf( " [ main ] Waiting for a remote connection\n" );
+ mbedtls_printf(" [ main ] Waiting for a remote connection\n");
- if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd,
- NULL, 0, NULL ) ) != 0 )
- {
- mbedtls_printf( " [ main ] failed: mbedtls_net_accept returned -0x%04x\n",
- ( unsigned int ) ret );
+ if ((ret = mbedtls_net_accept(&listen_fd, &client_fd,
+ NULL, 0, NULL)) != 0) {
+ mbedtls_printf(" [ main ] failed: mbedtls_net_accept returned -0x%04x\n",
+ (unsigned int) ret);
goto exit;
}
- mbedtls_printf( " [ main ] ok\n" );
- mbedtls_printf( " [ main ] Creating a new thread\n" );
+ mbedtls_printf(" [ main ] ok\n");
+ mbedtls_printf(" [ main ] Creating a new thread\n");
- if( ( ret = thread_create( &client_fd ) ) != 0 )
- {
- mbedtls_printf( " [ main ] failed: thread_create returned %d\n", ret );
- mbedtls_net_free( &client_fd );
+ if ((ret = thread_create(&client_fd)) != 0) {
+ mbedtls_printf(" [ main ] failed: thread_create returned %d\n", ret);
+ mbedtls_net_free(&client_fd);
goto reset;
}
@@ -487,24 +465,24 @@
goto reset;
exit:
- mbedtls_x509_crt_free( &srvcert );
- mbedtls_pk_free( &pkey );
+ mbedtls_x509_crt_free(&srvcert);
+ mbedtls_pk_free(&pkey);
#if defined(MBEDTLS_SSL_CACHE_C)
- mbedtls_ssl_cache_free( &cache );
+ mbedtls_ssl_cache_free(&cache);
#endif
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
- mbedtls_ssl_config_free( &conf );
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
+ mbedtls_ssl_config_free(&conf);
- mbedtls_net_free( &listen_fd );
+ mbedtls_net_free(&listen_fd);
- mbedtls_mutex_free( &debug_mutex );
+ mbedtls_mutex_free(&debug_mutex);
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
mbedtls_memory_buffer_alloc_free();
#endif
- mbedtls_exit( ret );
+ mbedtls_exit(ret);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C &&
diff --git a/programs/ssl/ssl_server.c b/programs/ssl/ssl_server.c
index c9d9df2..7dabda8 100644
--- a/programs/ssl/ssl_server.c
+++ b/programs/ssl/ssl_server.c
@@ -26,14 +26,14 @@
!defined(MBEDTLS_SSL_SRV_C) || !defined(MBEDTLS_NET_C) || \
!defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_FS_IO)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C "
- "and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or "
- "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C "
- "and/or MBEDTLS_PEM_PARSE_C not defined.\n");
- mbedtls_exit( 0 );
+ "and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or "
+ "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
+ "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C "
+ "and/or MBEDTLS_PEM_PARSE_C not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -65,17 +65,17 @@
#define DEBUG_LEVEL 0
-static void my_debug( void *ctx, int level,
- const char *file, int line,
- const char *str )
+static void my_debug(void *ctx, int level,
+ const char *file, int line,
+ const char *str)
{
((void) level);
- mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
- fflush( (FILE *) ctx );
+ mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str);
+ fflush((FILE *) ctx);
}
-int main( void )
+int main(void)
{
int ret, len;
mbedtls_net_context listen_fd, client_fd;
@@ -92,206 +92,192 @@
mbedtls_ssl_cache_context cache;
#endif
- mbedtls_net_init( &listen_fd );
- mbedtls_net_init( &client_fd );
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
+ mbedtls_net_init(&listen_fd);
+ mbedtls_net_init(&client_fd);
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
#if defined(MBEDTLS_SSL_CACHE_C)
- mbedtls_ssl_cache_init( &cache );
+ mbedtls_ssl_cache_init(&cache);
#endif
- mbedtls_x509_crt_init( &srvcert );
- mbedtls_pk_init( &pkey );
- mbedtls_entropy_init( &entropy );
- mbedtls_ctr_drbg_init( &ctr_drbg );
+ mbedtls_x509_crt_init(&srvcert);
+ mbedtls_pk_init(&pkey);
+ mbedtls_entropy_init(&entropy);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
#if defined(MBEDTLS_DEBUG_C)
- mbedtls_debug_set_threshold( DEBUG_LEVEL );
+ mbedtls_debug_set_threshold(DEBUG_LEVEL);
#endif
/*
* 1. Seed the RNG
*/
- mbedtls_printf( " . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf(" . Seeding the random number generator...");
+ fflush(stdout);
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret );
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 2. Load the certificates and private RSA key
*/
- mbedtls_printf( "\n . Loading the server cert. and key..." );
- fflush( stdout );
+ mbedtls_printf("\n . Loading the server cert. and key...");
+ fflush(stdout);
/*
* This demonstration program uses embedded test certificates.
* Instead, you may want to use mbedtls_x509_crt_parse_file() to read the
* server and CA certificates, as well as mbedtls_pk_parse_keyfile().
*/
- ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_srv_crt,
- mbedtls_test_srv_crt_len );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret );
+ ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_srv_crt,
+ mbedtls_test_srv_crt_len);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret);
goto exit;
}
- ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_cas_pem,
- mbedtls_test_cas_pem_len );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret );
+ ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_cas_pem,
+ mbedtls_test_cas_pem_len);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret);
goto exit;
}
- ret = mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_srv_key,
- mbedtls_test_srv_key_len, NULL, 0,
- mbedtls_ctr_drbg_random, &ctr_drbg );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret );
+ ret = mbedtls_pk_parse_key(&pkey, (const unsigned char *) mbedtls_test_srv_key,
+ mbedtls_test_srv_key_len, NULL, 0,
+ mbedtls_ctr_drbg_random, &ctr_drbg);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 3. Setup the listening TCP socket
*/
- mbedtls_printf( " . Bind on https://localhost:4433/ ..." );
- fflush( stdout );
+ mbedtls_printf(" . Bind on https://localhost:4433/ ...");
+ fflush(stdout);
- if( ( ret = mbedtls_net_bind( &listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_bind returned %d\n\n", ret );
+ if ((ret = mbedtls_net_bind(&listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_bind returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 4. Setup stuff
*/
- mbedtls_printf( " . Setting up the SSL data...." );
- fflush( stdout );
+ mbedtls_printf(" . Setting up the SSL data....");
+ fflush(stdout);
- if( ( ret = mbedtls_ssl_config_defaults( &conf,
- MBEDTLS_SSL_IS_SERVER,
- MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_config_defaults(&conf,
+ MBEDTLS_SSL_IS_SERVER,
+ MBEDTLS_SSL_TRANSPORT_STREAM,
+ MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret);
goto exit;
}
- mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg );
- mbedtls_ssl_conf_dbg( &conf, my_debug, stdout );
+ mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg);
+ mbedtls_ssl_conf_dbg(&conf, my_debug, stdout);
#if defined(MBEDTLS_SSL_CACHE_C)
- mbedtls_ssl_conf_session_cache( &conf, &cache,
+ mbedtls_ssl_conf_session_cache(&conf, &cache,
mbedtls_ssl_cache_get,
- mbedtls_ssl_cache_set );
+ mbedtls_ssl_cache_set);
#endif
- mbedtls_ssl_conf_ca_chain( &conf, srvcert.next, NULL );
- if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &srvcert, &pkey ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret );
+ mbedtls_ssl_conf_ca_chain(&conf, srvcert.next, NULL);
+ if ((ret = mbedtls_ssl_conf_own_cert(&conf, &srvcert, &pkey)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret);
goto exit;
}
- if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
reset:
#ifdef MBEDTLS_ERROR_C
- if( ret != 0 )
- {
+ if (ret != 0) {
char error_buf[100];
- mbedtls_strerror( ret, error_buf, 100 );
- mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf );
+ mbedtls_strerror(ret, error_buf, 100);
+ mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf);
}
#endif
- mbedtls_net_free( &client_fd );
+ mbedtls_net_free(&client_fd);
- mbedtls_ssl_session_reset( &ssl );
+ mbedtls_ssl_session_reset(&ssl);
/*
* 3. Wait until a client connects
*/
- mbedtls_printf( " . Waiting for a remote connection ..." );
- fflush( stdout );
+ mbedtls_printf(" . Waiting for a remote connection ...");
+ fflush(stdout);
- if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd,
- NULL, 0, NULL ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_accept returned %d\n\n", ret );
+ if ((ret = mbedtls_net_accept(&listen_fd, &client_fd,
+ NULL, 0, NULL)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_accept returned %d\n\n", ret);
goto exit;
}
- mbedtls_ssl_set_bio( &ssl, &client_fd, mbedtls_net_send, mbedtls_net_recv, NULL );
+ mbedtls_ssl_set_bio(&ssl, &client_fd, mbedtls_net_send, mbedtls_net_recv, NULL);
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 5. Handshake
*/
- mbedtls_printf( " . Performing the SSL/TLS handshake..." );
- fflush( stdout );
+ mbedtls_printf(" . Performing the SSL/TLS handshake...");
+ fflush(stdout);
- while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned %d\n\n", ret );
+ while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned %d\n\n", ret);
goto reset;
}
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 6. Read the HTTP Request
*/
- mbedtls_printf( " < Read from client:" );
- fflush( stdout );
+ mbedtls_printf(" < Read from client:");
+ fflush(stdout);
- do
- {
- len = sizeof( buf ) - 1;
- memset( buf, 0, sizeof( buf ) );
- ret = mbedtls_ssl_read( &ssl, buf, len );
+ do {
+ len = sizeof(buf) - 1;
+ memset(buf, 0, sizeof(buf));
+ ret = mbedtls_ssl_read(&ssl, buf, len);
- if( ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE )
+ if (ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE) {
continue;
+ }
- if( ret <= 0 )
- {
- switch( ret )
- {
+ if (ret <= 0) {
+ switch (ret) {
case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY:
- mbedtls_printf( " connection was closed gracefully\n" );
+ mbedtls_printf(" connection was closed gracefully\n");
break;
case MBEDTLS_ERR_NET_CONN_RESET:
- mbedtls_printf( " connection was reset by peer\n" );
+ mbedtls_printf(" connection was reset by peer\n");
break;
default:
- mbedtls_printf( " mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret );
+ mbedtls_printf(" mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret);
break;
}
@@ -299,53 +285,48 @@
}
len = ret;
- mbedtls_printf( " %d bytes read\n\n%s", len, (char *) buf );
+ mbedtls_printf(" %d bytes read\n\n%s", len, (char *) buf);
- if( ret > 0 )
+ if (ret > 0) {
break;
- }
- while( 1 );
+ }
+ } while (1);
/*
* 7. Write the 200 Response
*/
- mbedtls_printf( " > Write to client:" );
- fflush( stdout );
+ mbedtls_printf(" > Write to client:");
+ fflush(stdout);
- len = sprintf( (char *) buf, HTTP_RESPONSE,
- mbedtls_ssl_get_ciphersuite( &ssl ) );
+ len = sprintf((char *) buf, HTTP_RESPONSE,
+ mbedtls_ssl_get_ciphersuite(&ssl));
- while( ( ret = mbedtls_ssl_write( &ssl, buf, len ) ) <= 0 )
- {
- if( ret == MBEDTLS_ERR_NET_CONN_RESET )
- {
- mbedtls_printf( " failed\n ! peer closed the connection\n\n" );
+ while ((ret = mbedtls_ssl_write(&ssl, buf, len)) <= 0) {
+ if (ret == MBEDTLS_ERR_NET_CONN_RESET) {
+ mbedtls_printf(" failed\n ! peer closed the connection\n\n");
goto reset;
}
- if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret );
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret);
goto exit;
}
}
len = ret;
- mbedtls_printf( " %d bytes written\n\n%s\n", len, (char *) buf );
+ mbedtls_printf(" %d bytes written\n\n%s\n", len, (char *) buf);
- mbedtls_printf( " . Closing the connection..." );
+ mbedtls_printf(" . Closing the connection...");
- while( ( ret = mbedtls_ssl_close_notify( &ssl ) ) < 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ &&
- ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_close_notify returned %d\n\n", ret );
+ while ((ret = mbedtls_ssl_close_notify(&ssl)) < 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ &&
+ ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_close_notify returned %d\n\n", ret);
goto reset;
}
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
ret = 0;
goto reset;
@@ -353,28 +334,27 @@
exit:
#ifdef MBEDTLS_ERROR_C
- if( ret != 0 )
- {
+ if (ret != 0) {
char error_buf[100];
- mbedtls_strerror( ret, error_buf, 100 );
- mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf );
+ mbedtls_strerror(ret, error_buf, 100);
+ mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf);
}
#endif
- mbedtls_net_free( &client_fd );
- mbedtls_net_free( &listen_fd );
+ mbedtls_net_free(&client_fd);
+ mbedtls_net_free(&listen_fd);
- mbedtls_x509_crt_free( &srvcert );
- mbedtls_pk_free( &pkey );
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
+ mbedtls_x509_crt_free(&srvcert);
+ mbedtls_pk_free(&pkey);
+ mbedtls_ssl_free(&ssl);
+ mbedtls_ssl_config_free(&conf);
#if defined(MBEDTLS_SSL_CACHE_C)
- mbedtls_ssl_cache_free( &cache );
+ mbedtls_ssl_cache_free(&cache);
#endif
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( ret );
+ mbedtls_exit(ret);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C &&
MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_SRV_C && MBEDTLS_NET_C &&
diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index 802beb2..90a13eb 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -22,16 +22,16 @@
#include "ssl_test_lib.h"
#if defined(MBEDTLS_SSL_TEST_IMPOSSIBLE)
-int main( void )
+int main(void)
{
- mbedtls_printf( MBEDTLS_SSL_TEST_IMPOSSIBLE );
- mbedtls_exit( 0 );
+ mbedtls_printf(MBEDTLS_SSL_TEST_IMPOSSIBLE);
+ mbedtls_exit(0);
}
#elif !defined(MBEDTLS_SSL_SRV_C)
-int main( void )
+int main(void)
{
- mbedtls_printf( "MBEDTLS_SSL_SRV_C not defined.\n" );
- mbedtls_exit( 0 );
+ mbedtls_printf("MBEDTLS_SSL_SRV_C not defined.\n");
+ mbedtls_exit(0);
}
#else /* !MBEDTLS_SSL_TEST_IMPOSSIBLE && MBEDTLS_SSL_SRV_C */
@@ -90,9 +90,9 @@
#define DFL_KEY_FILE2 ""
#define DFL_KEY_PWD2 ""
#define DFL_ASYNC_OPERATIONS "-"
-#define DFL_ASYNC_PRIVATE_DELAY1 ( -1 )
-#define DFL_ASYNC_PRIVATE_DELAY2 ( -1 )
-#define DFL_ASYNC_PRIVATE_ERROR ( 0 )
+#define DFL_ASYNC_PRIVATE_DELAY1 (-1)
+#define DFL_ASYNC_PRIVATE_DELAY2 (-1)
+#define DFL_ASYNC_PRIVATE_ERROR (0)
#define DFL_PSK ""
#define DFL_PSK_OPAQUE 0
#define DFL_PSK_LIST_OPAQUE 0
@@ -106,7 +106,7 @@
#define DFL_ALLOW_LEGACY -2
#define DFL_RENEGOTIATE 0
#define DFL_RENEGO_DELAY -2
-#define DFL_RENEGO_PERIOD ( (uint64_t)-1 )
+#define DFL_RENEGO_PERIOD ((uint64_t) -1)
#define DFL_EXCHANGES 1
#define DFL_MIN_VERSION -1
#define DFL_MAX_VERSION -1
@@ -158,12 +158,12 @@
#define DFL_KEY_OPAQUE_ALG "none"
#define LONG_RESPONSE "<p>01-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \
- "02-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \
- "03-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \
- "04-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \
- "05-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \
- "06-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \
- "07-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah</p>\r\n"
+ "02-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \
+ "03-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \
+ "04-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \
+ "05-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \
+ "06-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \
+ "07-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah</p>\r\n"
/* Uncomment LONG_RESPONSE at the end of HTTP_RESPONSE to test sending longer
* packets (for fragmentation purposes) */
@@ -189,14 +189,14 @@
" crt_file=%%s Your own cert and chain (in bottom to top order, top may be omitted)\n" \
" default: see note after key_file2\n" \
" key_file=%%s default: see note after key_file2\n" \
- " key_pwd=%%s Password for key specified by key_file argument\n"\
+ " key_pwd=%%s Password for key specified by key_file argument\n" \
" default: none\n" \
" crt_file2=%%s Your second cert and chain (in bottom to top order, top may be omitted)\n" \
" default: see note after key_file2\n" \
" key_file2=%%s default: see note below\n" \
" note: if neither crt_file/key_file nor crt_file2/key_file2 are used,\n" \
" preloaded certificate(s) and key(s) are used if available\n" \
- " key_pwd2=%%s Password for key specified by key_file2 argument\n"\
+ " key_pwd2=%%s Password for key specified by key_file2 argument\n" \
" default: none\n" \
" dhm_file=%%s File containing Diffie-Hellman parameters\n" \
" default: preloaded parameters\n"
@@ -339,8 +339,8 @@
#endif
#define USAGE_SNI \
- " sni=%%s name1,cert1,key1,ca1"SNI_CRL",auth1[,...]\n" \
- " default: disabled\n"
+ " sni=%%s name1,cert1,key1,ca1"SNI_CRL ",auth1[,...]\n" \
+ " default: disabled\n"
#else
#define USAGE_SNI ""
#endif /* SNI_OPTION */
@@ -465,7 +465,7 @@
" serialize=%%d default: 0 (do not serialize/deserialize)\n" \
" options: 1 (serialize)\n" \
" 2 (serialize with re-initialization)\n" \
- " context_file=%%s The file path to write a serialized connection\n"\
+ " context_file=%%s The file path to write a serialized connection\n" \
" in the form of base64 code (serialize option\n" \
" must be set)\n" \
" default: \"\" (do nothing)\n" \
@@ -511,7 +511,7 @@
" (minimum: 1)\n" \
" response_size=%%d default: about 152 (basic response)\n" \
" (minimum: 0, max: 16384)\n" \
- " increases buffer_size if bigger\n"\
+ " increases buffer_size if bigger\n" \
" nbio=%%d default: 0 (blocking I/O)\n" \
" options: 1 (non-blocking), 2 (added delays)\n" \
" event=%%d default: 0 (loop)\n" \
@@ -586,17 +586,17 @@
#define CURVE_LIST_SIZE 20
#define SIG_ALG_LIST_SIZE 5
-#define PUT_UINT64_BE(out_be,in_le,i) \
-{ \
- (out_be)[(i) + 0] = (unsigned char)( ( (in_le) >> 56 ) & 0xFF ); \
- (out_be)[(i) + 1] = (unsigned char)( ( (in_le) >> 48 ) & 0xFF ); \
- (out_be)[(i) + 2] = (unsigned char)( ( (in_le) >> 40 ) & 0xFF ); \
- (out_be)[(i) + 3] = (unsigned char)( ( (in_le) >> 32 ) & 0xFF ); \
- (out_be)[(i) + 4] = (unsigned char)( ( (in_le) >> 24 ) & 0xFF ); \
- (out_be)[(i) + 5] = (unsigned char)( ( (in_le) >> 16 ) & 0xFF ); \
- (out_be)[(i) + 6] = (unsigned char)( ( (in_le) >> 8 ) & 0xFF ); \
- (out_be)[(i) + 7] = (unsigned char)( ( (in_le) >> 0 ) & 0xFF ); \
-}
+#define PUT_UINT64_BE(out_be, in_le, i) \
+ { \
+ (out_be)[(i) + 0] = (unsigned char) (((in_le) >> 56) & 0xFF); \
+ (out_be)[(i) + 1] = (unsigned char) (((in_le) >> 48) & 0xFF); \
+ (out_be)[(i) + 2] = (unsigned char) (((in_le) >> 40) & 0xFF); \
+ (out_be)[(i) + 3] = (unsigned char) (((in_le) >> 32) & 0xFF); \
+ (out_be)[(i) + 4] = (unsigned char) (((in_le) >> 24) & 0xFF); \
+ (out_be)[(i) + 5] = (unsigned char) (((in_le) >> 16) & 0xFF); \
+ (out_be)[(i) + 6] = (unsigned char) (((in_le) >> 8) & 0xFF); \
+ (out_be)[(i) + 7] = (unsigned char) (((in_le) >> 0) & 0xFF); \
+ }
/* This is global so it can be easily accessed by callback functions */
rng_context_t rng;
@@ -604,8 +604,7 @@
/*
* global options
*/
-struct options
-{
+struct options {
const char *server_addr; /* address on which the ssl service runs */
const char *server_port; /* port on which the ssl service runs */
int debug_level; /* level of debugging */
@@ -713,30 +712,33 @@
/*
* Return authmode from string, or -1 on error
*/
-static int get_auth_mode( const char *s )
+static int get_auth_mode(const char *s)
{
- if( strcmp( s, "none" ) == 0 )
- return( MBEDTLS_SSL_VERIFY_NONE );
- if( strcmp( s, "optional" ) == 0 )
- return( MBEDTLS_SSL_VERIFY_OPTIONAL );
- if( strcmp( s, "required" ) == 0 )
- return( MBEDTLS_SSL_VERIFY_REQUIRED );
+ if (strcmp(s, "none") == 0) {
+ return MBEDTLS_SSL_VERIFY_NONE;
+ }
+ if (strcmp(s, "optional") == 0) {
+ return MBEDTLS_SSL_VERIFY_OPTIONAL;
+ }
+ if (strcmp(s, "required") == 0) {
+ return MBEDTLS_SSL_VERIFY_REQUIRED;
+ }
- return( -1 );
+ return -1;
}
/*
* Used by sni_parse and psk_parse to handle comma-separated lists
*/
-#define GET_ITEM( dst ) \
+#define GET_ITEM(dst) \
do \
{ \
(dst) = p; \
- while( *p != ',' ) \
- if( ++p > end ) \
- goto error; \
+ while (*p != ',') \
+ if (++p > end) \
+ goto error; \
*p++ = '\0'; \
- } while( 0 )
+ } while (0)
#if defined(SNI_OPTION)
typedef struct _sni_entry sni_entry;
@@ -745,32 +747,31 @@
const char *name;
mbedtls_x509_crt *cert;
mbedtls_pk_context *key;
- mbedtls_x509_crt* ca;
- mbedtls_x509_crl* crl;
+ mbedtls_x509_crt *ca;
+ mbedtls_x509_crl *crl;
int authmode;
sni_entry *next;
};
-void sni_free( sni_entry *head )
+void sni_free(sni_entry *head)
{
sni_entry *cur = head, *next;
- while( cur != NULL )
- {
- mbedtls_x509_crt_free( cur->cert );
- mbedtls_free( cur->cert );
+ while (cur != NULL) {
+ mbedtls_x509_crt_free(cur->cert);
+ mbedtls_free(cur->cert);
- mbedtls_pk_free( cur->key );
- mbedtls_free( cur->key );
+ mbedtls_pk_free(cur->key);
+ mbedtls_free(cur->key);
- mbedtls_x509_crt_free( cur->ca );
- mbedtls_free( cur->ca );
+ mbedtls_x509_crt_free(cur->ca);
+ mbedtls_free(cur->ca);
#if defined(MBEDTLS_X509_CRL_PARSE_C)
- mbedtls_x509_crl_free( cur->crl );
- mbedtls_free( cur->crl );
+ mbedtls_x509_crl_free(cur->crl);
+ mbedtls_free(cur->crl);
#endif
next = cur->next;
- mbedtls_free( cur );
+ mbedtls_free(cur);
cur = next;
}
}
@@ -782,7 +783,7 @@
*
* Modifies the input string! This is not production quality!
*/
-sni_entry *sni_parse( char *sni_string )
+sni_entry *sni_parse(char *sni_string)
{
sni_entry *cur = NULL, *new = NULL;
char *p = sni_string;
@@ -792,87 +793,90 @@
char *crl_file;
#endif
- while( *end != '\0' )
+ while (*end != '\0') {
++end;
+ }
*end = ',';
- while( p <= end )
- {
- if( ( new = mbedtls_calloc( 1, sizeof( sni_entry ) ) ) == NULL )
- {
- sni_free( cur );
- return( NULL );
+ while (p <= end) {
+ if ((new = mbedtls_calloc(1, sizeof(sni_entry))) == NULL) {
+ sni_free(cur);
+ return NULL;
}
- GET_ITEM( new->name );
- GET_ITEM( crt_file );
- GET_ITEM( key_file );
- GET_ITEM( ca_file );
+ GET_ITEM(new->name);
+ GET_ITEM(crt_file);
+ GET_ITEM(key_file);
+ GET_ITEM(ca_file);
#if defined(MBEDTLS_X509_CRL_PARSE_C)
- GET_ITEM( crl_file );
+ GET_ITEM(crl_file);
#endif
- GET_ITEM( auth_str );
+ GET_ITEM(auth_str);
- if( ( new->cert = mbedtls_calloc( 1, sizeof( mbedtls_x509_crt ) ) ) == NULL ||
- ( new->key = mbedtls_calloc( 1, sizeof( mbedtls_pk_context ) ) ) == NULL )
+ if ((new->cert = mbedtls_calloc(1, sizeof(mbedtls_x509_crt))) == NULL ||
+ (new->key = mbedtls_calloc(1, sizeof(mbedtls_pk_context))) == NULL) {
goto error;
+ }
- mbedtls_x509_crt_init( new->cert );
- mbedtls_pk_init( new->key );
+ mbedtls_x509_crt_init(new->cert);
+ mbedtls_pk_init(new->key);
- if( mbedtls_x509_crt_parse_file( new->cert, crt_file ) != 0 ||
- mbedtls_pk_parse_keyfile( new->key, key_file, "", rng_get, &rng ) != 0 )
+ if (mbedtls_x509_crt_parse_file(new->cert, crt_file) != 0 ||
+ mbedtls_pk_parse_keyfile(new->key, key_file, "", rng_get, &rng) != 0) {
goto error;
+ }
- if( strcmp( ca_file, "-" ) != 0 )
- {
- if( ( new->ca = mbedtls_calloc( 1, sizeof( mbedtls_x509_crt ) ) ) == NULL )
+ if (strcmp(ca_file, "-") != 0) {
+ if ((new->ca = mbedtls_calloc(1, sizeof(mbedtls_x509_crt))) == NULL) {
goto error;
+ }
- mbedtls_x509_crt_init( new->ca );
+ mbedtls_x509_crt_init(new->ca);
- if( mbedtls_x509_crt_parse_file( new->ca, ca_file ) != 0 )
+ if (mbedtls_x509_crt_parse_file(new->ca, ca_file) != 0) {
goto error;
+ }
}
#if defined(MBEDTLS_X509_CRL_PARSE_C)
- if( strcmp( crl_file, "-" ) != 0 )
- {
- if( ( new->crl = mbedtls_calloc( 1, sizeof( mbedtls_x509_crl ) ) ) == NULL )
+ if (strcmp(crl_file, "-") != 0) {
+ if ((new->crl = mbedtls_calloc(1, sizeof(mbedtls_x509_crl))) == NULL) {
goto error;
+ }
- mbedtls_x509_crl_init( new->crl );
+ mbedtls_x509_crl_init(new->crl);
- if( mbedtls_x509_crl_parse_file( new->crl, crl_file ) != 0 )
+ if (mbedtls_x509_crl_parse_file(new->crl, crl_file) != 0) {
goto error;
+ }
}
#endif
- if( strcmp( auth_str, "-" ) != 0 )
- {
- if( ( new->authmode = get_auth_mode( auth_str ) ) < 0 )
+ if (strcmp(auth_str, "-") != 0) {
+ if ((new->authmode = get_auth_mode(auth_str)) < 0) {
goto error;
- }
- else
+ }
+ } else {
new->authmode = DFL_AUTH_MODE;
+ }
new->next = cur;
cur = new;
}
- return( cur );
+ return cur;
error:
- sni_free( new );
- sni_free( cur );
- return( NULL );
+ sni_free(new);
+ sni_free(cur);
+ return NULL;
}
/*
* SNI callback.
*/
-int sni_callback( void *p_info, mbedtls_ssl_context *ssl,
- const unsigned char *name, size_t name_len )
+int sni_callback(void *p_info, mbedtls_ssl_context *ssl,
+ const unsigned char *name, size_t name_len)
{
const sni_entry *cur = (const sni_entry *) p_info;
@@ -884,48 +888,48 @@
* Application might choose to save name and name_len in user_data for
* later use in certificate selection callback.
*/
- while( cur != NULL )
- {
- if( name_len == strlen( cur->name ) &&
- memcmp( name, cur->name, name_len ) == 0 )
- {
+ while (cur != NULL) {
+ if (name_len == strlen(cur->name) &&
+ memcmp(name, cur->name, name_len) == 0) {
void *p;
*(const void **)&p = cur;
- mbedtls_ssl_set_user_data_p( ssl, p );
- return( 0 );
+ mbedtls_ssl_set_user_data_p(ssl, p);
+ return 0;
}
cur = cur->next;
}
- return( -1 );
+ return -1;
}
/*
* server certificate selection callback.
*/
-int cert_callback( mbedtls_ssl_context *ssl )
+int cert_callback(mbedtls_ssl_context *ssl)
{
- const sni_entry *cur = (sni_entry *) mbedtls_ssl_get_user_data_p( ssl );
- if( cur != NULL )
- {
+ const sni_entry *cur = (sni_entry *) mbedtls_ssl_get_user_data_p(ssl);
+ if (cur != NULL) {
/*(exercise mbedtls_ssl_get_hs_sni(); not otherwise used here)*/
size_t name_len;
- const unsigned char *name = mbedtls_ssl_get_hs_sni( ssl, &name_len );
- if( strlen( cur->name ) != name_len ||
- memcmp( cur->name, name, name_len ) != 0 )
- return( MBEDTLS_ERR_SSL_DECODE_ERROR );
+ const unsigned char *name = mbedtls_ssl_get_hs_sni(ssl, &name_len);
+ if (strlen(cur->name) != name_len ||
+ memcmp(cur->name, name, name_len) != 0) {
+ return MBEDTLS_ERR_SSL_DECODE_ERROR;
+ }
- if( cur->ca != NULL )
- mbedtls_ssl_set_hs_ca_chain( ssl, cur->ca, cur->crl );
+ if (cur->ca != NULL) {
+ mbedtls_ssl_set_hs_ca_chain(ssl, cur->ca, cur->crl);
+ }
- if( cur->authmode != DFL_AUTH_MODE )
- mbedtls_ssl_set_hs_authmode( ssl, cur->authmode );
+ if (cur->authmode != DFL_AUTH_MODE) {
+ mbedtls_ssl_set_hs_authmode(ssl, cur->authmode);
+ }
- return( mbedtls_ssl_set_hs_own_cert( ssl, cur->cert, cur->key ) );
+ return mbedtls_ssl_set_hs_own_cert(ssl, cur->cert, cur->key);
}
- return( 0 );
+ return 0;
}
#endif /* SNI_OPTION */
@@ -934,8 +938,7 @@
typedef struct _psk_entry psk_entry;
-struct _psk_entry
-{
+struct _psk_entry {
const char *name;
size_t key_len;
unsigned char key[MBEDTLS_PSK_MAX_LEN];
@@ -948,30 +951,29 @@
/*
* Free a list of psk_entry's
*/
-int psk_free( psk_entry *head )
+int psk_free(psk_entry *head)
{
psk_entry *next;
- while( head != NULL )
- {
+ while (head != NULL) {
#if defined(MBEDTLS_USE_PSA_CRYPTO)
psa_status_t status;
mbedtls_svc_key_id_t const slot = head->slot;
- if( MBEDTLS_SVC_KEY_ID_GET_KEY_ID( slot ) != 0 )
- {
- status = psa_destroy_key( slot );
- if( status != PSA_SUCCESS )
- return( status );
+ if (MBEDTLS_SVC_KEY_ID_GET_KEY_ID(slot) != 0) {
+ status = psa_destroy_key(slot);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
}
#endif /* MBEDTLS_USE_PSA_CRYPTO */
next = head->next;
- mbedtls_free( head );
+ mbedtls_free(head);
head = next;
}
- return( 0 );
+ return 0;
}
/*
@@ -980,68 +982,68 @@
*
* Modifies the input string! This is not production quality!
*/
-psk_entry *psk_parse( char *psk_string )
+psk_entry *psk_parse(char *psk_string)
{
psk_entry *cur = NULL, *new = NULL;
char *p = psk_string;
char *end = p;
char *key_hex;
- while( *end != '\0' )
+ while (*end != '\0') {
++end;
+ }
*end = ',';
- while( p <= end )
- {
- if( ( new = mbedtls_calloc( 1, sizeof( psk_entry ) ) ) == NULL )
+ while (p <= end) {
+ if ((new = mbedtls_calloc(1, sizeof(psk_entry))) == NULL) {
goto error;
+ }
- memset( new, 0, sizeof( psk_entry ) );
+ memset(new, 0, sizeof(psk_entry));
- GET_ITEM( new->name );
- GET_ITEM( key_hex );
+ GET_ITEM(new->name);
+ GET_ITEM(key_hex);
- if( mbedtls_test_unhexify( new->key, MBEDTLS_PSK_MAX_LEN,
- key_hex, &new->key_len ) != 0 )
+ if (mbedtls_test_unhexify(new->key, MBEDTLS_PSK_MAX_LEN,
+ key_hex, &new->key_len) != 0) {
goto error;
+ }
new->next = cur;
cur = new;
}
- return( cur );
+ return cur;
error:
- psk_free( new );
- psk_free( cur );
- return( 0 );
+ psk_free(new);
+ psk_free(cur);
+ return 0;
}
/*
* PSK callback
*/
-int psk_callback( void *p_info, mbedtls_ssl_context *ssl,
- const unsigned char *name, size_t name_len )
+int psk_callback(void *p_info, mbedtls_ssl_context *ssl,
+ const unsigned char *name, size_t name_len)
{
psk_entry *cur = (psk_entry *) p_info;
- while( cur != NULL )
- {
- if( name_len == strlen( cur->name ) &&
- memcmp( name, cur->name, name_len ) == 0 )
- {
+ while (cur != NULL) {
+ if (name_len == strlen(cur->name) &&
+ memcmp(name, cur->name, name_len) == 0) {
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- if( MBEDTLS_SVC_KEY_ID_GET_KEY_ID( cur->slot ) != 0 )
- return( mbedtls_ssl_set_hs_psk_opaque( ssl, cur->slot ) );
- else
+ if (MBEDTLS_SVC_KEY_ID_GET_KEY_ID(cur->slot) != 0) {
+ return mbedtls_ssl_set_hs_psk_opaque(ssl, cur->slot);
+ } else
#endif
- return( mbedtls_ssl_set_hs_psk( ssl, cur->key, cur->key_len ) );
+ return mbedtls_ssl_set_hs_psk(ssl, cur->key, cur->key_len);
}
cur = cur->next;
}
- return( -1 );
+ return -1;
}
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */
@@ -1050,12 +1052,12 @@
/* Interruption handler to ensure clean exit (for valgrind testing) */
#if !defined(_WIN32)
static int received_sigterm = 0;
-void term_handler( int sig )
+void term_handler(int sig)
{
((void) sig);
received_sigterm = 1;
- mbedtls_net_free( &listen_fd ); /* causes mbedtls_net_accept() to abort */
- mbedtls_net_free( &client_fd ); /* causes net_read() to abort */
+ mbedtls_net_free(&listen_fd); /* causes mbedtls_net_accept() to abort */
+ mbedtls_net_free(&client_fd); /* causes net_read() to abort */
}
#endif
@@ -1069,16 +1071,15 @@
* - A write, when the SSL output buffer contains some data that has not
* been sent over the network yet.
* - An asynchronous callback that has not completed yet. */
-static int mbedtls_status_is_ssl_in_progress( int ret )
+static int mbedtls_status_is_ssl_in_progress(int ret)
{
- return( ret == MBEDTLS_ERR_SSL_WANT_READ ||
- ret == MBEDTLS_ERR_SSL_WANT_WRITE ||
- ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS );
+ return ret == MBEDTLS_ERR_SSL_WANT_READ ||
+ ret == MBEDTLS_ERR_SSL_WANT_WRITE ||
+ ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS;
}
#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
-typedef struct
-{
+typedef struct {
mbedtls_x509_crt *cert; /*!< Certificate corresponding to the key */
mbedtls_pk_context *pk; /*!< Private key */
unsigned delay; /*!< Number of resume steps to go through */
@@ -1093,8 +1094,7 @@
#define SSL_ASYNC_INJECT_ERROR_MAX SSL_ASYNC_INJECT_ERROR_RESUME
} ssl_async_inject_error_t;
-typedef struct
-{
+typedef struct {
ssl_async_key_slot_t slots[4]; /* key, key2, sni1, sni2 */
size_t slots_used;
ssl_async_inject_error_t inject_error;
@@ -1102,32 +1102,31 @@
void *p_rng;
} ssl_async_key_context_t;
-int ssl_async_set_key( ssl_async_key_context_t *ctx,
- mbedtls_x509_crt *cert,
- mbedtls_pk_context *pk,
- int pk_take_ownership,
- unsigned delay )
+int ssl_async_set_key(ssl_async_key_context_t *ctx,
+ mbedtls_x509_crt *cert,
+ mbedtls_pk_context *pk,
+ int pk_take_ownership,
+ unsigned delay)
{
- if( ctx->slots_used >= sizeof( ctx->slots ) / sizeof( *ctx->slots ) )
- return( -1 );
+ if (ctx->slots_used >= sizeof(ctx->slots) / sizeof(*ctx->slots)) {
+ return -1;
+ }
ctx->slots[ctx->slots_used].cert = cert;
ctx->slots[ctx->slots_used].pk = pk;
ctx->slots[ctx->slots_used].delay = delay;
ctx->slots[ctx->slots_used].pk_owned = pk_take_ownership;
++ctx->slots_used;
- return( 0 );
+ return 0;
}
#define SSL_ASYNC_INPUT_MAX_SIZE 512
-typedef enum
-{
+typedef enum {
ASYNC_OP_SIGN,
ASYNC_OP_DECRYPT,
} ssl_async_operation_type_t;
-typedef struct
-{
+typedef struct {
unsigned slot;
ssl_async_operation_type_t operation_type;
mbedtls_md_type_t md_alg;
@@ -1147,295 +1146,288 @@
"decrypt",
};
-static int ssl_async_start( mbedtls_ssl_context *ssl,
- mbedtls_x509_crt *cert,
- ssl_async_operation_type_t op_type,
- mbedtls_md_type_t md_alg,
- const unsigned char *input,
- size_t input_len )
+static int ssl_async_start(mbedtls_ssl_context *ssl,
+ mbedtls_x509_crt *cert,
+ ssl_async_operation_type_t op_type,
+ mbedtls_md_type_t md_alg,
+ const unsigned char *input,
+ size_t input_len)
{
ssl_async_key_context_t *config_data =
- mbedtls_ssl_conf_get_async_config_data( ssl->conf );
+ mbedtls_ssl_conf_get_async_config_data(ssl->conf);
unsigned slot;
ssl_async_operation_context_t *ctx = NULL;
const char *op_name = ssl_async_operation_names[op_type];
{
char dn[100];
- if( mbedtls_x509_dn_gets( dn, sizeof( dn ), &cert->subject ) > 0 )
- mbedtls_printf( "Async %s callback: looking for DN=%s\n",
- op_name, dn );
+ if (mbedtls_x509_dn_gets(dn, sizeof(dn), &cert->subject) > 0) {
+ mbedtls_printf("Async %s callback: looking for DN=%s\n",
+ op_name, dn);
+ }
}
/* Look for a private key that matches the public key in cert.
* Since this test code has the private key inside Mbed TLS,
* we call mbedtls_pk_check_pair to match a private key with the
* public key. */
- for( slot = 0; slot < config_data->slots_used; slot++ )
- {
- if( mbedtls_pk_check_pair( &cert->pk,
- config_data->slots[slot].pk,
- rng_get, &rng ) == 0 )
+ for (slot = 0; slot < config_data->slots_used; slot++) {
+ if (mbedtls_pk_check_pair(&cert->pk,
+ config_data->slots[slot].pk,
+ rng_get, &rng) == 0) {
break;
+ }
}
- if( slot == config_data->slots_used )
- {
- mbedtls_printf( "Async %s callback: no key matches this certificate.\n",
- op_name );
- return( MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH );
+ if (slot == config_data->slots_used) {
+ mbedtls_printf("Async %s callback: no key matches this certificate.\n",
+ op_name);
+ return MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH;
}
- mbedtls_printf( "Async %s callback: using key slot %u, delay=%u.\n",
- op_name, slot, config_data->slots[slot].delay );
+ mbedtls_printf("Async %s callback: using key slot %u, delay=%u.\n",
+ op_name, slot, config_data->slots[slot].delay);
- if( config_data->inject_error == SSL_ASYNC_INJECT_ERROR_START )
- {
- mbedtls_printf( "Async %s callback: injected error\n", op_name );
- return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE );
+ if (config_data->inject_error == SSL_ASYNC_INJECT_ERROR_START) {
+ mbedtls_printf("Async %s callback: injected error\n", op_name);
+ return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
}
- if( input_len > SSL_ASYNC_INPUT_MAX_SIZE )
- return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );
+ if (input_len > SSL_ASYNC_INPUT_MAX_SIZE) {
+ return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
+ }
- ctx = mbedtls_calloc( 1, sizeof( *ctx ) );
- if( ctx == NULL )
- return( MBEDTLS_ERR_SSL_ALLOC_FAILED );
+ ctx = mbedtls_calloc(1, sizeof(*ctx));
+ if (ctx == NULL) {
+ return MBEDTLS_ERR_SSL_ALLOC_FAILED;
+ }
ctx->slot = slot;
ctx->operation_type = op_type;
ctx->md_alg = md_alg;
- memcpy( ctx->input, input, input_len );
+ memcpy(ctx->input, input, input_len);
ctx->input_len = input_len;
ctx->remaining_delay = config_data->slots[slot].delay;
- mbedtls_ssl_set_async_operation_data( ssl, ctx );
+ mbedtls_ssl_set_async_operation_data(ssl, ctx);
- if( ctx->remaining_delay == 0 )
- return( 0 );
- else
- return( MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS );
+ if (ctx->remaining_delay == 0) {
+ return 0;
+ } else {
+ return MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS;
+ }
}
-static int ssl_async_sign( mbedtls_ssl_context *ssl,
- mbedtls_x509_crt *cert,
- mbedtls_md_type_t md_alg,
- const unsigned char *hash,
- size_t hash_len )
+static int ssl_async_sign(mbedtls_ssl_context *ssl,
+ mbedtls_x509_crt *cert,
+ mbedtls_md_type_t md_alg,
+ const unsigned char *hash,
+ size_t hash_len)
{
- return( ssl_async_start( ssl, cert,
- ASYNC_OP_SIGN, md_alg,
- hash, hash_len ) );
+ return ssl_async_start(ssl, cert,
+ ASYNC_OP_SIGN, md_alg,
+ hash, hash_len);
}
-static int ssl_async_decrypt( mbedtls_ssl_context *ssl,
- mbedtls_x509_crt *cert,
- const unsigned char *input,
- size_t input_len )
+static int ssl_async_decrypt(mbedtls_ssl_context *ssl,
+ mbedtls_x509_crt *cert,
+ const unsigned char *input,
+ size_t input_len)
{
- return( ssl_async_start( ssl, cert,
- ASYNC_OP_DECRYPT, MBEDTLS_MD_NONE,
- input, input_len ) );
+ return ssl_async_start(ssl, cert,
+ ASYNC_OP_DECRYPT, MBEDTLS_MD_NONE,
+ input, input_len);
}
-static int ssl_async_resume( mbedtls_ssl_context *ssl,
- unsigned char *output,
- size_t *output_len,
- size_t output_size )
+static int ssl_async_resume(mbedtls_ssl_context *ssl,
+ unsigned char *output,
+ size_t *output_len,
+ size_t output_size)
{
- ssl_async_operation_context_t *ctx = mbedtls_ssl_get_async_operation_data( ssl );
+ ssl_async_operation_context_t *ctx = mbedtls_ssl_get_async_operation_data(ssl);
ssl_async_key_context_t *config_data =
- mbedtls_ssl_conf_get_async_config_data( ssl->conf );
+ mbedtls_ssl_conf_get_async_config_data(ssl->conf);
ssl_async_key_slot_t *key_slot = &config_data->slots[ctx->slot];
int ret;
const char *op_name;
- if( ctx->remaining_delay > 0 )
- {
+ if (ctx->remaining_delay > 0) {
--ctx->remaining_delay;
- mbedtls_printf( "Async resume (slot %u): call %u more times.\n",
- ctx->slot, ctx->remaining_delay );
- return( MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS );
+ mbedtls_printf("Async resume (slot %u): call %u more times.\n",
+ ctx->slot, ctx->remaining_delay);
+ return MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS;
}
- switch( ctx->operation_type )
- {
+ switch (ctx->operation_type) {
case ASYNC_OP_DECRYPT:
- ret = mbedtls_pk_decrypt( key_slot->pk,
- ctx->input, ctx->input_len,
- output, output_len, output_size,
- config_data->f_rng, config_data->p_rng );
+ ret = mbedtls_pk_decrypt(key_slot->pk,
+ ctx->input, ctx->input_len,
+ output, output_len, output_size,
+ config_data->f_rng, config_data->p_rng);
break;
case ASYNC_OP_SIGN:
- ret = mbedtls_pk_sign( key_slot->pk,
- ctx->md_alg,
- ctx->input, ctx->input_len,
- output, output_size, output_len,
- config_data->f_rng, config_data->p_rng );
+ ret = mbedtls_pk_sign(key_slot->pk,
+ ctx->md_alg,
+ ctx->input, ctx->input_len,
+ output, output_size, output_len,
+ config_data->f_rng, config_data->p_rng);
break;
default:
- mbedtls_printf( "Async resume (slot %u): unknown operation type %ld. This shouldn't happen.\n",
- ctx->slot, (long) ctx->operation_type );
- mbedtls_free( ctx );
- return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE );
+ mbedtls_printf(
+ "Async resume (slot %u): unknown operation type %ld. This shouldn't happen.\n",
+ ctx->slot,
+ (long) ctx->operation_type);
+ mbedtls_free(ctx);
+ return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
break;
}
op_name = ssl_async_operation_names[ctx->operation_type];
- if( config_data->inject_error == SSL_ASYNC_INJECT_ERROR_RESUME )
- {
- mbedtls_printf( "Async resume callback: %s done but injected error\n",
- op_name );
- mbedtls_free( ctx );
- return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE );
+ if (config_data->inject_error == SSL_ASYNC_INJECT_ERROR_RESUME) {
+ mbedtls_printf("Async resume callback: %s done but injected error\n",
+ op_name);
+ mbedtls_free(ctx);
+ return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE;
}
- mbedtls_printf( "Async resume (slot %u): %s done, status=%d.\n",
- ctx->slot, op_name, ret );
- mbedtls_free( ctx );
- return( ret );
+ mbedtls_printf("Async resume (slot %u): %s done, status=%d.\n",
+ ctx->slot, op_name, ret);
+ mbedtls_free(ctx);
+ return ret;
}
-static void ssl_async_cancel( mbedtls_ssl_context *ssl )
+static void ssl_async_cancel(mbedtls_ssl_context *ssl)
{
- ssl_async_operation_context_t *ctx = mbedtls_ssl_get_async_operation_data( ssl );
- mbedtls_printf( "Async cancel callback.\n" );
- mbedtls_free( ctx );
+ ssl_async_operation_context_t *ctx = mbedtls_ssl_get_async_operation_data(ssl);
+ mbedtls_printf("Async cancel callback.\n");
+ mbedtls_free(ctx);
}
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
#if defined(MBEDTLS_USE_PSA_CRYPTO)
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
-static psa_status_t psa_setup_psk_key_slot( mbedtls_svc_key_id_t *slot,
- psa_algorithm_t alg,
- unsigned char *psk,
- size_t psk_len )
+static psa_status_t psa_setup_psk_key_slot(mbedtls_svc_key_id_t *slot,
+ psa_algorithm_t alg,
+ unsigned char *psk,
+ size_t psk_len)
{
psa_status_t status;
psa_key_attributes_t key_attributes;
key_attributes = psa_key_attributes_init();
- psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE );
- psa_set_key_algorithm( &key_attributes, alg );
- psa_set_key_type( &key_attributes, PSA_KEY_TYPE_DERIVE );
+ psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_DERIVE);
+ psa_set_key_algorithm(&key_attributes, alg);
+ psa_set_key_type(&key_attributes, PSA_KEY_TYPE_DERIVE);
- status = psa_import_key( &key_attributes, psk, psk_len, slot );
- if( status != PSA_SUCCESS )
- {
- fprintf( stderr, "IMPORT\n" );
- return( status );
+ status = psa_import_key(&key_attributes, psk, psk_len, slot);
+ if (status != PSA_SUCCESS) {
+ fprintf(stderr, "IMPORT\n");
+ return status;
}
- return( PSA_SUCCESS );
+ return PSA_SUCCESS;
}
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */
#endif /* MBEDTLS_USE_PSA_CRYPTO */
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
-int report_cid_usage( mbedtls_ssl_context *ssl,
- const char *additional_description )
+int report_cid_usage(mbedtls_ssl_context *ssl,
+ const char *additional_description)
{
int ret;
- unsigned char peer_cid[ MBEDTLS_SSL_CID_OUT_LEN_MAX ];
+ unsigned char peer_cid[MBEDTLS_SSL_CID_OUT_LEN_MAX];
size_t peer_cid_len;
int cid_negotiated;
- if( opt.transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM )
- return( 0 );
+ if (opt.transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) {
+ return 0;
+ }
/* Check if the use of a CID has been negotiated */
- ret = mbedtls_ssl_get_peer_cid( ssl, &cid_negotiated,
- peer_cid, &peer_cid_len );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n",
- (unsigned int) -ret );
- return( ret );
+ ret = mbedtls_ssl_get_peer_cid(ssl, &cid_negotiated,
+ peer_cid, &peer_cid_len);
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n",
+ (unsigned int) -ret);
+ return ret;
}
- if( cid_negotiated == MBEDTLS_SSL_CID_DISABLED )
- {
- if( opt.cid_enabled == MBEDTLS_SSL_CID_ENABLED )
- {
- mbedtls_printf( "(%s) Use of Connection ID was not offered by client.\n",
- additional_description );
+ if (cid_negotiated == MBEDTLS_SSL_CID_DISABLED) {
+ if (opt.cid_enabled == MBEDTLS_SSL_CID_ENABLED) {
+ mbedtls_printf("(%s) Use of Connection ID was not offered by client.\n",
+ additional_description);
}
- }
- else
- {
- size_t idx=0;
- mbedtls_printf( "(%s) Use of Connection ID has been negotiated.\n",
- additional_description );
- mbedtls_printf( "(%s) Peer CID (length %u Bytes): ",
- additional_description,
- (unsigned) peer_cid_len );
- while( idx < peer_cid_len )
- {
- mbedtls_printf( "%02x ", peer_cid[ idx ] );
+ } else {
+ size_t idx = 0;
+ mbedtls_printf("(%s) Use of Connection ID has been negotiated.\n",
+ additional_description);
+ mbedtls_printf("(%s) Peer CID (length %u Bytes): ",
+ additional_description,
+ (unsigned) peer_cid_len);
+ while (idx < peer_cid_len) {
+ mbedtls_printf("%02x ", peer_cid[idx]);
idx++;
}
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
}
- return( 0 );
+ return 0;
}
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_HAVE_TIME)
/* Functions for session ticket tests */
-int dummy_ticket_write( void *p_ticket, const mbedtls_ssl_session *session,
- unsigned char *start, const unsigned char *end,
- size_t *tlen, uint32_t *ticket_lifetime )
+int dummy_ticket_write(void *p_ticket, const mbedtls_ssl_session *session,
+ unsigned char *start, const unsigned char *end,
+ size_t *tlen, uint32_t *ticket_lifetime)
{
int ret;
unsigned char *p = start;
size_t clear_len;
((void) p_ticket);
- if( end - p < 4 )
- {
- return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL );
+ if (end - p < 4) {
+ return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL;
}
- *((uint32_t *)p) = 7 * 24 * 3600;
+ *((uint32_t *) p) = 7 * 24 * 3600;
*ticket_lifetime = 7 * 24 * 3600;
p += 4;
/* Dump session state */
- if( ( ret = mbedtls_ssl_session_save( session, p, end - p,
- &clear_len ) ) != 0 )
- {
- return( ret );
+ if ((ret = mbedtls_ssl_session_save(session, p, end - p,
+ &clear_len)) != 0) {
+ return ret;
}
*tlen = 4 + clear_len;
- return( 0 );
+ return 0;
}
-int dummy_ticket_parse( void *p_ticket, mbedtls_ssl_session *session,
- unsigned char *buf, size_t len )
+int dummy_ticket_parse(void *p_ticket, mbedtls_ssl_session *session,
+ unsigned char *buf, size_t len)
{
int ret;
((void) p_ticket);
- if( ( ret = mbedtls_ssl_session_load( session, buf + 4, len - 4 ) ) != 0 )
- return( ret );
+ if ((ret = mbedtls_ssl_session_load(session, buf + 4, len - 4)) != 0) {
+ return ret;
+ }
- switch( opt.dummy_ticket % 7 )
- {
+ switch (opt.dummy_ticket % 7) {
case 1:
- return( MBEDTLS_ERR_SSL_INVALID_MAC );
+ return MBEDTLS_ERR_SSL_INVALID_MAC;
case 2:
- return( MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED );
+ return MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED;
case 3:
- session->start = mbedtls_time( NULL ) + 10;
+ session->start = mbedtls_time(NULL) + 10;
break;
case 4:
- session->start = mbedtls_time( NULL ) - 10 - 7 * 24 * 3600;
+ session->start = mbedtls_time(NULL) - 10 - 7 * 24 * 3600;
break;
case 5:
- session->start = mbedtls_time( NULL ) - 10;
+ session->start = mbedtls_time(NULL) - 10;
break;
case 6:
- session->start = mbedtls_time( NULL );
+ session->start = mbedtls_time(NULL);
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
session->ticket_age_add -= 1000;
#endif
@@ -1444,16 +1436,16 @@
break;
}
- return( ret );
+ return ret;
}
#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_HAVE_TIME */
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 0, len, written, frags, exchanges_left;
int query_config_ret = 0;
io_ctx_t io_ctx;
- unsigned char* buf = 0;
+ unsigned char *buf = 0;
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
#if defined(MBEDTLS_USE_PSA_CRYPTO)
psa_algorithm_t alg = 0;
@@ -1509,7 +1501,7 @@
#endif
#if defined(MBEDTLS_ECP_C)
uint16_t group_list[CURVE_LIST_SIZE];
- const mbedtls_ecp_curve_info * curve_cur;
+ const mbedtls_ecp_curve_info *curve_cur;
#endif
#if defined(MBEDTLS_SSL_ALPN)
const char *alpn_list[ALPN_LIST_SIZE];
@@ -1544,109 +1536,108 @@
#endif
unsigned char eap_tls_keymaterial[16];
unsigned char eap_tls_iv[8];
- const char* eap_tls_label = "client EAP encryption";
+ const char *eap_tls_label = "client EAP encryption";
eap_tls_keys eap_tls_keying;
-#if defined( MBEDTLS_SSL_DTLS_SRTP )
+#if defined(MBEDTLS_SSL_DTLS_SRTP)
/*! master keys and master salt for SRTP generated during handshake */
- unsigned char dtls_srtp_key_material[MBEDTLS_TLS_SRTP_MAX_KEY_MATERIAL_LENGTH];
- const char* dtls_srtp_label = "EXTRACTOR-dtls_srtp";
- dtls_srtp_keys dtls_srtp_keying;
- const mbedtls_ssl_srtp_profile default_profiles[] = {
- MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80,
- MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32,
- MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80,
- MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32,
- MBEDTLS_TLS_SRTP_UNSET
- };
+ unsigned char dtls_srtp_key_material[MBEDTLS_TLS_SRTP_MAX_KEY_MATERIAL_LENGTH];
+ const char *dtls_srtp_label = "EXTRACTOR-dtls_srtp";
+ dtls_srtp_keys dtls_srtp_keying;
+ const mbedtls_ssl_srtp_profile default_profiles[] = {
+ MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80,
+ MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32,
+ MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80,
+ MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32,
+ MBEDTLS_TLS_SRTP_UNSET
+ };
#endif /* MBEDTLS_SSL_DTLS_SRTP */
#if defined(MBEDTLS_SSL_EARLY_DATA)
int tls13_early_data_enabled = MBEDTLS_SSL_EARLY_DATA_DISABLED;
#endif
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
- mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof(alloc_buf) );
+ mbedtls_memory_buffer_alloc_init(alloc_buf, sizeof(alloc_buf));
#if defined(MBEDTLS_MEMORY_DEBUG)
size_t current_heap_memory, peak_heap_memory, heap_blocks;
#endif /* MBEDTLS_MEMORY_DEBUG */
#endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */
#if defined(MBEDTLS_TEST_HOOKS)
- test_hooks_init( );
+ test_hooks_init();
#endif /* MBEDTLS_TEST_HOOKS */
/*
* Make sure memory references are valid in case we exit early.
*/
- mbedtls_net_init( &client_fd );
- mbedtls_net_init( &listen_fd );
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- rng_init( &rng );
+ mbedtls_net_init(&client_fd);
+ mbedtls_net_init(&listen_fd);
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
+ rng_init(&rng);
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- mbedtls_x509_crt_init( &cacert );
- mbedtls_x509_crt_init( &srvcert );
- mbedtls_pk_init( &pkey );
- mbedtls_x509_crt_init( &srvcert2 );
- mbedtls_pk_init( &pkey2 );
+ mbedtls_x509_crt_init(&cacert);
+ mbedtls_x509_crt_init(&srvcert);
+ mbedtls_pk_init(&pkey);
+ mbedtls_x509_crt_init(&srvcert2);
+ mbedtls_pk_init(&pkey2);
#endif
#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
- memset( &ssl_async_keys, 0, sizeof( ssl_async_keys ) );
+ memset(&ssl_async_keys, 0, sizeof(ssl_async_keys));
#endif
#if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO)
- mbedtls_dhm_init( &dhm );
+ mbedtls_dhm_init(&dhm);
#endif
#if defined(MBEDTLS_SSL_CACHE_C)
- mbedtls_ssl_cache_init( &cache );
+ mbedtls_ssl_cache_init(&cache);
#endif
#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C)
- mbedtls_ssl_ticket_init( &ticket_ctx );
+ mbedtls_ssl_ticket_init(&ticket_ctx);
#endif
#if defined(MBEDTLS_SSL_ALPN)
- memset( (void *) alpn_list, 0, sizeof( alpn_list ) );
+ memset((void *) alpn_list, 0, sizeof(alpn_list));
#endif
#if defined(MBEDTLS_SSL_COOKIE_C)
- mbedtls_ssl_cookie_init( &cookie_ctx );
+ mbedtls_ssl_cookie_init(&cookie_ctx);
#endif
#if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)
status = psa_crypto_init();
- if( status != PSA_SUCCESS )
- {
- mbedtls_fprintf( stderr, "Failed to initialize PSA Crypto implementation: %d\n",
- (int) status );
+ if (status != PSA_SUCCESS) {
+ mbedtls_fprintf(stderr, "Failed to initialize PSA Crypto implementation: %d\n",
+ (int) status);
ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED;
goto exit;
}
#endif /* MBEDTLS_USE_PSA_CRYPTO */
#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
- mbedtls_test_enable_insecure_external_rng( );
+ mbedtls_test_enable_insecure_external_rng();
#endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */
#if !defined(_WIN32)
/* Abort cleanly on SIGTERM and SIGINT */
- signal( SIGTERM, term_handler );
- signal( SIGINT, term_handler );
+ signal(SIGTERM, term_handler);
+ signal(SIGINT, term_handler);
#endif
- if( argc == 0 )
- {
- usage:
- if( ret == 0 )
+ if (argc == 0) {
+usage:
+ if (ret == 0) {
ret = 1;
+ }
- mbedtls_printf( USAGE1 );
- mbedtls_printf( USAGE2 );
- mbedtls_printf( USAGE3 );
- mbedtls_printf( USAGE4 );
+ mbedtls_printf(USAGE1);
+ mbedtls_printf(USAGE2);
+ mbedtls_printf(USAGE3);
+ mbedtls_printf(USAGE4);
list = mbedtls_ssl_list_ciphersuites();
- while( *list )
- {
- mbedtls_printf(" %-42s", mbedtls_ssl_get_ciphersuite_name( *list ) );
+ while (*list) {
+ mbedtls_printf(" %-42s", mbedtls_ssl_get_ciphersuite_name(*list));
list++;
- if( !*list )
+ if (!*list) {
break;
- mbedtls_printf(" %s\n", mbedtls_ssl_get_ciphersuite_name( *list ) );
+ }
+ mbedtls_printf(" %s\n", mbedtls_ssl_get_ciphersuite_name(*list));
list++;
}
mbedtls_printf("\n");
@@ -1692,7 +1683,7 @@
#if defined(MBEDTLS_USE_PSA_CRYPTO)
opt.ecjpake_pw_opaque = DFL_ECJPAKE_PW_OPAQUE;
#endif
- opt.force_ciphersuite[0]= DFL_FORCE_CIPHER;
+ opt.force_ciphersuite[0] = DFL_FORCE_CIPHER;
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
opt.tls13_kex_modes = DFL_TLS1_3_KEX_MODES;
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
@@ -1750,106 +1741,99 @@
opt.key2_opaque_alg1 = DFL_KEY_OPAQUE_ALG;
opt.key2_opaque_alg2 = DFL_KEY_OPAQUE_ALG;
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
+ if ((q = strchr(p, '=')) == NULL) {
goto usage;
+ }
*q++ = '\0';
- if( strcmp( p, "server_port" ) == 0 )
+ if (strcmp(p, "server_port") == 0) {
opt.server_port = q;
- else if( strcmp( p, "server_addr" ) == 0 )
+ } else if (strcmp(p, "server_addr") == 0) {
opt.server_addr = q;
- else if( strcmp( p, "dtls" ) == 0 )
- {
- int t = atoi( q );
- if( t == 0 )
+ } else if (strcmp(p, "dtls") == 0) {
+ int t = atoi(q);
+ if (t == 0) {
opt.transport = MBEDTLS_SSL_TRANSPORT_STREAM;
- else if( t == 1 )
+ } else if (t == 1) {
opt.transport = MBEDTLS_SSL_TRANSPORT_DATAGRAM;
- else
+ } else {
goto usage;
- }
- else if( strcmp( p, "debug_level" ) == 0 )
- {
- opt.debug_level = atoi( q );
- if( opt.debug_level < 0 || opt.debug_level > 65535 )
+ }
+ } else if (strcmp(p, "debug_level") == 0) {
+ opt.debug_level = atoi(q);
+ if (opt.debug_level < 0 || opt.debug_level > 65535) {
goto usage;
- }
- else if( strcmp( p, "build_version" ) == 0 )
- {
- if( strcmp( q, "1" ) == 0 )
- {
- mbedtls_printf( "build version: %s (build %d)\n",
- MBEDTLS_VERSION_STRING_FULL,
- MBEDTLS_VERSION_NUMBER );
+ }
+ } else if (strcmp(p, "build_version") == 0) {
+ if (strcmp(q, "1") == 0) {
+ mbedtls_printf("build version: %s (build %d)\n",
+ MBEDTLS_VERSION_STRING_FULL,
+ MBEDTLS_VERSION_NUMBER);
goto exit;
}
- }
- else if( strcmp( p, "nbio" ) == 0 )
- {
- opt.nbio = atoi( q );
- if( opt.nbio < 0 || opt.nbio > 2 )
+ } else if (strcmp(p, "nbio") == 0) {
+ opt.nbio = atoi(q);
+ if (opt.nbio < 0 || opt.nbio > 2) {
goto usage;
- }
- else if( strcmp( p, "event" ) == 0 )
- {
- opt.event = atoi( q );
- if( opt.event < 0 || opt.event > 2 )
+ }
+ } else if (strcmp(p, "event") == 0) {
+ opt.event = atoi(q);
+ if (opt.event < 0 || opt.event > 2) {
goto usage;
- }
- else if( strcmp( p, "read_timeout" ) == 0 )
- opt.read_timeout = atoi( q );
- else if( strcmp( p, "buffer_size" ) == 0 )
- {
- opt.buffer_size = atoi( q );
- if( opt.buffer_size < 1 )
+ }
+ } else if (strcmp(p, "read_timeout") == 0) {
+ opt.read_timeout = atoi(q);
+ } else if (strcmp(p, "buffer_size") == 0) {
+ opt.buffer_size = atoi(q);
+ if (opt.buffer_size < 1) {
goto usage;
- }
- else if( strcmp( p, "response_size" ) == 0 )
- {
- opt.response_size = atoi( q );
- if( opt.response_size < 0 || opt.response_size > MBEDTLS_SSL_OUT_CONTENT_LEN )
+ }
+ } else if (strcmp(p, "response_size") == 0) {
+ opt.response_size = atoi(q);
+ if (opt.response_size < 0 || opt.response_size > MBEDTLS_SSL_OUT_CONTENT_LEN) {
goto usage;
- if( opt.buffer_size < opt.response_size )
+ }
+ if (opt.buffer_size < opt.response_size) {
opt.buffer_size = opt.response_size;
- }
- else if( strcmp( p, "ca_file" ) == 0 )
+ }
+ } else if (strcmp(p, "ca_file") == 0) {
opt.ca_file = q;
- else if( strcmp( p, "ca_path" ) == 0 )
+ } else if (strcmp(p, "ca_path") == 0) {
opt.ca_path = q;
- else if( strcmp( p, "crt_file" ) == 0 )
+ } else if (strcmp(p, "crt_file") == 0) {
opt.crt_file = q;
- else if( strcmp( p, "key_file" ) == 0 )
+ } else if (strcmp(p, "key_file") == 0) {
opt.key_file = q;
- else if( strcmp( p, "key_pwd" ) == 0 )
+ } else if (strcmp(p, "key_pwd") == 0) {
opt.key_pwd = q;
+ }
#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- else if( strcmp( p, "key_opaque" ) == 0 )
- opt.key_opaque = atoi( q );
+ else if (strcmp(p, "key_opaque") == 0) {
+ opt.key_opaque = atoi(q);
+ }
#endif
- else if( strcmp( p, "crt_file2" ) == 0 )
+ else if (strcmp(p, "crt_file2") == 0) {
opt.crt_file2 = q;
- else if( strcmp( p, "key_file2" ) == 0 )
+ } else if (strcmp(p, "key_file2") == 0) {
opt.key_file2 = q;
- else if( strcmp( p, "key_pwd2" ) == 0 )
+ } else if (strcmp(p, "key_pwd2") == 0) {
opt.key_pwd2 = q;
- else if( strcmp( p, "dhm_file" ) == 0 )
+ } else if (strcmp(p, "dhm_file") == 0) {
opt.dhm_file = q;
+ }
#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
- else if( strcmp( p, "async_operations" ) == 0 )
+ else if (strcmp(p, "async_operations") == 0) {
opt.async_operations = q;
- else if( strcmp( p, "async_private_delay1" ) == 0 )
- opt.async_private_delay1 = atoi( q );
- else if( strcmp( p, "async_private_delay2" ) == 0 )
- opt.async_private_delay2 = atoi( q );
- else if( strcmp( p, "async_private_error" ) == 0 )
- {
- int n = atoi( q );
- if( n < -SSL_ASYNC_INJECT_ERROR_MAX ||
- n > SSL_ASYNC_INJECT_ERROR_MAX )
- {
+ } else if (strcmp(p, "async_private_delay1") == 0) {
+ opt.async_private_delay1 = atoi(q);
+ } else if (strcmp(p, "async_private_delay2") == 0) {
+ opt.async_private_delay2 = atoi(q);
+ } else if (strcmp(p, "async_private_error") == 0) {
+ int n = atoi(q);
+ if (n < -SSL_ASYNC_INJECT_ERROR_MAX ||
+ n > SSL_ASYNC_INJECT_ERROR_MAX) {
ret = 2;
goto usage;
}
@@ -1857,89 +1841,82 @@
}
#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
- else if( strcmp( p, "cid" ) == 0 )
- {
- opt.cid_enabled = atoi( q );
- if( opt.cid_enabled != 0 && opt.cid_enabled != 1 )
+ else if (strcmp(p, "cid") == 0) {
+ opt.cid_enabled = atoi(q);
+ if (opt.cid_enabled != 0 && opt.cid_enabled != 1) {
goto usage;
- }
- else if( strcmp( p, "cid_renego" ) == 0 )
- {
- opt.cid_enabled_renego = atoi( q );
- if( opt.cid_enabled_renego != 0 && opt.cid_enabled_renego != 1 )
+ }
+ } else if (strcmp(p, "cid_renego") == 0) {
+ opt.cid_enabled_renego = atoi(q);
+ if (opt.cid_enabled_renego != 0 && opt.cid_enabled_renego != 1) {
goto usage;
- }
- else if( strcmp( p, "cid_val" ) == 0 )
- {
+ }
+ } else if (strcmp(p, "cid_val") == 0) {
opt.cid_val = q;
- }
- else if( strcmp( p, "cid_val_renego" ) == 0 )
- {
+ } else if (strcmp(p, "cid_val_renego") == 0) {
opt.cid_val_renego = q;
}
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
- else if( strcmp( p, "psk" ) == 0 )
+ else if (strcmp(p, "psk") == 0) {
opt.psk = q;
+ }
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- else if( strcmp( p, "psk_opaque" ) == 0 )
- opt.psk_opaque = atoi( q );
- else if( strcmp( p, "psk_list_opaque" ) == 0 )
- opt.psk_list_opaque = atoi( q );
+ else if (strcmp(p, "psk_opaque") == 0) {
+ opt.psk_opaque = atoi(q);
+ } else if (strcmp(p, "psk_list_opaque") == 0) {
+ opt.psk_list_opaque = atoi(q);
+ }
#endif
#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK)
- else if( strcmp( p, "ca_callback" ) == 0)
- opt.ca_callback = atoi( q );
+ else if (strcmp(p, "ca_callback") == 0) {
+ opt.ca_callback = atoi(q);
+ }
#endif
- else if( strcmp( p, "psk_identity" ) == 0 )
+ else if (strcmp(p, "psk_identity") == 0) {
opt.psk_identity = q;
- else if( strcmp( p, "psk_list" ) == 0 )
+ } else if (strcmp(p, "psk_list") == 0) {
opt.psk_list = q;
- else if( strcmp( p, "ecjpake_pw" ) == 0 )
+ } else if (strcmp(p, "ecjpake_pw") == 0) {
opt.ecjpake_pw = q;
+ }
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- else if( strcmp( p, "ecjpake_pw_opaque" ) == 0 )
- opt.ecjpake_pw_opaque = atoi( q );
+ else if (strcmp(p, "ecjpake_pw_opaque") == 0) {
+ opt.ecjpake_pw_opaque = atoi(q);
+ }
#endif
- else if( strcmp( p, "force_ciphersuite" ) == 0 )
- {
- opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id( q );
+ else if (strcmp(p, "force_ciphersuite") == 0) {
+ opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id(q);
- if( opt.force_ciphersuite[0] == 0 )
- {
+ if (opt.force_ciphersuite[0] == 0) {
ret = 2;
goto usage;
}
opt.force_ciphersuite[1] = 0;
- }
- else if( strcmp( p, "curves" ) == 0 )
+ } else if (strcmp(p, "curves") == 0) {
opt.curves = q;
+ }
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- else if( strcmp( p, "sig_algs" ) == 0 )
+ else if (strcmp(p, "sig_algs") == 0) {
opt.sig_algs = q;
+ }
#endif
#if defined(MBEDTLS_SSL_EARLY_DATA)
- else if( strcmp( p, "max_early_data_size" ) == 0 )
- {
- long long value = atoll( q );
+ else if (strcmp(p, "max_early_data_size") == 0) {
+ long long value = atoll(q);
tls13_early_data_enabled =
value >= 0 ? MBEDTLS_SSL_EARLY_DATA_ENABLED :
- MBEDTLS_SSL_EARLY_DATA_DISABLED;
- if( tls13_early_data_enabled )
- {
- opt.max_early_data_size = atoi( q );
+ MBEDTLS_SSL_EARLY_DATA_DISABLED;
+ if (tls13_early_data_enabled) {
+ opt.max_early_data_size = atoi(q);
}
}
#endif /* MBEDTLS_SSL_EARLY_DATA */
- else if( strcmp( p, "renegotiation" ) == 0 )
- {
- opt.renegotiation = (atoi( q )) ?
- MBEDTLS_SSL_RENEGOTIATION_ENABLED :
- MBEDTLS_SSL_RENEGOTIATION_DISABLED;
- }
- else if( strcmp( p, "allow_legacy" ) == 0 )
- {
- switch( atoi( q ) )
- {
+ else if (strcmp(p, "renegotiation") == 0) {
+ opt.renegotiation = (atoi(q)) ?
+ MBEDTLS_SSL_RENEGOTIATION_ENABLED :
+ MBEDTLS_SSL_RENEGOTIATION_DISABLED;
+ } else if (strcmp(p, "allow_legacy") == 0) {
+ switch (atoi(q)) {
case -1:
opt.allow_legacy = MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE;
break;
@@ -1951,49 +1928,45 @@
break;
default: goto usage;
}
- }
- else if( strcmp( p, "renegotiate" ) == 0 )
- {
- opt.renegotiate = atoi( q );
- if( opt.renegotiate < 0 || opt.renegotiate > 1 )
+ } else if (strcmp(p, "renegotiate") == 0) {
+ opt.renegotiate = atoi(q);
+ if (opt.renegotiate < 0 || opt.renegotiate > 1) {
goto usage;
- }
- else if( strcmp( p, "renego_delay" ) == 0 )
- {
- opt.renego_delay = atoi( q );
- }
- else if( strcmp( p, "renego_period" ) == 0 )
- {
+ }
+ } else if (strcmp(p, "renego_delay") == 0) {
+ opt.renego_delay = atoi(q);
+ } else if (strcmp(p, "renego_period") == 0) {
#if defined(_MSC_VER)
- opt.renego_period = _strtoui64( q, NULL, 10 );
+ opt.renego_period = _strtoui64(q, NULL, 10);
#else
- if( sscanf( q, "%" SCNu64, &opt.renego_period ) != 1 )
+ if (sscanf(q, "%" SCNu64, &opt.renego_period) != 1) {
goto usage;
+ }
#endif /* _MSC_VER */
- if( opt.renego_period < 2 )
+ if (opt.renego_period < 2) {
goto usage;
- }
- else if( strcmp( p, "exchanges" ) == 0 )
- {
- opt.exchanges = atoi( q );
- if( opt.exchanges < 0 )
+ }
+ } else if (strcmp(p, "exchanges") == 0) {
+ opt.exchanges = atoi(q);
+ if (opt.exchanges < 0) {
goto usage;
+ }
}
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
- else if( strcmp( p, "tls13_kex_modes" ) == 0 )
- {
- if( strcmp( q, "psk" ) == 0 )
+ else if (strcmp(p, "tls13_kex_modes") == 0) {
+ if (strcmp(q, "psk") == 0) {
opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK;
- else if( strcmp(q, "psk_ephemeral" ) == 0 )
+ } else if (strcmp(q, "psk_ephemeral") == 0) {
opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL;
- else if( strcmp(q, "ephemeral" ) == 0 )
+ } else if (strcmp(q, "ephemeral") == 0) {
opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL;
- else if( strcmp(q, "ephemeral_all" ) == 0 )
+ } else if (strcmp(q, "ephemeral_all") == 0) {
opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL;
- else if( strcmp( q, "psk_all" ) == 0 )
+ } else if (strcmp(q, "psk_all") == 0) {
opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL;
- else if( strcmp( q, "all" ) == 0 )
+ } else if (strcmp(q, "all") == 0) {
opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL;
+ }
/* The purpose of `psk_or_ephemeral` is to improve test coverage. That
* is not recommended in practice.
* `psk_or_ephemeral` exists in theory, we need this mode to test if
@@ -2001,115 +1974,100 @@
* should always perform `ephemeral` handshake. `psk` or `psk_ephemeral`
* is not expected.
*/
- else if( strcmp( q, "psk_or_ephemeral" ) == 0 )
+ else if (strcmp(q, "psk_or_ephemeral") == 0) {
opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK |
- MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL ;
- else goto usage;
+ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL;
+ } else {
+ goto usage;
+ }
}
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
- else if( strcmp( p, "min_version" ) == 0 )
- {
- if( strcmp( q, "tls12" ) == 0 ||
- strcmp( q, "dtls12" ) == 0 )
+ else if (strcmp(p, "min_version") == 0) {
+ if (strcmp(q, "tls12") == 0 ||
+ strcmp(q, "dtls12") == 0) {
opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2;
+ }
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
- else if( strcmp( q, "tls13" ) == 0 )
+ else if (strcmp(q, "tls13") == 0) {
opt.min_version = MBEDTLS_SSL_VERSION_TLS1_3;
+ }
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
- else
+ else {
goto usage;
- }
- else if( strcmp( p, "max_version" ) == 0 )
- {
- if( strcmp( q, "tls12" ) == 0 ||
- strcmp( q, "dtls12" ) == 0 )
+ }
+ } else if (strcmp(p, "max_version") == 0) {
+ if (strcmp(q, "tls12") == 0 ||
+ strcmp(q, "dtls12") == 0) {
opt.max_version = MBEDTLS_SSL_VERSION_TLS1_2;
+ }
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
- else if( strcmp( q, "tls13" ) == 0 )
+ else if (strcmp(q, "tls13") == 0) {
opt.max_version = MBEDTLS_SSL_VERSION_TLS1_3;
+ }
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
- else
+ else {
goto usage;
- }
- else if( strcmp( p, "allow_sha1" ) == 0 )
- {
- switch( atoi( q ) )
- {
+ }
+ } else if (strcmp(p, "allow_sha1") == 0) {
+ switch (atoi(q)) {
case 0: opt.allow_sha1 = 0; break;
case 1: opt.allow_sha1 = 1; break;
default: goto usage;
}
- }
- else if( strcmp( p, "force_version" ) == 0 )
- {
- if( strcmp( q, "tls12" ) == 0 )
- {
+ } else if (strcmp(p, "force_version") == 0) {
+ if (strcmp(q, "tls12") == 0) {
opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2;
opt.max_version = MBEDTLS_SSL_VERSION_TLS1_2;
- }
- else if( strcmp( q, "dtls12" ) == 0 )
- {
+ } else if (strcmp(q, "dtls12") == 0) {
opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2;
opt.max_version = MBEDTLS_SSL_VERSION_TLS1_2;
opt.transport = MBEDTLS_SSL_TRANSPORT_DATAGRAM;
}
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
- else if( strcmp( q, "tls13" ) == 0 )
- {
+ else if (strcmp(q, "tls13") == 0) {
opt.min_version = MBEDTLS_SSL_VERSION_TLS1_3;
opt.max_version = MBEDTLS_SSL_VERSION_TLS1_3;
}
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
- else
+ else {
goto usage;
- }
- else if( strcmp( p, "auth_mode" ) == 0 )
- {
- if( ( opt.auth_mode = get_auth_mode( q ) ) < 0 )
+ }
+ } else if (strcmp(p, "auth_mode") == 0) {
+ if ((opt.auth_mode = get_auth_mode(q)) < 0) {
goto usage;
- }
- else if( strcmp( p, "cert_req_ca_list" ) == 0 )
- {
- opt.cert_req_ca_list = atoi( q );
- if( opt.cert_req_ca_list < 0 || opt.cert_req_ca_list > 3 )
+ }
+ } else if (strcmp(p, "cert_req_ca_list") == 0) {
+ opt.cert_req_ca_list = atoi(q);
+ if (opt.cert_req_ca_list < 0 || opt.cert_req_ca_list > 3) {
goto usage;
- if( opt.cert_req_ca_list > 1 )
- {
+ }
+ if (opt.cert_req_ca_list > 1) {
opt.cert_req_dn_hint = opt.cert_req_ca_list;
opt.cert_req_ca_list = MBEDTLS_SSL_CERT_REQ_CA_LIST_ENABLED;
}
- }
- else if( strcmp( p, "max_frag_len" ) == 0 )
- {
- if( strcmp( q, "512" ) == 0 )
+ } else if (strcmp(p, "max_frag_len") == 0) {
+ if (strcmp(q, "512") == 0) {
opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_512;
- else if( strcmp( q, "1024" ) == 0 )
+ } else if (strcmp(q, "1024") == 0) {
opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_1024;
- else if( strcmp( q, "2048" ) == 0 )
+ } else if (strcmp(q, "2048") == 0) {
opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_2048;
- else if( strcmp( q, "4096" ) == 0 )
+ } else if (strcmp(q, "4096") == 0) {
opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_4096;
- else
+ } else {
goto usage;
- }
- else if( strcmp( p, "alpn" ) == 0 )
- {
+ }
+ } else if (strcmp(p, "alpn") == 0) {
opt.alpn_string = q;
- }
- else if( strcmp( p, "trunc_hmac" ) == 0 )
- {
- switch( atoi( q ) )
- {
+ } else if (strcmp(p, "trunc_hmac") == 0) {
+ switch (atoi(q)) {
case 0: opt.trunc_hmac = MBEDTLS_SSL_TRUNC_HMAC_DISABLED; break;
case 1: opt.trunc_hmac = MBEDTLS_SSL_TRUNC_HMAC_ENABLED; break;
default: goto usage;
}
- }
- else if( strcmp( p, "extended_ms" ) == 0 )
- {
- switch( atoi( q ) )
- {
+ } else if (strcmp(p, "extended_ms") == 0) {
+ switch (atoi(q)) {
case 0:
opt.extended_ms = MBEDTLS_SSL_EXTENDED_MS_DISABLED;
break;
@@ -2118,190 +2076,152 @@
break;
default: goto usage;
}
- }
- else if( strcmp( p, "etm" ) == 0 )
- {
- switch( atoi( q ) )
- {
+ } else if (strcmp(p, "etm") == 0) {
+ switch (atoi(q)) {
case 0: opt.etm = MBEDTLS_SSL_ETM_DISABLED; break;
case 1: opt.etm = MBEDTLS_SSL_ETM_ENABLED; break;
default: goto usage;
}
- }
- else if( strcmp( p, "tickets" ) == 0 )
- {
- opt.tickets = atoi( q );
- if( opt.tickets < 0 )
+ } else if (strcmp(p, "tickets") == 0) {
+ opt.tickets = atoi(q);
+ if (opt.tickets < 0) {
goto usage;
- }
- else if( strcmp( p, "dummy_ticket" ) == 0 )
- {
- opt.dummy_ticket = atoi( q );
- if( opt.dummy_ticket < 0 )
+ }
+ } else if (strcmp(p, "dummy_ticket") == 0) {
+ opt.dummy_ticket = atoi(q);
+ if (opt.dummy_ticket < 0) {
goto usage;
- }
- else if( strcmp( p, "ticket_rotate" ) == 0 )
- {
- opt.ticket_rotate = atoi( q );
- if( opt.ticket_rotate < 0 || opt.ticket_rotate > 1 )
+ }
+ } else if (strcmp(p, "ticket_rotate") == 0) {
+ opt.ticket_rotate = atoi(q);
+ if (opt.ticket_rotate < 0 || opt.ticket_rotate > 1) {
goto usage;
- }
- else if( strcmp( p, "ticket_timeout" ) == 0 )
- {
- opt.ticket_timeout = atoi( q );
- if( opt.ticket_timeout < 0 )
+ }
+ } else if (strcmp(p, "ticket_timeout") == 0) {
+ opt.ticket_timeout = atoi(q);
+ if (opt.ticket_timeout < 0) {
goto usage;
- }
- else if( strcmp( p, "ticket_aead" ) == 0 )
- {
- const mbedtls_cipher_info_t *ci = mbedtls_cipher_info_from_string( q );
+ }
+ } else if (strcmp(p, "ticket_aead") == 0) {
+ const mbedtls_cipher_info_t *ci = mbedtls_cipher_info_from_string(q);
- if( ci == NULL )
+ if (ci == NULL) {
goto usage;
- opt.ticket_aead = mbedtls_cipher_info_get_type( ci );
- }
- else if( strcmp( p, "cache_max" ) == 0 )
- {
- opt.cache_max = atoi( q );
- if( opt.cache_max < 0 )
- goto usage;
- }
-#if defined(MBEDTLS_HAVE_TIME)
- else if( strcmp( p, "cache_timeout" ) == 0 )
- {
- opt.cache_timeout = atoi( q );
- if( opt.cache_timeout < 0 )
- goto usage;
- }
-#endif
- else if( strcmp( p, "cookies" ) == 0 )
- {
- opt.cookies = atoi( q );
- if( opt.cookies < -1 || opt.cookies > 1)
- goto usage;
- }
- else if( strcmp( p, "anti_replay" ) == 0 )
- {
- opt.anti_replay = atoi( q );
- if( opt.anti_replay < 0 || opt.anti_replay > 1)
- goto usage;
- }
- else if( strcmp( p, "badmac_limit" ) == 0 )
- {
- opt.badmac_limit = atoi( q );
- if( opt.badmac_limit < 0 )
- goto usage;
- }
- else if( strcmp( p, "hs_timeout" ) == 0 )
- {
- if( ( p = strchr( q, '-' ) ) == NULL )
- goto usage;
- *p++ = '\0';
- opt.hs_to_min = atoi( q );
- opt.hs_to_max = atoi( p );
- if( opt.hs_to_min == 0 || opt.hs_to_max < opt.hs_to_min )
- goto usage;
- }
- else if( strcmp( p, "mtu" ) == 0 )
- {
- opt.dtls_mtu = atoi( q );
- if( opt.dtls_mtu < 0 )
- goto usage;
- }
- else if( strcmp( p, "dgram_packing" ) == 0 )
- {
- opt.dgram_packing = atoi( q );
- if( opt.dgram_packing != 0 &&
- opt.dgram_packing != 1 )
- {
+ }
+ opt.ticket_aead = mbedtls_cipher_info_get_type(ci);
+ } else if (strcmp(p, "cache_max") == 0) {
+ opt.cache_max = atoi(q);
+ if (opt.cache_max < 0) {
goto usage;
}
}
- else if( strcmp( p, "sni" ) == 0 )
- {
+#if defined(MBEDTLS_HAVE_TIME)
+ else if (strcmp(p, "cache_timeout") == 0) {
+ opt.cache_timeout = atoi(q);
+ if (opt.cache_timeout < 0) {
+ goto usage;
+ }
+ }
+#endif
+ else if (strcmp(p, "cookies") == 0) {
+ opt.cookies = atoi(q);
+ if (opt.cookies < -1 || opt.cookies > 1) {
+ goto usage;
+ }
+ } else if (strcmp(p, "anti_replay") == 0) {
+ opt.anti_replay = atoi(q);
+ if (opt.anti_replay < 0 || opt.anti_replay > 1) {
+ goto usage;
+ }
+ } else if (strcmp(p, "badmac_limit") == 0) {
+ opt.badmac_limit = atoi(q);
+ if (opt.badmac_limit < 0) {
+ goto usage;
+ }
+ } else if (strcmp(p, "hs_timeout") == 0) {
+ if ((p = strchr(q, '-')) == NULL) {
+ goto usage;
+ }
+ *p++ = '\0';
+ opt.hs_to_min = atoi(q);
+ opt.hs_to_max = atoi(p);
+ if (opt.hs_to_min == 0 || opt.hs_to_max < opt.hs_to_min) {
+ goto usage;
+ }
+ } else if (strcmp(p, "mtu") == 0) {
+ opt.dtls_mtu = atoi(q);
+ if (opt.dtls_mtu < 0) {
+ goto usage;
+ }
+ } else if (strcmp(p, "dgram_packing") == 0) {
+ opt.dgram_packing = atoi(q);
+ if (opt.dgram_packing != 0 &&
+ opt.dgram_packing != 1) {
+ goto usage;
+ }
+ } else if (strcmp(p, "sni") == 0) {
opt.sni = q;
- }
- else if( strcmp( p, "query_config" ) == 0 )
- {
+ } else if (strcmp(p, "query_config") == 0) {
opt.query_config_mode = 1;
- query_config_ret = query_config( q );
+ query_config_ret = query_config(q);
goto exit;
- }
- else if( strcmp( p, "serialize") == 0 )
- {
- opt.serialize = atoi( q );
- if( opt.serialize < 0 || opt.serialize > 2)
+ } else if (strcmp(p, "serialize") == 0) {
+ opt.serialize = atoi(q);
+ if (opt.serialize < 0 || opt.serialize > 2) {
goto usage;
- }
- else if( strcmp( p, "context_file") == 0 )
- {
+ }
+ } else if (strcmp(p, "context_file") == 0) {
opt.context_file = q;
- }
- else if( strcmp( p, "eap_tls" ) == 0 )
- {
- opt.eap_tls = atoi( q );
- if( opt.eap_tls < 0 || opt.eap_tls > 1 )
+ } else if (strcmp(p, "eap_tls") == 0) {
+ opt.eap_tls = atoi(q);
+ if (opt.eap_tls < 0 || opt.eap_tls > 1) {
goto usage;
- }
- else if( strcmp( p, "reproducible" ) == 0 )
- {
+ }
+ } else if (strcmp(p, "reproducible") == 0) {
opt.reproducible = 1;
- }
- else if( strcmp( p, "nss_keylog" ) == 0 )
- {
- opt.nss_keylog = atoi( q );
- if( opt.nss_keylog < 0 || opt.nss_keylog > 1 )
+ } else if (strcmp(p, "nss_keylog") == 0) {
+ opt.nss_keylog = atoi(q);
+ if (opt.nss_keylog < 0 || opt.nss_keylog > 1) {
goto usage;
- }
- else if( strcmp( p, "nss_keylog_file" ) == 0 )
- {
+ }
+ } else if (strcmp(p, "nss_keylog_file") == 0) {
opt.nss_keylog_file = q;
- }
- else if( strcmp( p, "use_srtp" ) == 0 )
- {
- opt.use_srtp = atoi ( q );
- }
- else if( strcmp( p, "srtp_force_profile" ) == 0 )
- {
- opt.force_srtp_profile = atoi( q );
- }
- else if( strcmp( p, "support_mki" ) == 0 )
- {
- opt.support_mki = atoi( q );
- }
- else if( strcmp( p, "key_opaque_algs" ) == 0 )
- {
- if( key_opaque_alg_parse( q, &opt.key1_opaque_alg1,
- &opt.key1_opaque_alg2 ) != 0 )
+ } else if (strcmp(p, "use_srtp") == 0) {
+ opt.use_srtp = atoi(q);
+ } else if (strcmp(p, "srtp_force_profile") == 0) {
+ opt.force_srtp_profile = atoi(q);
+ } else if (strcmp(p, "support_mki") == 0) {
+ opt.support_mki = atoi(q);
+ } else if (strcmp(p, "key_opaque_algs") == 0) {
+ if (key_opaque_alg_parse(q, &opt.key1_opaque_alg1,
+ &opt.key1_opaque_alg2) != 0) {
goto usage;
- }
- else if( strcmp( p, "key_opaque_algs2" ) == 0 )
- {
- if( key_opaque_alg_parse( q, &opt.key2_opaque_alg1,
- &opt.key2_opaque_alg2 ) != 0 )
+ }
+ } else if (strcmp(p, "key_opaque_algs2") == 0) {
+ if (key_opaque_alg_parse(q, &opt.key2_opaque_alg1,
+ &opt.key2_opaque_alg2) != 0) {
goto usage;
- }
- else
+ }
+ } else {
goto usage;
+ }
}
- if( opt.nss_keylog != 0 && opt.eap_tls != 0 )
- {
- mbedtls_printf( "Error: eap_tls and nss_keylog options cannot be used together.\n" );
+ if (opt.nss_keylog != 0 && opt.eap_tls != 0) {
+ mbedtls_printf("Error: eap_tls and nss_keylog options cannot be used together.\n");
goto usage;
}
/* Event-driven IO is incompatible with the above custom
* receive and send functions, as the polling builds on
* refers to the underlying net_context. */
- if( opt.event == 1 && opt.nbio != 1 )
- {
- mbedtls_printf( "Warning: event-driven IO mandates nbio=1 - overwrite\n" );
+ if (opt.event == 1 && opt.nbio != 1) {
+ mbedtls_printf("Warning: event-driven IO mandates nbio=1 - overwrite\n");
opt.nbio = 1;
}
#if defined(MBEDTLS_DEBUG_C)
- mbedtls_debug_set_threshold( opt.debug_level );
+ mbedtls_debug_set_threshold(opt.debug_level);
#endif
/* buf will alternatively contain the input read from the client and the
@@ -2309,128 +2229,115 @@
size_t buf_content_size = opt.buffer_size;
/* The default response contains the ciphersuite name. Leave enough
* room for that plus some margin. */
- if( buf_content_size < strlen( HTTP_RESPONSE ) + 80 )
- {
- buf_content_size = strlen( HTTP_RESPONSE ) + 80;
+ if (buf_content_size < strlen(HTTP_RESPONSE) + 80) {
+ buf_content_size = strlen(HTTP_RESPONSE) + 80;
}
- if( opt.response_size != DFL_RESPONSE_SIZE &&
- buf_content_size < (size_t) opt.response_size )
- {
+ if (opt.response_size != DFL_RESPONSE_SIZE &&
+ buf_content_size < (size_t) opt.response_size) {
buf_content_size = opt.response_size;
}
- buf = mbedtls_calloc( 1, buf_content_size + 1 );
- if( buf == NULL )
- {
- mbedtls_printf( "Could not allocate %lu bytes\n",
- (unsigned long) buf_content_size + 1 );
+ buf = mbedtls_calloc(1, buf_content_size + 1);
+ if (buf == NULL) {
+ mbedtls_printf("Could not allocate %lu bytes\n",
+ (unsigned long) buf_content_size + 1);
ret = 3;
goto exit;
}
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- if( opt.psk_opaque != 0 )
- {
- if( strlen( opt.psk ) == 0 )
- {
- mbedtls_printf( "psk_opaque set but no psk to be imported specified.\n" );
+ if (opt.psk_opaque != 0) {
+ if (strlen(opt.psk) == 0) {
+ mbedtls_printf("psk_opaque set but no psk to be imported specified.\n");
ret = 2;
goto usage;
}
- if( opt.force_ciphersuite[0] <= 0 )
- {
- mbedtls_printf( "opaque PSKs are only supported in conjunction with forcing TLS 1.2 and a PSK-only ciphersuite through the 'force_ciphersuite' option.\n" );
+ if (opt.force_ciphersuite[0] <= 0) {
+ mbedtls_printf(
+ "opaque PSKs are only supported in conjunction with forcing TLS 1.2 and a PSK-only ciphersuite through the 'force_ciphersuite' option.\n");
ret = 2;
goto usage;
}
}
- if( opt.psk_list_opaque != 0 )
- {
- if( opt.psk_list == NULL )
- {
- mbedtls_printf( "psk_slot set but no psk to be imported specified.\n" );
+ if (opt.psk_list_opaque != 0) {
+ if (opt.psk_list == NULL) {
+ mbedtls_printf("psk_slot set but no psk to be imported specified.\n");
ret = 2;
goto usage;
}
- if( opt.force_ciphersuite[0] <= 0 )
- {
- mbedtls_printf( "opaque PSKs are only supported in conjunction with forcing TLS 1.2 and a PSK-only ciphersuite through the 'force_ciphersuite' option.\n" );
+ if (opt.force_ciphersuite[0] <= 0) {
+ mbedtls_printf(
+ "opaque PSKs are only supported in conjunction with forcing TLS 1.2 and a PSK-only ciphersuite through the 'force_ciphersuite' option.\n");
ret = 2;
goto usage;
}
}
#endif /* MBEDTLS_USE_PSA_CRYPTO */
- if( opt.force_ciphersuite[0] > 0 )
- {
+ if (opt.force_ciphersuite[0] > 0) {
const mbedtls_ssl_ciphersuite_t *ciphersuite_info;
ciphersuite_info =
- mbedtls_ssl_ciphersuite_from_id( opt.force_ciphersuite[0] );
+ mbedtls_ssl_ciphersuite_from_id(opt.force_ciphersuite[0]);
- if( opt.max_version != -1 &&
- ciphersuite_info->min_tls_version > opt.max_version )
- {
- mbedtls_printf( "forced ciphersuite not allowed with this protocol version\n" );
+ if (opt.max_version != -1 &&
+ ciphersuite_info->min_tls_version > opt.max_version) {
+ mbedtls_printf("forced ciphersuite not allowed with this protocol version\n");
ret = 2;
goto usage;
}
- if( opt.min_version != -1 &&
- ciphersuite_info->max_tls_version < opt.min_version )
- {
- mbedtls_printf( "forced ciphersuite not allowed with this protocol version\n" );
+ if (opt.min_version != -1 &&
+ ciphersuite_info->max_tls_version < opt.min_version) {
+ mbedtls_printf("forced ciphersuite not allowed with this protocol version\n");
ret = 2;
goto usage;
}
/* If we select a version that's not supported by
* this suite, then there will be no common ciphersuite... */
- if( opt.max_version == -1 ||
- opt.max_version > ciphersuite_info->max_tls_version )
- {
+ if (opt.max_version == -1 ||
+ opt.max_version > ciphersuite_info->max_tls_version) {
opt.max_version = ciphersuite_info->max_tls_version;
}
- if( opt.min_version < ciphersuite_info->min_tls_version )
- {
+ if (opt.min_version < ciphersuite_info->min_tls_version) {
opt.min_version = ciphersuite_info->min_tls_version;
}
#if defined(MBEDTLS_USE_PSA_CRYPTO)
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
- if( opt.psk_opaque != 0 || opt.psk_list_opaque != 0 )
- {
+ if (opt.psk_opaque != 0 || opt.psk_list_opaque != 0) {
/* Determine KDF algorithm the opaque PSK will be used in. */
#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
- if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 )
+ if (ciphersuite_info->mac == MBEDTLS_MD_SHA384) {
alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384);
- else
+ } else
#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
- alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256);
+ alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256);
}
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */
#endif /* MBEDTLS_USE_PSA_CRYPTO */
}
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
- if( mbedtls_test_unhexify( cid, sizeof( cid ),
- opt.cid_val, &cid_len ) != 0 )
- {
- mbedtls_printf( "CID not valid hex\n" );
+ if (mbedtls_test_unhexify(cid, sizeof(cid),
+ opt.cid_val, &cid_len) != 0) {
+ mbedtls_printf("CID not valid hex\n");
goto exit;
}
/* Keep CID settings for renegotiation unless
* specified otherwise. */
- if( opt.cid_enabled_renego == DFL_CID_ENABLED_RENEGO )
+ if (opt.cid_enabled_renego == DFL_CID_ENABLED_RENEGO) {
opt.cid_enabled_renego = opt.cid_enabled;
- if( opt.cid_val_renego == DFL_CID_VALUE_RENEGO )
+ }
+ if (opt.cid_val_renego == DFL_CID_VALUE_RENEGO) {
opt.cid_val_renego = opt.cid_val;
+ }
- if( mbedtls_test_unhexify( cid_renego, sizeof( cid_renego ),
- opt.cid_val_renego, &cid_renego_len ) != 0 )
- {
- mbedtls_printf( "CID not valid hex\n" );
+ if (mbedtls_test_unhexify(cid_renego, sizeof(cid_renego),
+ opt.cid_val_renego, &cid_renego_len) != 0) {
+ mbedtls_printf("CID not valid hex\n");
goto exit;
}
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
@@ -2439,71 +2346,60 @@
/*
* Unhexify the pre-shared key and parse the list if any given
*/
- if( mbedtls_test_unhexify( psk, sizeof( psk ),
- opt.psk, &psk_len ) != 0 )
- {
- mbedtls_printf( "pre-shared key not valid hex\n" );
+ if (mbedtls_test_unhexify(psk, sizeof(psk),
+ opt.psk, &psk_len) != 0) {
+ mbedtls_printf("pre-shared key not valid hex\n");
goto exit;
}
- if( opt.psk_list != NULL )
- {
- if( ( psk_info = psk_parse( opt.psk_list ) ) == NULL )
- {
- mbedtls_printf( "psk_list invalid" );
+ if (opt.psk_list != NULL) {
+ if ((psk_info = psk_parse(opt.psk_list)) == NULL) {
+ mbedtls_printf("psk_list invalid");
goto exit;
}
}
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */
#if defined(MBEDTLS_ECP_C)
- if( opt.curves != NULL )
- {
+ if (opt.curves != NULL) {
p = (char *) opt.curves;
i = 0;
- if( strcmp( p, "none" ) == 0 )
- {
+ if (strcmp(p, "none") == 0) {
group_list[0] = 0;
- }
- else if( strcmp( p, "default" ) != 0 )
- {
+ } else if (strcmp(p, "default") != 0) {
/* Leave room for a final NULL in curve list */
- while( i < CURVE_LIST_SIZE - 1 && *p != '\0' )
- {
+ while (i < CURVE_LIST_SIZE - 1 && *p != '\0') {
q = p;
/* Terminate the current string */
- while( *p != ',' && *p != '\0' )
+ while (*p != ',' && *p != '\0') {
p++;
- if( *p == ',' )
- *p++ = '\0';
-
- if( ( curve_cur = mbedtls_ecp_curve_info_from_name( q ) ) != NULL )
- {
- group_list[i++] = curve_cur->tls_id;
}
- else
- {
- mbedtls_printf( "unknown curve %s\n", q );
- mbedtls_printf( "supported curves: " );
- for( curve_cur = mbedtls_ecp_curve_list();
+ if (*p == ',') {
+ *p++ = '\0';
+ }
+
+ if ((curve_cur = mbedtls_ecp_curve_info_from_name(q)) != NULL) {
+ group_list[i++] = curve_cur->tls_id;
+ } else {
+ mbedtls_printf("unknown curve %s\n", q);
+ mbedtls_printf("supported curves: ");
+ for (curve_cur = mbedtls_ecp_curve_list();
curve_cur->grp_id != MBEDTLS_ECP_DP_NONE;
- curve_cur++ )
- {
- mbedtls_printf( "%s ", curve_cur->name );
+ curve_cur++) {
+ mbedtls_printf("%s ", curve_cur->name);
}
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
goto exit;
}
}
- mbedtls_printf("Number of curves: %d\n", i );
+ mbedtls_printf("Number of curves: %d\n", i);
- if( i == CURVE_LIST_SIZE - 1 && *p != '\0' )
- {
- mbedtls_printf( "curves list too long, maximum %d",
- CURVE_LIST_SIZE - 1 );
+ if (i == CURVE_LIST_SIZE - 1 && *p != '\0') {
+ mbedtls_printf("curves list too long, maximum %d",
+ CURVE_LIST_SIZE - 1);
goto exit;
}
@@ -2513,99 +2409,65 @@
#endif /* MBEDTLS_ECP_C */
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- if( opt.sig_algs != NULL )
- {
+ if (opt.sig_algs != NULL) {
p = (char *) opt.sig_algs;
i = 0;
/* Leave room for a final MBEDTLS_TLS1_3_SIG_NONE in signature algorithm list (sig_alg_list). */
- while( i < SIG_ALG_LIST_SIZE - 1 && *p != '\0' )
- {
+ while (i < SIG_ALG_LIST_SIZE - 1 && *p != '\0') {
q = p;
/* Terminate the current string */
- while( *p != ',' && *p != '\0' )
+ while (*p != ',' && *p != '\0') {
p++;
- if( *p == ',' )
+ }
+ if (*p == ',') {
*p++ = '\0';
+ }
- if( strcmp( q, "rsa_pkcs1_sha256" ) == 0 )
- {
+ if (strcmp(q, "rsa_pkcs1_sha256") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256;
- }
- else if( strcmp( q, "rsa_pkcs1_sha384" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pkcs1_sha384") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384;
- }
- else if( strcmp( q, "rsa_pkcs1_sha512" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pkcs1_sha512") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512;
- }
- else if( strcmp( q, "ecdsa_secp256r1_sha256" ) == 0 )
- {
+ } else if (strcmp(q, "ecdsa_secp256r1_sha256") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256;
- }
- else if( strcmp( q, "ecdsa_secp384r1_sha384" ) == 0 )
- {
+ } else if (strcmp(q, "ecdsa_secp384r1_sha384") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384;
- }
- else if( strcmp( q, "ecdsa_secp521r1_sha512" ) == 0 )
- {
+ } else if (strcmp(q, "ecdsa_secp521r1_sha512") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512;
- }
- else if( strcmp( q, "rsa_pss_rsae_sha256" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pss_rsae_sha256") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256;
- }
- else if( strcmp( q, "rsa_pss_rsae_sha384" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pss_rsae_sha384") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384;
- }
- else if( strcmp( q, "rsa_pss_rsae_sha512" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pss_rsae_sha512") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512;
- }
- else if( strcmp( q, "ed25519" ) == 0 )
- {
+ } else if (strcmp(q, "ed25519") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ED25519;
- }
- else if( strcmp( q, "ed448" ) == 0 )
- {
+ } else if (strcmp(q, "ed448") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ED448;
- }
- else if( strcmp( q, "rsa_pss_pss_sha256" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pss_pss_sha256") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA256;
- }
- else if( strcmp( q, "rsa_pss_pss_sha384" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pss_pss_sha384") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA384;
- }
- else if( strcmp( q, "rsa_pss_pss_sha512" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pss_pss_sha512") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA512;
- }
- else if( strcmp( q, "rsa_pkcs1_sha1" ) == 0 )
- {
+ } else if (strcmp(q, "rsa_pkcs1_sha1") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA1;
- }
- else if( strcmp( q, "ecdsa_sha1" ) == 0 )
- {
+ } else if (strcmp(q, "ecdsa_sha1") == 0) {
sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SHA1;
- }
- else
- {
+ } else {
ret = -1;
- mbedtls_printf( "unknown signature algorithm \"%s\"\n", q );
+ mbedtls_printf("unknown signature algorithm \"%s\"\n", q);
mbedtls_print_supported_sig_algs();
goto exit;
}
}
- if( i == ( SIG_ALG_LIST_SIZE - 1 ) && *p != '\0' )
- {
- mbedtls_printf( "signature algorithm list too long, maximum %d",
- SIG_ALG_LIST_SIZE - 1 );
+ if (i == (SIG_ALG_LIST_SIZE - 1) && *p != '\0') {
+ mbedtls_printf("signature algorithm list too long, maximum %d",
+ SIG_ALG_LIST_SIZE - 1);
goto exit;
}
@@ -2614,193 +2476,177 @@
#endif
#if defined(MBEDTLS_SSL_ALPN)
- if( opt.alpn_string != NULL )
- {
+ if (opt.alpn_string != NULL) {
p = (char *) opt.alpn_string;
i = 0;
/* Leave room for a final NULL in alpn_list */
- while( i < ALPN_LIST_SIZE - 1 && *p != '\0' )
- {
+ while (i < ALPN_LIST_SIZE - 1 && *p != '\0') {
alpn_list[i++] = p;
/* Terminate the current string and move on to next one */
- while( *p != ',' && *p != '\0' )
+ while (*p != ',' && *p != '\0') {
p++;
- if( *p == ',' )
+ }
+ if (*p == ',') {
*p++ = '\0';
+ }
}
}
#endif /* MBEDTLS_SSL_ALPN */
- mbedtls_printf( "build version: %s (build %d)\n",
- MBEDTLS_VERSION_STRING_FULL, MBEDTLS_VERSION_NUMBER );
+ mbedtls_printf("build version: %s (build %d)\n",
+ MBEDTLS_VERSION_STRING_FULL, MBEDTLS_VERSION_NUMBER);
/*
* 0. Initialize the RNG and the session data
*/
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- ret = rng_seed( &rng, opt.reproducible, pers );
- if( ret != 0 )
+ ret = rng_seed(&rng, opt.reproducible, pers);
+ if (ret != 0) {
goto exit;
- mbedtls_printf( " ok\n" );
+ }
+ mbedtls_printf(" ok\n");
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
/*
* 1.1. Load the trusted CA
*/
- mbedtls_printf( " . Loading the CA root certificate ..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the CA root certificate ...");
+ fflush(stdout);
- if( strcmp( opt.ca_path, "none" ) == 0 ||
- strcmp( opt.ca_file, "none" ) == 0 )
- {
+ if (strcmp(opt.ca_path, "none") == 0 ||
+ strcmp(opt.ca_file, "none") == 0) {
ret = 0;
- }
- else
+ } else
#if defined(MBEDTLS_FS_IO)
- if( strlen( opt.ca_path ) )
- ret = mbedtls_x509_crt_parse_path( &cacert, opt.ca_path );
- else if( strlen( opt.ca_file ) )
- ret = mbedtls_x509_crt_parse_file( &cacert, opt.ca_file );
- else
+ if (strlen(opt.ca_path)) {
+ ret = mbedtls_x509_crt_parse_path(&cacert, opt.ca_path);
+ } else if (strlen(opt.ca_file)) {
+ ret = mbedtls_x509_crt_parse_file(&cacert, opt.ca_file);
+ } else
#endif
{
#if defined(MBEDTLS_PEM_PARSE_C)
- for( i = 0; mbedtls_test_cas[i] != NULL; i++ )
- {
- ret = mbedtls_x509_crt_parse( &cacert,
- (const unsigned char *) mbedtls_test_cas[i],
- mbedtls_test_cas_len[i] );
- if( ret != 0 )
+ for (i = 0; mbedtls_test_cas[i] != NULL; i++) {
+ ret = mbedtls_x509_crt_parse(&cacert,
+ (const unsigned char *) mbedtls_test_cas[i],
+ mbedtls_test_cas_len[i]);
+ if (ret != 0) {
break;
+ }
}
#endif /* MBEDTLS_PEM_PARSE_C */
- if( ret == 0 )
- {
- for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ )
- {
- ret = mbedtls_x509_crt_parse_der( &cacert,
- (const unsigned char *) mbedtls_test_cas_der[i],
- mbedtls_test_cas_der_len[i] );
- if( ret != 0 )
+ if (ret == 0) {
+ for (i = 0; mbedtls_test_cas_der[i] != NULL; i++) {
+ ret = mbedtls_x509_crt_parse_der(&cacert,
+ (const unsigned char *) mbedtls_test_cas_der[i],
+ mbedtls_test_cas_der_len[i]);
+ if (ret != 0) {
break;
+ }
}
}
}
- if( ret < 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", (unsigned int) -ret );
+ if (ret < 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " ok (%d skipped)\n", ret );
+ mbedtls_printf(" ok (%d skipped)\n", ret);
/*
* 1.2. Load own certificate and private key
*/
- mbedtls_printf( " . Loading the server cert. and key..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the server cert. and key...");
+ fflush(stdout);
#if defined(MBEDTLS_FS_IO)
- if( strlen( opt.crt_file ) && strcmp( opt.crt_file, "none" ) != 0 )
- {
+ if (strlen(opt.crt_file) && strcmp(opt.crt_file, "none") != 0) {
key_cert_init++;
- if( ( ret = mbedtls_x509_crt_parse_file( &srvcert, opt.crt_file ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_file returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_x509_crt_parse_file(&srvcert, opt.crt_file)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse_file returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
- if( strlen( opt.key_file ) && strcmp( opt.key_file, "none" ) != 0 )
- {
+ if (strlen(opt.key_file) && strcmp(opt.key_file, "none") != 0) {
key_cert_init++;
- if( ( ret = mbedtls_pk_parse_keyfile( &pkey, opt.key_file,
- opt.key_pwd, rng_get, &rng ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile returned -0x%x\n\n", (unsigned int) -ret );
+ if ((ret = mbedtls_pk_parse_keyfile(&pkey, opt.key_file,
+ opt.key_pwd, rng_get, &rng)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
- if( key_cert_init == 1 )
- {
- mbedtls_printf( " failed\n ! crt_file without key_file or vice-versa\n\n" );
+ if (key_cert_init == 1) {
+ mbedtls_printf(" failed\n ! crt_file without key_file or vice-versa\n\n");
goto exit;
}
- if( strlen( opt.crt_file2 ) && strcmp( opt.crt_file2, "none" ) != 0 )
- {
+ if (strlen(opt.crt_file2) && strcmp(opt.crt_file2, "none") != 0) {
key_cert_init2++;
- if( ( ret = mbedtls_x509_crt_parse_file( &srvcert2, opt.crt_file2 ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_file(2) returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_x509_crt_parse_file(&srvcert2, opt.crt_file2)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse_file(2) returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
- if( strlen( opt.key_file2 ) && strcmp( opt.key_file2, "none" ) != 0 )
- {
+ if (strlen(opt.key_file2) && strcmp(opt.key_file2, "none") != 0) {
key_cert_init2++;
- if( ( ret = mbedtls_pk_parse_keyfile( &pkey2, opt.key_file2,
- opt.key_pwd2, rng_get, &rng ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile(2) returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_pk_parse_keyfile(&pkey2, opt.key_file2,
+ opt.key_pwd2, rng_get, &rng)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile(2) returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
- if( key_cert_init2 == 1 )
- {
- mbedtls_printf( " failed\n ! crt_file2 without key_file2 or vice-versa\n\n" );
+ if (key_cert_init2 == 1) {
+ mbedtls_printf(" failed\n ! crt_file2 without key_file2 or vice-versa\n\n");
goto exit;
}
#endif
- if( key_cert_init == 0 &&
- strcmp( opt.crt_file, "none" ) != 0 &&
- strcmp( opt.key_file, "none" ) != 0 &&
+ if (key_cert_init == 0 &&
+ strcmp(opt.crt_file, "none") != 0 &&
+ strcmp(opt.key_file, "none") != 0 &&
key_cert_init2 == 0 &&
- strcmp( opt.crt_file2, "none" ) != 0 &&
- strcmp( opt.key_file2, "none" ) != 0 )
- {
+ strcmp(opt.crt_file2, "none") != 0 &&
+ strcmp(opt.key_file2, "none") != 0) {
#if defined(MBEDTLS_RSA_C)
- if( ( ret = mbedtls_x509_crt_parse( &srvcert,
- (const unsigned char *) mbedtls_test_srv_crt_rsa,
- mbedtls_test_srv_crt_rsa_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_x509_crt_parse(&srvcert,
+ (const unsigned char *) mbedtls_test_srv_crt_rsa,
+ mbedtls_test_srv_crt_rsa_len)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- if( ( ret = mbedtls_pk_parse_key( &pkey,
- (const unsigned char *) mbedtls_test_srv_key_rsa,
- mbedtls_test_srv_key_rsa_len, NULL, 0,
- rng_get, &rng ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_key returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_pk_parse_key(&pkey,
+ (const unsigned char *) mbedtls_test_srv_key_rsa,
+ mbedtls_test_srv_key_rsa_len, NULL, 0,
+ rng_get, &rng)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_key returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
key_cert_init = 2;
#endif /* MBEDTLS_RSA_C */
#if defined(MBEDTLS_ECDSA_C)
- if( ( ret = mbedtls_x509_crt_parse( &srvcert2,
- (const unsigned char *) mbedtls_test_srv_crt_ec,
- mbedtls_test_srv_crt_ec_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! x509_crt_parse2 returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_x509_crt_parse(&srvcert2,
+ (const unsigned char *) mbedtls_test_srv_crt_ec,
+ mbedtls_test_srv_crt_ec_len)) != 0) {
+ mbedtls_printf(" failed\n ! x509_crt_parse2 returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- if( ( ret = mbedtls_pk_parse_key( &pkey2,
- (const unsigned char *) mbedtls_test_srv_key_ec,
- mbedtls_test_srv_key_ec_len, NULL, 0,
- rng_get, &rng ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! pk_parse_key2 returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_pk_parse_key(&pkey2,
+ (const unsigned char *) mbedtls_test_srv_key_ec,
+ mbedtls_test_srv_key_ec_len, NULL, 0,
+ rng_get, &rng)) != 0) {
+ mbedtls_printf(" failed\n ! pk_parse_key2 returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
key_cert_init2 = 2;
@@ -2808,25 +2654,22 @@
}
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- if( opt.key_opaque != 0 )
- {
+ if (opt.key_opaque != 0) {
psa_algorithm_t psa_alg, psa_alg2 = PSA_ALG_NONE;
psa_key_usage_t psa_usage = 0;
- if( key_opaque_set_alg_usage( opt.key1_opaque_alg1,
- opt.key1_opaque_alg2,
- &psa_alg, &psa_alg2,
- &psa_usage,
- mbedtls_pk_get_type( &pkey ) ) == 0 )
- {
- ret = mbedtls_pk_wrap_as_opaque( &pkey, &key_slot,
- psa_alg, psa_usage, psa_alg2 );
+ if (key_opaque_set_alg_usage(opt.key1_opaque_alg1,
+ opt.key1_opaque_alg2,
+ &psa_alg, &psa_alg2,
+ &psa_usage,
+ mbedtls_pk_get_type(&pkey)) == 0) {
+ ret = mbedtls_pk_wrap_as_opaque(&pkey, &key_slot,
+ psa_alg, psa_usage, psa_alg2);
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! "
- "mbedtls_pk_wrap_as_opaque returned -0x%x\n\n",
- (unsigned int) -ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! "
+ "mbedtls_pk_wrap_as_opaque returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
@@ -2834,76 +2677,70 @@
psa_alg = PSA_ALG_NONE; psa_alg2 = PSA_ALG_NONE;
psa_usage = 0;
- if( key_opaque_set_alg_usage( opt.key2_opaque_alg1,
- opt.key2_opaque_alg2,
- &psa_alg, &psa_alg2,
- &psa_usage,
- mbedtls_pk_get_type( &pkey2 ) ) == 0 )
- {
- ret = mbedtls_pk_wrap_as_opaque( &pkey2, &key_slot2,
- psa_alg, psa_usage, psa_alg2 );
+ if (key_opaque_set_alg_usage(opt.key2_opaque_alg1,
+ opt.key2_opaque_alg2,
+ &psa_alg, &psa_alg2,
+ &psa_usage,
+ mbedtls_pk_get_type(&pkey2)) == 0) {
+ ret = mbedtls_pk_wrap_as_opaque(&pkey2, &key_slot2,
+ psa_alg, psa_usage, psa_alg2);
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! "
- "mbedtls_pk_wrap_as_opaque returned -0x%x\n\n",
- (unsigned int) -ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! "
+ "mbedtls_pk_wrap_as_opaque returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
}
#endif /* MBEDTLS_USE_PSA_CRYPTO */
- mbedtls_printf( " ok (key types: %s, %s)\n",
- key_cert_init ? mbedtls_pk_get_name( &pkey ) : "none",
- key_cert_init2 ? mbedtls_pk_get_name( &pkey2 ) : "none" );
+ mbedtls_printf(" ok (key types: %s, %s)\n",
+ key_cert_init ? mbedtls_pk_get_name(&pkey) : "none",
+ key_cert_init2 ? mbedtls_pk_get_name(&pkey2) : "none");
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
#if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO)
- if( opt.dhm_file != NULL )
- {
- mbedtls_printf( " . Loading DHM parameters..." );
- fflush( stdout );
+ if (opt.dhm_file != NULL) {
+ mbedtls_printf(" . Loading DHM parameters...");
+ fflush(stdout);
- if( ( ret = mbedtls_dhm_parse_dhmfile( &dhm, opt.dhm_file ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_dhm_parse_dhmfile returned -0x%04X\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_dhm_parse_dhmfile(&dhm, opt.dhm_file)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_dhm_parse_dhmfile returned -0x%04X\n\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
#endif
#if defined(SNI_OPTION)
- if( opt.sni != NULL )
- {
- mbedtls_printf( " . Setting up SNI information..." );
- fflush( stdout );
+ if (opt.sni != NULL) {
+ mbedtls_printf(" . Setting up SNI information...");
+ fflush(stdout);
- if( ( sni_info = sni_parse( opt.sni ) ) == NULL )
- {
- mbedtls_printf( " failed\n" );
+ if ((sni_info = sni_parse(opt.sni)) == NULL) {
+ mbedtls_printf(" failed\n");
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
#endif /* SNI_OPTION */
/*
* 2. Setup stuff
*/
- mbedtls_printf( " . Setting up the SSL/TLS structure..." );
- fflush( stdout );
+ mbedtls_printf(" . Setting up the SSL/TLS structure...");
+ fflush(stdout);
- if( ( ret = mbedtls_ssl_config_defaults( &conf,
- MBEDTLS_SSL_IS_SERVER,
- opt.transport,
- MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned -0x%x\n\n", (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_config_defaults(&conf,
+ MBEDTLS_SSL_IS_SERVER,
+ opt.transport,
+ MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
@@ -2911,26 +2748,26 @@
/* The default algorithms profile disables SHA-1, but our tests still
rely on it heavily. Hence we allow it here. A real-world server
should use the default profile unless there is a good reason not to. */
- if( opt.allow_sha1 > 0 )
- {
- crt_profile_for_test.allowed_mds |= MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA1 );
- mbedtls_ssl_conf_cert_profile( &conf, &crt_profile_for_test );
- mbedtls_ssl_conf_sig_algs( &conf, ssl_sig_algs_for_test );
+ if (opt.allow_sha1 > 0) {
+ crt_profile_for_test.allowed_mds |= MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA1);
+ mbedtls_ssl_conf_cert_profile(&conf, &crt_profile_for_test);
+ mbedtls_ssl_conf_sig_algs(&conf, ssl_sig_algs_for_test);
}
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
- if( opt.auth_mode != DFL_AUTH_MODE )
- mbedtls_ssl_conf_authmode( &conf, opt.auth_mode );
+ if (opt.auth_mode != DFL_AUTH_MODE) {
+ mbedtls_ssl_conf_authmode(&conf, opt.auth_mode);
+ }
- if( opt.cert_req_ca_list != DFL_CERT_REQ_CA_LIST )
- mbedtls_ssl_conf_cert_req_ca_list( &conf, opt.cert_req_ca_list );
+ if (opt.cert_req_ca_list != DFL_CERT_REQ_CA_LIST) {
+ mbedtls_ssl_conf_cert_req_ca_list(&conf, opt.cert_req_ca_list);
+ }
#if defined(MBEDTLS_SSL_EARLY_DATA)
- mbedtls_ssl_tls13_conf_early_data( &conf, tls13_early_data_enabled );
- if( tls13_early_data_enabled == MBEDTLS_SSL_EARLY_DATA_ENABLED )
- {
+ mbedtls_ssl_tls13_conf_early_data(&conf, tls13_early_data_enabled);
+ if (tls13_early_data_enabled == MBEDTLS_SSL_EARLY_DATA_ENABLED) {
mbedtls_ssl_tls13_conf_max_early_data_size(
- &conf, opt.max_early_data_size );
+ &conf, opt.max_early_data_size);
}
#endif /* MBEDTLS_SSL_EARLY_DATA */
@@ -2938,178 +2775,172 @@
/* exercise setting DN hints for server certificate request
* (Intended for use where the client cert expected has been signed by
* a specific CA which is an intermediate in a CA chain, not the root) */
- if( opt.cert_req_dn_hint == 2 && key_cert_init2 )
- mbedtls_ssl_conf_dn_hints( &conf, &srvcert2 );
+ if (opt.cert_req_dn_hint == 2 && key_cert_init2) {
+ mbedtls_ssl_conf_dn_hints(&conf, &srvcert2);
+ }
#endif
#if defined(MBEDTLS_SSL_PROTO_DTLS)
- if( opt.hs_to_min != DFL_HS_TO_MIN || opt.hs_to_max != DFL_HS_TO_MAX )
- mbedtls_ssl_conf_handshake_timeout( &conf, opt.hs_to_min, opt.hs_to_max );
+ if (opt.hs_to_min != DFL_HS_TO_MIN || opt.hs_to_max != DFL_HS_TO_MAX) {
+ mbedtls_ssl_conf_handshake_timeout(&conf, opt.hs_to_min, opt.hs_to_max);
+ }
- if( opt.dgram_packing != DFL_DGRAM_PACKING )
- mbedtls_ssl_set_datagram_packing( &ssl, opt.dgram_packing );
+ if (opt.dgram_packing != DFL_DGRAM_PACKING) {
+ mbedtls_ssl_set_datagram_packing(&ssl, opt.dgram_packing);
+ }
#endif /* MBEDTLS_SSL_PROTO_DTLS */
#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH)
- if( ( ret = mbedtls_ssl_conf_max_frag_len( &conf, opt.mfl_code ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_max_frag_len returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_conf_max_frag_len(&conf, opt.mfl_code)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_max_frag_len returned %d\n\n", ret);
goto exit;
}
#endif
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
- if( opt.cid_enabled == 1 || opt.cid_enabled_renego == 1 )
- {
- if( opt.cid_enabled == 1 &&
+ if (opt.cid_enabled == 1 || opt.cid_enabled_renego == 1) {
+ if (opt.cid_enabled == 1 &&
opt.cid_enabled_renego == 1 &&
- cid_len != cid_renego_len )
- {
- mbedtls_printf( "CID length must not change during renegotiation\n" );
+ cid_len != cid_renego_len) {
+ mbedtls_printf("CID length must not change during renegotiation\n");
goto usage;
}
- if( opt.cid_enabled == 1 )
- ret = mbedtls_ssl_conf_cid( &conf, cid_len,
- MBEDTLS_SSL_UNEXPECTED_CID_IGNORE );
- else
- ret = mbedtls_ssl_conf_cid( &conf, cid_renego_len,
- MBEDTLS_SSL_UNEXPECTED_CID_IGNORE );
+ if (opt.cid_enabled == 1) {
+ ret = mbedtls_ssl_conf_cid(&conf, cid_len,
+ MBEDTLS_SSL_UNEXPECTED_CID_IGNORE);
+ } else {
+ ret = mbedtls_ssl_conf_cid(&conf, cid_renego_len,
+ MBEDTLS_SSL_UNEXPECTED_CID_IGNORE);
+ }
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_cid_len returned -%#04x\n\n",
- (unsigned int) -ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_cid_len returned -%#04x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
#if defined(MBEDTLS_SSL_DTLS_SRTP)
- const mbedtls_ssl_srtp_profile forced_profile[] = { opt.force_srtp_profile, MBEDTLS_TLS_SRTP_UNSET };
- if( opt.use_srtp == 1 )
- {
- if( opt.force_srtp_profile != 0 )
- {
- ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles( &conf, forced_profile );
- }
- else
- {
- ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles( &conf, default_profiles );
+ const mbedtls_ssl_srtp_profile forced_profile[] =
+ { opt.force_srtp_profile, MBEDTLS_TLS_SRTP_UNSET };
+ if (opt.use_srtp == 1) {
+ if (opt.force_srtp_profile != 0) {
+ ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles(&conf, forced_profile);
+ } else {
+ ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles(&conf, default_profiles);
}
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_dtls_srtp_protection_profiles returned %d\n\n", ret );
+ if (ret != 0) {
+ mbedtls_printf(
+ " failed\n ! mbedtls_ssl_conf_dtls_srtp_protection_profiles returned %d\n\n",
+ ret);
goto exit;
}
- mbedtls_ssl_conf_srtp_mki_value_supported( &conf,
- opt.support_mki ?
- MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED :
- MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED );
+ mbedtls_ssl_conf_srtp_mki_value_supported(&conf,
+ opt.support_mki ?
+ MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED :
+ MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED);
- }
- else if( opt.force_srtp_profile != 0 )
- {
- mbedtls_printf( " failed\n ! must enable use_srtp to force srtp profile\n\n" );
+ } else if (opt.force_srtp_profile != 0) {
+ mbedtls_printf(" failed\n ! must enable use_srtp to force srtp profile\n\n");
goto exit;
}
#endif /* MBEDTLS_SSL_DTLS_SRTP */
#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET)
- if( opt.extended_ms != DFL_EXTENDED_MS )
- mbedtls_ssl_conf_extended_master_secret( &conf, opt.extended_ms );
+ if (opt.extended_ms != DFL_EXTENDED_MS) {
+ mbedtls_ssl_conf_extended_master_secret(&conf, opt.extended_ms);
+ }
#endif
#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC)
- if( opt.etm != DFL_ETM )
- mbedtls_ssl_conf_encrypt_then_mac( &conf, opt.etm );
+ if (opt.etm != DFL_ETM) {
+ mbedtls_ssl_conf_encrypt_then_mac(&conf, opt.etm);
+ }
#endif
#if defined(MBEDTLS_SSL_ALPN)
- if( opt.alpn_string != NULL )
- if( ( ret = mbedtls_ssl_conf_alpn_protocols( &conf, alpn_list ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_alpn_protocols returned %d\n\n", ret );
+ if (opt.alpn_string != NULL) {
+ if ((ret = mbedtls_ssl_conf_alpn_protocols(&conf, alpn_list)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_alpn_protocols returned %d\n\n", ret);
goto exit;
}
+ }
#endif
- if (opt.reproducible)
- {
+ if (opt.reproducible) {
#if defined(MBEDTLS_HAVE_TIME)
#if defined(MBEDTLS_PLATFORM_TIME_ALT)
- mbedtls_platform_set_time( dummy_constant_time );
+ mbedtls_platform_set_time(dummy_constant_time);
#else
- fprintf( stderr, "Warning: reproducible option used without constant time\n" );
+ fprintf(stderr, "Warning: reproducible option used without constant time\n");
#endif
#endif /* MBEDTLS_HAVE_TIME */
}
- mbedtls_ssl_conf_rng( &conf, rng_get, &rng );
- mbedtls_ssl_conf_dbg( &conf, my_debug, stdout );
+ mbedtls_ssl_conf_rng(&conf, rng_get, &rng);
+ mbedtls_ssl_conf_dbg(&conf, my_debug, stdout);
#if defined(MBEDTLS_SSL_CACHE_C)
- if( opt.cache_max != -1 )
- mbedtls_ssl_cache_set_max_entries( &cache, opt.cache_max );
+ if (opt.cache_max != -1) {
+ mbedtls_ssl_cache_set_max_entries(&cache, opt.cache_max);
+ }
#if defined(MBEDTLS_HAVE_TIME)
- if( opt.cache_timeout != -1 )
- mbedtls_ssl_cache_set_timeout( &cache, opt.cache_timeout );
+ if (opt.cache_timeout != -1) {
+ mbedtls_ssl_cache_set_timeout(&cache, opt.cache_timeout);
+ }
#endif
- mbedtls_ssl_conf_session_cache( &conf, &cache,
+ mbedtls_ssl_conf_session_cache(&conf, &cache,
mbedtls_ssl_cache_get,
- mbedtls_ssl_cache_set );
+ mbedtls_ssl_cache_set);
#endif
#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C)
- if( opt.tickets != MBEDTLS_SSL_SESSION_TICKETS_DISABLED )
- {
+ if (opt.tickets != MBEDTLS_SSL_SESSION_TICKETS_DISABLED) {
#if defined(MBEDTLS_HAVE_TIME)
- if( opt.dummy_ticket )
- {
- mbedtls_ssl_conf_session_tickets_cb( &conf,
- dummy_ticket_write,
- dummy_ticket_parse,
- NULL );
- }
- else
+ if (opt.dummy_ticket) {
+ mbedtls_ssl_conf_session_tickets_cb(&conf,
+ dummy_ticket_write,
+ dummy_ticket_parse,
+ NULL);
+ } else
#endif /* MBEDTLS_HAVE_TIME */
{
- if( ( ret = mbedtls_ssl_ticket_setup( &ticket_ctx,
- rng_get, &rng,
- opt.ticket_aead,
- opt.ticket_timeout ) ) != 0 )
- {
+ if ((ret = mbedtls_ssl_ticket_setup(&ticket_ctx,
+ rng_get, &rng,
+ opt.ticket_aead,
+ opt.ticket_timeout)) != 0) {
mbedtls_printf(
" failed\n ! mbedtls_ssl_ticket_setup returned %d\n\n",
- ret );
+ ret);
goto exit;
}
- mbedtls_ssl_conf_session_tickets_cb( &conf,
- mbedtls_ssl_ticket_write,
- mbedtls_ssl_ticket_parse,
- &ticket_ctx );
+ mbedtls_ssl_conf_session_tickets_cb(&conf,
+ mbedtls_ssl_ticket_write,
+ mbedtls_ssl_ticket_parse,
+ &ticket_ctx);
}
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
- mbedtls_ssl_conf_new_session_tickets( &conf, opt.tickets );
+ mbedtls_ssl_conf_new_session_tickets(&conf, opt.tickets);
#endif
/* exercise manual ticket rotation (not required for typical use)
* (used for external synchronization of session ticket encryption keys)
*/
- if( opt.ticket_rotate ) {
+ if (opt.ticket_rotate) {
unsigned char kbuf[MBEDTLS_SSL_TICKET_MAX_KEY_BYTES];
unsigned char name[MBEDTLS_SSL_TICKET_KEY_NAME_BYTES];
- if( ( ret = rng_get( &rng, name, sizeof( name ) ) ) != 0 ||
- ( ret = rng_get( &rng, kbuf, sizeof( kbuf ) ) ) != 0 ||
- ( ret = mbedtls_ssl_ticket_rotate( &ticket_ctx,
- name, sizeof(name), kbuf, sizeof(kbuf),
- opt.ticket_timeout ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_ticket_rotate returned %d\n\n", ret );
+ if ((ret = rng_get(&rng, name, sizeof(name))) != 0 ||
+ (ret = rng_get(&rng, kbuf, sizeof(kbuf))) != 0 ||
+ (ret = mbedtls_ssl_ticket_rotate(&ticket_ctx,
+ name, sizeof(name), kbuf, sizeof(kbuf),
+ opt.ticket_timeout)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_ticket_rotate returned %d\n\n", ret);
goto exit;
}
}
@@ -3117,175 +2948,157 @@
#endif
#if defined(MBEDTLS_SSL_PROTO_DTLS)
- if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM )
- {
+ if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) {
#if defined(MBEDTLS_SSL_COOKIE_C)
- if( opt.cookies > 0 )
- {
- if( ( ret = mbedtls_ssl_cookie_setup( &cookie_ctx,
- rng_get, &rng ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_cookie_setup returned %d\n\n", ret );
+ if (opt.cookies > 0) {
+ if ((ret = mbedtls_ssl_cookie_setup(&cookie_ctx,
+ rng_get, &rng)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_cookie_setup returned %d\n\n", ret);
goto exit;
}
- mbedtls_ssl_conf_dtls_cookies( &conf, mbedtls_ssl_cookie_write, mbedtls_ssl_cookie_check,
- &cookie_ctx );
- }
- else
+ mbedtls_ssl_conf_dtls_cookies(&conf, mbedtls_ssl_cookie_write, mbedtls_ssl_cookie_check,
+ &cookie_ctx);
+ } else
#endif /* MBEDTLS_SSL_COOKIE_C */
#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY)
- if( opt.cookies == 0 )
- {
- mbedtls_ssl_conf_dtls_cookies( &conf, NULL, NULL, NULL );
- }
- else
+ if (opt.cookies == 0) {
+ mbedtls_ssl_conf_dtls_cookies(&conf, NULL, NULL, NULL);
+ } else
#endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */
{
; /* Nothing to do */
}
#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY)
- if( opt.anti_replay != DFL_ANTI_REPLAY )
- mbedtls_ssl_conf_dtls_anti_replay( &conf, opt.anti_replay );
+ if (opt.anti_replay != DFL_ANTI_REPLAY) {
+ mbedtls_ssl_conf_dtls_anti_replay(&conf, opt.anti_replay);
+ }
#endif
- if( opt.badmac_limit != DFL_BADMAC_LIMIT )
- mbedtls_ssl_conf_dtls_badmac_limit( &conf, opt.badmac_limit );
+ if (opt.badmac_limit != DFL_BADMAC_LIMIT) {
+ mbedtls_ssl_conf_dtls_badmac_limit(&conf, opt.badmac_limit);
+ }
}
#endif /* MBEDTLS_SSL_PROTO_DTLS */
- if( opt.force_ciphersuite[0] != DFL_FORCE_CIPHER )
- mbedtls_ssl_conf_ciphersuites( &conf, opt.force_ciphersuite );
+ if (opt.force_ciphersuite[0] != DFL_FORCE_CIPHER) {
+ mbedtls_ssl_conf_ciphersuites(&conf, opt.force_ciphersuite);
+ }
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
- mbedtls_ssl_conf_tls13_key_exchange_modes( &conf, opt.tls13_kex_modes );
+ mbedtls_ssl_conf_tls13_key_exchange_modes(&conf, opt.tls13_kex_modes);
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
- if( opt.allow_legacy != DFL_ALLOW_LEGACY )
- mbedtls_ssl_conf_legacy_renegotiation( &conf, opt.allow_legacy );
+ if (opt.allow_legacy != DFL_ALLOW_LEGACY) {
+ mbedtls_ssl_conf_legacy_renegotiation(&conf, opt.allow_legacy);
+ }
#if defined(MBEDTLS_SSL_RENEGOTIATION)
- mbedtls_ssl_conf_renegotiation( &conf, opt.renegotiation );
+ mbedtls_ssl_conf_renegotiation(&conf, opt.renegotiation);
- if( opt.renego_delay != DFL_RENEGO_DELAY )
- mbedtls_ssl_conf_renegotiation_enforced( &conf, opt.renego_delay );
+ if (opt.renego_delay != DFL_RENEGO_DELAY) {
+ mbedtls_ssl_conf_renegotiation_enforced(&conf, opt.renego_delay);
+ }
- if( opt.renego_period != DFL_RENEGO_PERIOD )
- {
- PUT_UINT64_BE( renego_period, opt.renego_period, 0 );
- mbedtls_ssl_conf_renegotiation_period( &conf, renego_period );
+ if (opt.renego_period != DFL_RENEGO_PERIOD) {
+ PUT_UINT64_BE(renego_period, opt.renego_period, 0);
+ mbedtls_ssl_conf_renegotiation_period(&conf, renego_period);
}
#endif
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- if( strcmp( opt.ca_path, "none" ) != 0 &&
- strcmp( opt.ca_file, "none" ) != 0 )
- {
+ if (strcmp(opt.ca_path, "none") != 0 &&
+ strcmp(opt.ca_file, "none") != 0) {
#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK)
- if( opt.ca_callback != 0 )
- mbedtls_ssl_conf_ca_cb( &conf, ca_callback, &cacert);
- else
+ if (opt.ca_callback != 0) {
+ mbedtls_ssl_conf_ca_cb(&conf, ca_callback, &cacert);
+ } else
#endif
- mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL );
+ mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL);
}
- if( key_cert_init )
- {
+ if (key_cert_init) {
mbedtls_pk_context *pk = &pkey;
#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
- if( opt.async_private_delay1 >= 0 )
- {
- ret = ssl_async_set_key( &ssl_async_keys, &srvcert, pk, 0,
- opt.async_private_delay1 );
- if( ret < 0 )
- {
- mbedtls_printf( " Test error: ssl_async_set_key failed (%d)\n",
- ret );
+ if (opt.async_private_delay1 >= 0) {
+ ret = ssl_async_set_key(&ssl_async_keys, &srvcert, pk, 0,
+ opt.async_private_delay1);
+ if (ret < 0) {
+ mbedtls_printf(" Test error: ssl_async_set_key failed (%d)\n",
+ ret);
goto exit;
}
pk = NULL;
}
#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
- if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &srvcert, pk ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_conf_own_cert(&conf, &srvcert, pk)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret);
goto exit;
}
}
- if( key_cert_init2 )
- {
+ if (key_cert_init2) {
mbedtls_pk_context *pk = &pkey2;
#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
- if( opt.async_private_delay2 >= 0 )
- {
- ret = ssl_async_set_key( &ssl_async_keys, &srvcert2, pk, 0,
- opt.async_private_delay2 );
- if( ret < 0 )
- {
- mbedtls_printf( " Test error: ssl_async_set_key failed (%d)\n",
- ret );
+ if (opt.async_private_delay2 >= 0) {
+ ret = ssl_async_set_key(&ssl_async_keys, &srvcert2, pk, 0,
+ opt.async_private_delay2);
+ if (ret < 0) {
+ mbedtls_printf(" Test error: ssl_async_set_key failed (%d)\n",
+ ret);
goto exit;
}
pk = NULL;
}
#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
- if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &srvcert2, pk ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_conf_own_cert(&conf, &srvcert2, pk)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret);
goto exit;
}
}
#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
- if( opt.async_operations[0] != '-' )
- {
+ if (opt.async_operations[0] != '-') {
mbedtls_ssl_async_sign_t *sign = NULL;
mbedtls_ssl_async_decrypt_t *decrypt = NULL;
const char *r;
- for( r = opt.async_operations; *r; r++ )
- {
- switch( *r )
- {
- case 'd':
- decrypt = ssl_async_decrypt;
- break;
- case 's':
- sign = ssl_async_sign;
- break;
+ for (r = opt.async_operations; *r; r++) {
+ switch (*r) {
+ case 'd':
+ decrypt = ssl_async_decrypt;
+ break;
+ case 's':
+ sign = ssl_async_sign;
+ break;
}
}
- ssl_async_keys.inject_error = ( opt.async_private_error < 0 ?
- - opt.async_private_error :
- opt.async_private_error );
+ ssl_async_keys.inject_error = (opt.async_private_error < 0 ?
+ -opt.async_private_error :
+ opt.async_private_error);
ssl_async_keys.f_rng = rng_get;
ssl_async_keys.p_rng = &rng;
- mbedtls_ssl_conf_async_private_cb( &conf,
- sign,
- decrypt,
- ssl_async_resume,
- ssl_async_cancel,
- &ssl_async_keys );
+ mbedtls_ssl_conf_async_private_cb(&conf,
+ sign,
+ decrypt,
+ ssl_async_resume,
+ ssl_async_cancel,
+ &ssl_async_keys);
}
#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
#if defined(SNI_OPTION)
- if( opt.sni != NULL )
- {
- mbedtls_ssl_conf_sni( &conf, sni_callback, sni_info );
- mbedtls_ssl_conf_cert_cb( &conf, cert_callback );
+ if (opt.sni != NULL) {
+ mbedtls_ssl_conf_sni(&conf, sni_callback, sni_info);
+ mbedtls_ssl_conf_cert_cb(&conf, cert_callback);
#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
- if( opt.async_private_delay2 >= 0 )
- {
+ if (opt.async_private_delay2 >= 0) {
sni_entry *cur;
- for( cur = sni_info; cur != NULL; cur = cur->next )
- {
- ret = ssl_async_set_key( &ssl_async_keys,
- cur->cert, cur->key, 1,
- opt.async_private_delay2 );
- if( ret < 0 )
- {
- mbedtls_printf( " Test error: ssl_async_set_key failed (%d)\n",
- ret );
+ for (cur = sni_info; cur != NULL; cur = cur->next) {
+ ret = ssl_async_set_key(&ssl_async_keys,
+ cur->cert, cur->key, 1,
+ opt.async_private_delay2);
+ if (ret < 0) {
+ mbedtls_printf(" Test error: ssl_async_set_key failed (%d)\n",
+ ret);
goto exit;
}
cur->key = NULL;
@@ -3296,71 +3109,61 @@
#endif
#if defined(MBEDTLS_ECP_C)
- if( opt.curves != NULL &&
- strcmp( opt.curves, "default" ) != 0 )
- {
- mbedtls_ssl_conf_groups( &conf, group_list );
+ if (opt.curves != NULL &&
+ strcmp(opt.curves, "default") != 0) {
+ mbedtls_ssl_conf_groups(&conf, group_list);
}
#endif
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- if( opt.sig_algs != NULL )
- mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list );
+ if (opt.sig_algs != NULL) {
+ mbedtls_ssl_conf_sig_algs(&conf, sig_alg_list);
+ }
#endif
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
- if( strlen( opt.psk ) != 0 && strlen( opt.psk_identity ) != 0 )
- {
+ if (strlen(opt.psk) != 0 && strlen(opt.psk_identity) != 0) {
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- if( opt.psk_opaque != 0 )
- {
+ if (opt.psk_opaque != 0) {
/* The algorithm has already been determined earlier. */
- status = psa_setup_psk_key_slot( &psk_slot, alg, psk, psk_len );
- if( status != PSA_SUCCESS )
- {
- fprintf( stderr, "SETUP FAIL\n" );
+ status = psa_setup_psk_key_slot(&psk_slot, alg, psk, psk_len);
+ if (status != PSA_SUCCESS) {
+ fprintf(stderr, "SETUP FAIL\n");
ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED;
goto exit;
}
- if( ( ret = mbedtls_ssl_conf_psk_opaque( &conf, psk_slot,
- (const unsigned char *) opt.psk_identity,
- strlen( opt.psk_identity ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_conf_psk_opaque returned %d\n\n",
- ret );
+ if ((ret = mbedtls_ssl_conf_psk_opaque(&conf, psk_slot,
+ (const unsigned char *) opt.psk_identity,
+ strlen(opt.psk_identity))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_conf_psk_opaque returned %d\n\n",
+ ret);
goto exit;
}
- }
- else
+ } else
#endif /* MBEDTLS_USE_PSA_CRYPTO */
- if( psk_len > 0 )
- {
- ret = mbedtls_ssl_conf_psk( &conf, psk, psk_len,
- (const unsigned char *) opt.psk_identity,
- strlen( opt.psk_identity ) );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n mbedtls_ssl_conf_psk returned -0x%04X\n\n", (unsigned int) -ret );
+ if (psk_len > 0) {
+ ret = mbedtls_ssl_conf_psk(&conf, psk, psk_len,
+ (const unsigned char *) opt.psk_identity,
+ strlen(opt.psk_identity));
+ if (ret != 0) {
+ mbedtls_printf(" failed\n mbedtls_ssl_conf_psk returned -0x%04X\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
}
- if( opt.psk_list != NULL )
- {
+ if (opt.psk_list != NULL) {
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- if( opt.psk_list_opaque != 0 )
- {
+ if (opt.psk_list_opaque != 0) {
psk_entry *cur_psk;
- for( cur_psk = psk_info; cur_psk != NULL; cur_psk = cur_psk->next )
- {
+ for (cur_psk = psk_info; cur_psk != NULL; cur_psk = cur_psk->next) {
- status = psa_setup_psk_key_slot( &cur_psk->slot, alg,
- cur_psk->key,
- cur_psk->key_len );
- if( status != PSA_SUCCESS )
- {
+ status = psa_setup_psk_key_slot(&cur_psk->slot, alg,
+ cur_psk->key,
+ cur_psk->key_len);
+ if (status != PSA_SUCCESS) {
ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED;
goto exit;
}
@@ -3368,7 +3171,7 @@
}
#endif /* MBEDTLS_USE_PSA_CRYPTO */
- mbedtls_ssl_conf_psk_cb( &conf, psk_callback, psk_info );
+ mbedtls_ssl_conf_psk_cb(&conf, psk_callback, psk_info);
}
#endif
@@ -3377,213 +3180,201 @@
* Use different group than default DHM group
*/
#if defined(MBEDTLS_FS_IO)
- if( opt.dhm_file != NULL )
- ret = mbedtls_ssl_conf_dh_param_ctx( &conf, &dhm );
+ if (opt.dhm_file != NULL) {
+ ret = mbedtls_ssl_conf_dh_param_ctx(&conf, &dhm);
+ }
#endif
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n mbedtls_ssl_conf_dh_param returned -0x%04X\n\n", (unsigned int) -ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n mbedtls_ssl_conf_dh_param returned -0x%04X\n\n",
+ (unsigned int) -ret);
goto exit;
}
#endif
- if( opt.min_version != DFL_MIN_VERSION )
- mbedtls_ssl_conf_min_tls_version( &conf, opt.min_version );
+ if (opt.min_version != DFL_MIN_VERSION) {
+ mbedtls_ssl_conf_min_tls_version(&conf, opt.min_version);
+ }
- if( opt.max_version != DFL_MIN_VERSION )
- mbedtls_ssl_conf_max_tls_version( &conf, opt.max_version );
+ if (opt.max_version != DFL_MIN_VERSION) {
+ mbedtls_ssl_conf_max_tls_version(&conf, opt.max_version);
+ }
- if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned -0x%x\n\n", (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned -0x%x\n\n", (unsigned int) -ret);
goto exit;
}
- if( opt.eap_tls != 0 )
- {
- mbedtls_ssl_set_export_keys_cb( &ssl, eap_tls_key_derivation,
- &eap_tls_keying );
+ if (opt.eap_tls != 0) {
+ mbedtls_ssl_set_export_keys_cb(&ssl, eap_tls_key_derivation,
+ &eap_tls_keying);
+ } else if (opt.nss_keylog != 0) {
+ mbedtls_ssl_set_export_keys_cb(&ssl,
+ nss_keylog_export,
+ NULL);
}
- else if( opt.nss_keylog != 0 )
- {
- mbedtls_ssl_set_export_keys_cb( &ssl,
- nss_keylog_export,
- NULL );
- }
-#if defined( MBEDTLS_SSL_DTLS_SRTP )
- else if( opt.use_srtp != 0 )
- {
- mbedtls_ssl_set_export_keys_cb( &ssl, dtls_srtp_key_derivation,
- &dtls_srtp_keying );
+#if defined(MBEDTLS_SSL_DTLS_SRTP)
+ else if (opt.use_srtp != 0) {
+ mbedtls_ssl_set_export_keys_cb(&ssl, dtls_srtp_key_derivation,
+ &dtls_srtp_keying);
}
#endif /* MBEDTLS_SSL_DTLS_SRTP */
io_ctx.ssl = &ssl;
io_ctx.net = &client_fd;
- mbedtls_ssl_set_bio( &ssl, &io_ctx, send_cb, recv_cb,
- opt.nbio == 0 ? recv_timeout_cb : NULL );
+ mbedtls_ssl_set_bio(&ssl, &io_ctx, send_cb, recv_cb,
+ opt.nbio == 0 ? recv_timeout_cb : NULL);
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
- if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM )
- {
- if( ( ret = mbedtls_ssl_set_cid( &ssl, opt.cid_enabled,
- cid, cid_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_cid returned %d\n\n",
- ret );
+ if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) {
+ if ((ret = mbedtls_ssl_set_cid(&ssl, opt.cid_enabled,
+ cid, cid_len)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_cid returned %d\n\n",
+ ret);
goto exit;
}
}
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
#if defined(MBEDTLS_SSL_PROTO_DTLS)
- if( opt.dtls_mtu != DFL_DTLS_MTU )
- mbedtls_ssl_set_mtu( &ssl, opt.dtls_mtu );
+ if (opt.dtls_mtu != DFL_DTLS_MTU) {
+ mbedtls_ssl_set_mtu(&ssl, opt.dtls_mtu);
+ }
#endif
#if defined(MBEDTLS_TIMING_C)
- mbedtls_ssl_set_timer_cb( &ssl, &timer, mbedtls_timing_set_delay,
- mbedtls_timing_get_delay );
+ mbedtls_ssl_set_timer_cb(&ssl, &timer, mbedtls_timing_set_delay,
+ mbedtls_timing_get_delay);
#endif
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 3. Setup the listening TCP socket
*/
- mbedtls_printf( " . Bind on %s://%s:%s/ ...",
- opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp",
- opt.server_addr ? opt.server_addr : "*",
- opt.server_port );
- fflush( stdout );
+ mbedtls_printf(" . Bind on %s://%s:%s/ ...",
+ opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp",
+ opt.server_addr ? opt.server_addr : "*",
+ opt.server_port);
+ fflush(stdout);
- if( ( ret = mbedtls_net_bind( &listen_fd, opt.server_addr, opt.server_port,
- opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ?
- MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_bind returned -0x%x\n\n", (unsigned int) -ret );
+ if ((ret = mbedtls_net_bind(&listen_fd, opt.server_addr, opt.server_port,
+ opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ?
+ MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_bind returned -0x%x\n\n", (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
reset:
#if !defined(_WIN32)
- if( received_sigterm )
- {
- mbedtls_printf( " interrupted by SIGTERM (not in net_accept())\n" );
- if( ret == MBEDTLS_ERR_NET_INVALID_CONTEXT )
+ if (received_sigterm) {
+ mbedtls_printf(" interrupted by SIGTERM (not in net_accept())\n");
+ if (ret == MBEDTLS_ERR_NET_INVALID_CONTEXT) {
ret = 0;
+ }
goto exit;
}
#endif
- if( ret == MBEDTLS_ERR_SSL_CLIENT_RECONNECT )
- {
- mbedtls_printf( " ! Client initiated reconnection from same port\n" );
+ if (ret == MBEDTLS_ERR_SSL_CLIENT_RECONNECT) {
+ mbedtls_printf(" ! Client initiated reconnection from same port\n");
goto handshake;
}
#ifdef MBEDTLS_ERROR_C
- if( ret != 0 )
- {
+ if (ret != 0) {
char error_buf[100];
- mbedtls_strerror( ret, error_buf, 100 );
- mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf );
+ mbedtls_strerror(ret, error_buf, 100);
+ mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf);
}
#endif
- mbedtls_net_free( &client_fd );
+ mbedtls_net_free(&client_fd);
- mbedtls_ssl_session_reset( &ssl );
+ mbedtls_ssl_session_reset(&ssl);
/*
* 3. Wait until a client connects
*/
- mbedtls_printf( " . Waiting for a remote connection ..." );
- fflush( stdout );
+ mbedtls_printf(" . Waiting for a remote connection ...");
+ fflush(stdout);
- if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd,
- client_ip, sizeof( client_ip ), &cliip_len ) ) != 0 )
- {
+ if ((ret = mbedtls_net_accept(&listen_fd, &client_fd,
+ client_ip, sizeof(client_ip), &cliip_len)) != 0) {
#if !defined(_WIN32)
- if( received_sigterm )
- {
- mbedtls_printf( " interrupted by SIGTERM (in net_accept())\n" );
- if( ret == MBEDTLS_ERR_NET_ACCEPT_FAILED )
+ if (received_sigterm) {
+ mbedtls_printf(" interrupted by SIGTERM (in net_accept())\n");
+ if (ret == MBEDTLS_ERR_NET_ACCEPT_FAILED) {
ret = 0;
+ }
goto exit;
}
#endif
- mbedtls_printf( " failed\n ! mbedtls_net_accept returned -0x%x\n\n", (unsigned int) -ret );
+ mbedtls_printf(" failed\n ! mbedtls_net_accept returned -0x%x\n\n", (unsigned int) -ret);
goto exit;
}
- if( opt.nbio > 0 )
- ret = mbedtls_net_set_nonblock( &client_fd );
- else
- ret = mbedtls_net_set_block( &client_fd );
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! net_set_(non)block() returned -0x%x\n\n", (unsigned int) -ret );
+ if (opt.nbio > 0) {
+ ret = mbedtls_net_set_nonblock(&client_fd);
+ } else {
+ ret = mbedtls_net_set_block(&client_fd);
+ }
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! net_set_(non)block() returned -0x%x\n\n", (unsigned int) -ret);
goto exit;
}
- mbedtls_ssl_conf_read_timeout( &conf, opt.read_timeout );
+ mbedtls_ssl_conf_read_timeout(&conf, opt.read_timeout);
#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY)
- if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM )
- {
- if( ( ret = mbedtls_ssl_set_client_transport_id( &ssl,
- client_ip, cliip_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_client_transport_id() returned -0x%x\n\n",
- (unsigned int) -ret );
+ if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) {
+ if ((ret = mbedtls_ssl_set_client_transport_id(&ssl,
+ client_ip, cliip_len)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_client_transport_id() returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
}
#endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */
#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
- if( opt.ecjpake_pw != DFL_ECJPAKE_PW )
- {
+ if (opt.ecjpake_pw != DFL_ECJPAKE_PW) {
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- if ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE )
- {
+ if (opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE) {
psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
- psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE );
- psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE );
- psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD );
+ psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE);
+ psa_set_key_algorithm(&attributes, PSA_ALG_JPAKE);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_PASSWORD);
- status = psa_import_key( &attributes,
- (const unsigned char *) opt.ecjpake_pw,
- strlen( opt.ecjpake_pw ),
- &ecjpake_pw_slot );
- if( status != PSA_SUCCESS )
- {
- mbedtls_printf( " failed\n ! psa_import_key returned %d\n\n",
- status );
+ status = psa_import_key(&attributes,
+ (const unsigned char *) opt.ecjpake_pw,
+ strlen(opt.ecjpake_pw),
+ &ecjpake_pw_slot);
+ if (status != PSA_SUCCESS) {
+ mbedtls_printf(" failed\n ! psa_import_key returned %d\n\n",
+ status);
goto exit;
}
- if( ( ret = mbedtls_ssl_set_hs_ecjpake_password_opaque( &ssl,
- ecjpake_pw_slot ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password_opaque returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_set_hs_ecjpake_password_opaque(&ssl,
+ ecjpake_pw_slot)) != 0) {
+ mbedtls_printf(
+ " failed\n ! mbedtls_ssl_set_hs_ecjpake_password_opaque returned %d\n\n",
+ ret);
goto exit;
}
- mbedtls_printf( "using opaque password\n");
- }
- else
+ mbedtls_printf("using opaque password\n");
+ } else
#endif /* MBEDTLS_USE_PSA_CRYPTO */
{
- if( ( ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl,
- (const unsigned char *) opt.ecjpake_pw,
- strlen( opt.ecjpake_pw ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_set_hs_ecjpake_password(&ssl,
+ (const unsigned char *) opt.ecjpake_pw,
+ strlen(opt.ecjpake_pw))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_hs_ecjpake_password returned %d\n\n",
+ ret);
goto exit;
}
}
@@ -3597,109 +3388,105 @@
* a specific CA which is an intermediate in a CA chain, not the root)
* (Additionally, the CA choice would typically be influenced by SNI
* if being set per-handshake using mbedtls_ssl_set_hs_dn_hints()) */
- if( opt.cert_req_dn_hint == 3 && key_cert_init2 )
- mbedtls_ssl_set_hs_dn_hints( &ssl, &srvcert2 );
+ if (opt.cert_req_dn_hint == 3 && key_cert_init2) {
+ mbedtls_ssl_set_hs_dn_hints(&ssl, &srvcert2);
+ }
#endif
#endif
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 4. Handshake
*/
handshake:
- mbedtls_printf( " . Performing the SSL/TLS handshake..." );
- fflush( stdout );
+ mbedtls_printf(" . Performing the SSL/TLS handshake...");
+ fflush(stdout);
- while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 )
- {
+ while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) {
#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
- if( ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS &&
- ssl_async_keys.inject_error == SSL_ASYNC_INJECT_ERROR_CANCEL )
- {
- mbedtls_printf( " cancelling on injected error\n" );
+ if (ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS &&
+ ssl_async_keys.inject_error == SSL_ASYNC_INJECT_ERROR_CANCEL) {
+ mbedtls_printf(" cancelling on injected error\n");
break;
}
#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
- if( ! mbedtls_status_is_ssl_in_progress( ret ) )
+ if (!mbedtls_status_is_ssl_in_progress(ret)) {
break;
+ }
/* For event-driven IO, wait for socket to become available */
- if( opt.event == 1 /* level triggered IO */ )
- {
+ if (opt.event == 1 /* level triggered IO */) {
#if defined(MBEDTLS_TIMING_C)
- ret = idle( &client_fd, &timer, ret );
+ ret = idle(&client_fd, &timer, ret);
#else
- ret = idle( &client_fd, ret );
+ ret = idle(&client_fd, ret);
#endif
- if( ret != 0 )
+ if (ret != 0) {
goto reset;
+ }
}
}
- if( ret == MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED )
- {
- mbedtls_printf( " hello verification requested\n" );
+ if (ret == MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED) {
+ mbedtls_printf(" hello verification requested\n");
ret = 0;
goto reset;
- }
- else if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret );
+ } else if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n",
+ (unsigned int) -ret);
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- if( ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED )
- {
+ if (ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED) {
char vrfy_buf[512];
- flags = mbedtls_ssl_get_verify_result( &ssl );
+ flags = mbedtls_ssl_get_verify_result(&ssl);
- x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ), " ! ", flags );
+ x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), " ! ", flags);
- mbedtls_printf( "%s\n", vrfy_buf );
+ mbedtls_printf("%s\n", vrfy_buf);
}
#endif
#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
- if( opt.async_private_error < 0 )
+ if (opt.async_private_error < 0) {
/* Injected error only the first time round, to test reset */
ssl_async_keys.inject_error = SSL_ASYNC_INJECT_ERROR_NONE;
+ }
#endif
goto reset;
- }
- else /* ret == 0 */
- {
- int suite_id = mbedtls_ssl_get_ciphersuite_id_from_ssl( &ssl );
+ } else { /* ret == 0 */
+ int suite_id = mbedtls_ssl_get_ciphersuite_id_from_ssl(&ssl);
const mbedtls_ssl_ciphersuite_t *ciphersuite_info;
- ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( suite_id );
+ ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(suite_id);
- mbedtls_printf( " ok\n [ Protocol is %s ]\n"
- " [ Ciphersuite is %s ]\n"
- " [ Key size is %u ]\n",
- mbedtls_ssl_get_version( &ssl ),
- mbedtls_ssl_ciphersuite_get_name( ciphersuite_info ),
- (unsigned int)
- mbedtls_ssl_ciphersuite_get_cipher_key_bitlen( ciphersuite_info ) );
+ mbedtls_printf(" ok\n [ Protocol is %s ]\n"
+ " [ Ciphersuite is %s ]\n"
+ " [ Key size is %u ]\n",
+ mbedtls_ssl_get_version(&ssl),
+ mbedtls_ssl_ciphersuite_get_name(ciphersuite_info),
+ (unsigned int)
+ mbedtls_ssl_ciphersuite_get_cipher_key_bitlen(ciphersuite_info));
}
- if( ( ret = mbedtls_ssl_get_record_expansion( &ssl ) ) >= 0 )
- mbedtls_printf( " [ Record expansion is %d ]\n", ret );
- else
- mbedtls_printf( " [ Record expansion is unknown ]\n" );
+ if ((ret = mbedtls_ssl_get_record_expansion(&ssl)) >= 0) {
+ mbedtls_printf(" [ Record expansion is %d ]\n", ret);
+ } else {
+ mbedtls_printf(" [ Record expansion is unknown ]\n");
+ }
#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH)
- mbedtls_printf( " [ Maximum incoming record payload length is %u ]\n",
- (unsigned int) mbedtls_ssl_get_max_in_record_payload( &ssl ) );
- mbedtls_printf( " [ Maximum outgoing record payload length is %u ]\n",
- (unsigned int) mbedtls_ssl_get_max_out_record_payload( &ssl ) );
+ mbedtls_printf(" [ Maximum incoming record payload length is %u ]\n",
+ (unsigned int) mbedtls_ssl_get_max_in_record_payload(&ssl));
+ mbedtls_printf(" [ Maximum outgoing record payload length is %u ]\n",
+ (unsigned int) mbedtls_ssl_get_max_out_record_payload(&ssl));
#endif
#if defined(MBEDTLS_SSL_ALPN)
- if( opt.alpn_string != NULL )
- {
- const char *alp = mbedtls_ssl_get_alpn_protocol( &ssl );
- mbedtls_printf( " [ Application Layer Protocol is %s ]\n",
- alp ? alp : "(none)" );
+ if (opt.alpn_string != NULL) {
+ const char *alp = mbedtls_ssl_get_alpn_protocol(&ssl);
+ mbedtls_printf(" [ Application Layer Protocol is %s ]\n",
+ alp ? alp : "(none)");
}
#endif
@@ -3707,300 +3494,271 @@
/*
* 5. Verify the client certificate
*/
- mbedtls_printf( " . Verifying peer X.509 certificate..." );
+ mbedtls_printf(" . Verifying peer X.509 certificate...");
- if( ( flags = mbedtls_ssl_get_verify_result( &ssl ) ) != 0 )
- {
+ if ((flags = mbedtls_ssl_get_verify_result(&ssl)) != 0) {
char vrfy_buf[512];
- mbedtls_printf( " failed\n" );
+ mbedtls_printf(" failed\n");
- x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ), " ! ", flags );
- mbedtls_printf( "%s\n", vrfy_buf );
+ x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), " ! ", flags);
+ mbedtls_printf("%s\n", vrfy_buf);
+ } else {
+ mbedtls_printf(" ok\n");
}
- else
- mbedtls_printf( " ok\n" );
#if !defined(MBEDTLS_X509_REMOVE_INFO)
- if( mbedtls_ssl_get_peer_cert( &ssl ) != NULL )
- {
+ if (mbedtls_ssl_get_peer_cert(&ssl) != NULL) {
char crt_buf[512];
- mbedtls_printf( " . Peer certificate information ...\n" );
- mbedtls_x509_crt_info( crt_buf, sizeof( crt_buf ), " ",
- mbedtls_ssl_get_peer_cert( &ssl ) );
- mbedtls_printf( "%s\n", crt_buf );
+ mbedtls_printf(" . Peer certificate information ...\n");
+ mbedtls_x509_crt_info(crt_buf, sizeof(crt_buf), " ",
+ mbedtls_ssl_get_peer_cert(&ssl));
+ mbedtls_printf("%s\n", crt_buf);
}
#endif /* MBEDTLS_X509_REMOVE_INFO */
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */
- if( opt.eap_tls != 0 )
- {
+ if (opt.eap_tls != 0) {
size_t j = 0;
- if( ( ret = mbedtls_ssl_tls_prf( eap_tls_keying.tls_prf_type,
- eap_tls_keying.master_secret,
- sizeof( eap_tls_keying.master_secret ),
- eap_tls_label,
- eap_tls_keying.randbytes,
- sizeof( eap_tls_keying.randbytes ),
- eap_tls_keymaterial,
- sizeof( eap_tls_keymaterial ) ) )
- != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n",
- (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_tls_prf(eap_tls_keying.tls_prf_type,
+ eap_tls_keying.master_secret,
+ sizeof(eap_tls_keying.master_secret),
+ eap_tls_label,
+ eap_tls_keying.randbytes,
+ sizeof(eap_tls_keying.randbytes),
+ eap_tls_keymaterial,
+ sizeof(eap_tls_keymaterial)))
+ != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n",
+ (unsigned int) -ret);
goto reset;
}
- mbedtls_printf( " EAP-TLS key material is:" );
- for( j = 0; j < sizeof( eap_tls_keymaterial ); j++ )
- {
- if( j % 8 == 0 )
+ mbedtls_printf(" EAP-TLS key material is:");
+ for (j = 0; j < sizeof(eap_tls_keymaterial); j++) {
+ if (j % 8 == 0) {
mbedtls_printf("\n ");
- mbedtls_printf("%02x ", eap_tls_keymaterial[j] );
+ }
+ mbedtls_printf("%02x ", eap_tls_keymaterial[j]);
}
mbedtls_printf("\n");
- if( ( ret = mbedtls_ssl_tls_prf( eap_tls_keying.tls_prf_type, NULL, 0,
- eap_tls_label,
- eap_tls_keying.randbytes,
- sizeof( eap_tls_keying.randbytes ),
- eap_tls_iv,
- sizeof( eap_tls_iv ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n",
- (unsigned int) -ret );
- goto reset;
- }
+ if ((ret = mbedtls_ssl_tls_prf(eap_tls_keying.tls_prf_type, NULL, 0,
+ eap_tls_label,
+ eap_tls_keying.randbytes,
+ sizeof(eap_tls_keying.randbytes),
+ eap_tls_iv,
+ sizeof(eap_tls_iv))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n",
+ (unsigned int) -ret);
+ goto reset;
+ }
- mbedtls_printf( " EAP-TLS IV is:" );
- for( j = 0; j < sizeof( eap_tls_iv ); j++ )
- {
- if( j % 8 == 0 )
+ mbedtls_printf(" EAP-TLS IV is:");
+ for (j = 0; j < sizeof(eap_tls_iv); j++) {
+ if (j % 8 == 0) {
mbedtls_printf("\n ");
- mbedtls_printf("%02x ", eap_tls_iv[j] );
+ }
+ mbedtls_printf("%02x ", eap_tls_iv[j]);
}
mbedtls_printf("\n");
}
-#if defined( MBEDTLS_SSL_DTLS_SRTP )
- else if( opt.use_srtp != 0 )
- {
+#if defined(MBEDTLS_SSL_DTLS_SRTP)
+ else if (opt.use_srtp != 0) {
size_t j = 0;
mbedtls_dtls_srtp_info dtls_srtp_negotiation_result;
- mbedtls_ssl_get_dtls_srtp_negotiation_result( &ssl, &dtls_srtp_negotiation_result );
+ mbedtls_ssl_get_dtls_srtp_negotiation_result(&ssl, &dtls_srtp_negotiation_result);
- if( dtls_srtp_negotiation_result.chosen_dtls_srtp_profile
- == MBEDTLS_TLS_SRTP_UNSET )
- {
- mbedtls_printf( " Unable to negotiate "
- "the use of DTLS-SRTP\n" );
- }
- else
- {
- if( ( ret = mbedtls_ssl_tls_prf( dtls_srtp_keying.tls_prf_type,
- dtls_srtp_keying.master_secret,
- sizeof( dtls_srtp_keying.master_secret ),
- dtls_srtp_label,
- dtls_srtp_keying.randbytes,
- sizeof( dtls_srtp_keying.randbytes ),
- dtls_srtp_key_material,
- sizeof( dtls_srtp_key_material ) ) )
- != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n",
- (unsigned int) -ret );
+ if (dtls_srtp_negotiation_result.chosen_dtls_srtp_profile
+ == MBEDTLS_TLS_SRTP_UNSET) {
+ mbedtls_printf(" Unable to negotiate "
+ "the use of DTLS-SRTP\n");
+ } else {
+ if ((ret = mbedtls_ssl_tls_prf(dtls_srtp_keying.tls_prf_type,
+ dtls_srtp_keying.master_secret,
+ sizeof(dtls_srtp_keying.master_secret),
+ dtls_srtp_label,
+ dtls_srtp_keying.randbytes,
+ sizeof(dtls_srtp_keying.randbytes),
+ dtls_srtp_key_material,
+ sizeof(dtls_srtp_key_material)))
+ != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " DTLS-SRTP key material is:" );
- for( j = 0; j < sizeof( dtls_srtp_key_material ); j++ )
- {
- if( j % 8 == 0 )
- mbedtls_printf( "\n " );
- mbedtls_printf( "%02x ", dtls_srtp_key_material[j] );
+ mbedtls_printf(" DTLS-SRTP key material is:");
+ for (j = 0; j < sizeof(dtls_srtp_key_material); j++) {
+ if (j % 8 == 0) {
+ mbedtls_printf("\n ");
+ }
+ mbedtls_printf("%02x ", dtls_srtp_key_material[j]);
}
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
/* produce a less readable output used to perform automatic checks
* - compare client and server output
* - interop test with openssl which client produces this kind of output
*/
- mbedtls_printf( " Keying material: " );
- for( j = 0; j < sizeof( dtls_srtp_key_material ); j++ )
- {
- mbedtls_printf( "%02X", dtls_srtp_key_material[j] );
+ mbedtls_printf(" Keying material: ");
+ for (j = 0; j < sizeof(dtls_srtp_key_material); j++) {
+ mbedtls_printf("%02X", dtls_srtp_key_material[j]);
}
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
- if ( dtls_srtp_negotiation_result.mki_len > 0 )
- {
- mbedtls_printf( " DTLS-SRTP mki value: " );
- for( j = 0; j < dtls_srtp_negotiation_result.mki_len; j++ )
- {
- mbedtls_printf( "%02X", dtls_srtp_negotiation_result.mki_value[j] );
+ if (dtls_srtp_negotiation_result.mki_len > 0) {
+ mbedtls_printf(" DTLS-SRTP mki value: ");
+ for (j = 0; j < dtls_srtp_negotiation_result.mki_len; j++) {
+ mbedtls_printf("%02X", dtls_srtp_negotiation_result.mki_value[j]);
}
+ } else {
+ mbedtls_printf(" DTLS-SRTP no mki value negotiated");
}
- else
- {
- mbedtls_printf( " DTLS-SRTP no mki value negotiated" );
- }
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
}
}
#endif /* MBEDTLS_SSL_DTLS_SRTP */
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
- ret = report_cid_usage( &ssl, "initial handshake" );
- if( ret != 0 )
+ ret = report_cid_usage(&ssl, "initial handshake");
+ if (ret != 0) {
goto exit;
+ }
- if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM )
- {
- if( ( ret = mbedtls_ssl_set_cid( &ssl, opt.cid_enabled_renego,
- cid_renego, cid_renego_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_cid returned %d\n\n",
- ret );
+ if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) {
+ if ((ret = mbedtls_ssl_set_cid(&ssl, opt.cid_enabled_renego,
+ cid_renego, cid_renego_len)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_cid returned %d\n\n",
+ ret);
goto exit;
}
}
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
#if defined(MBEDTLS_MEMORY_DEBUG)
- mbedtls_memory_buffer_alloc_cur_get( ¤t_heap_memory, &heap_blocks );
- mbedtls_memory_buffer_alloc_max_get( &peak_heap_memory, &heap_blocks );
- mbedtls_printf( "Heap memory usage after handshake: %lu bytes. Peak memory usage was %lu\n",
- (unsigned long) current_heap_memory, (unsigned long) peak_heap_memory );
+ mbedtls_memory_buffer_alloc_cur_get(¤t_heap_memory, &heap_blocks);
+ mbedtls_memory_buffer_alloc_max_get(&peak_heap_memory, &heap_blocks);
+ mbedtls_printf("Heap memory usage after handshake: %lu bytes. Peak memory usage was %lu\n",
+ (unsigned long) current_heap_memory, (unsigned long) peak_heap_memory);
#endif /* MBEDTLS_MEMORY_DEBUG */
- if( opt.exchanges == 0 )
+ if (opt.exchanges == 0) {
goto close_notify;
+ }
exchanges_left = opt.exchanges;
data_exchange:
/*
* 6. Read the HTTP Request
*/
- mbedtls_printf( " < Read from client:" );
- fflush( stdout );
+ mbedtls_printf(" < Read from client:");
+ fflush(stdout);
/*
* TLS and DTLS need different reading styles (stream vs datagram)
*/
- if( opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM )
- {
- do
- {
+ if (opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM) {
+ do {
int terminated = 0;
len = opt.buffer_size;
- memset( buf, 0, opt.buffer_size );
- ret = mbedtls_ssl_read( &ssl, buf, len );
+ memset(buf, 0, opt.buffer_size);
+ ret = mbedtls_ssl_read(&ssl, buf, len);
- if( mbedtls_status_is_ssl_in_progress( ret ) )
- {
- if( opt.event == 1 /* level triggered IO */ )
- {
+ if (mbedtls_status_is_ssl_in_progress(ret)) {
+ if (opt.event == 1 /* level triggered IO */) {
#if defined(MBEDTLS_TIMING_C)
- idle( &client_fd, &timer, ret );
+ idle(&client_fd, &timer, ret);
#else
- idle( &client_fd, ret );
+ idle(&client_fd, ret);
#endif
}
continue;
}
- if( ret <= 0 )
- {
- switch( ret )
- {
+ if (ret <= 0) {
+ switch (ret) {
case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY:
- mbedtls_printf( " connection was closed gracefully\n" );
+ mbedtls_printf(" connection was closed gracefully\n");
goto close_notify;
case 0:
case MBEDTLS_ERR_NET_CONN_RESET:
- mbedtls_printf( " connection was reset by peer\n" );
+ mbedtls_printf(" connection was reset by peer\n");
ret = MBEDTLS_ERR_NET_CONN_RESET;
goto reset;
default:
- mbedtls_printf( " mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret );
+ mbedtls_printf(" mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret);
goto reset;
}
}
- if( mbedtls_ssl_get_bytes_avail( &ssl ) == 0 )
- {
+ if (mbedtls_ssl_get_bytes_avail(&ssl) == 0) {
len = ret;
buf[len] = '\0';
- mbedtls_printf( " %d bytes read\n\n%s\n", len, (char *) buf );
+ mbedtls_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. */
- if( buf[len - 1] == '\n' )
+ if (buf[len - 1] == '\n') {
terminated = 1;
- }
- else
- {
+ }
+ } else {
int extra_len, ori_len;
unsigned char *larger_buf;
ori_len = ret;
- extra_len = (int) mbedtls_ssl_get_bytes_avail( &ssl );
+ extra_len = (int) mbedtls_ssl_get_bytes_avail(&ssl);
- larger_buf = mbedtls_calloc( 1, ori_len + extra_len + 1 );
- if( larger_buf == NULL )
- {
- mbedtls_printf( " ! memory allocation failed\n" );
+ larger_buf = mbedtls_calloc(1, ori_len + extra_len + 1);
+ if (larger_buf == NULL) {
+ mbedtls_printf(" ! memory allocation failed\n");
ret = 1;
goto reset;
}
- memset( larger_buf, 0, ori_len + extra_len );
- memcpy( larger_buf, buf, ori_len );
+ memset(larger_buf, 0, ori_len + extra_len);
+ memcpy(larger_buf, buf, ori_len);
/* This read should never fail and get the whole cached data */
- ret = mbedtls_ssl_read( &ssl, larger_buf + ori_len, extra_len );
- if( ret != extra_len ||
- mbedtls_ssl_get_bytes_avail( &ssl ) != 0 )
- {
- mbedtls_printf( " ! mbedtls_ssl_read failed on cached data\n" );
+ ret = mbedtls_ssl_read(&ssl, larger_buf + ori_len, extra_len);
+ if (ret != extra_len ||
+ mbedtls_ssl_get_bytes_avail(&ssl) != 0) {
+ mbedtls_printf(" ! mbedtls_ssl_read failed on cached data\n");
ret = 1;
goto reset;
}
larger_buf[ori_len + extra_len] = '\0';
- mbedtls_printf( " %d bytes read (%d + %d)\n\n%s\n",
- ori_len + extra_len, ori_len, extra_len,
- (char *) larger_buf );
+ mbedtls_printf(" %d bytes read (%d + %d)\n\n%s\n",
+ ori_len + extra_len, ori_len, extra_len,
+ (char *) larger_buf);
/* End of message should be detected according to the syntax of the
* application protocol (eg HTTP), just use a dummy test here. */
- if( larger_buf[ori_len + extra_len - 1] == '\n' )
+ if (larger_buf[ori_len + extra_len - 1] == '\n') {
terminated = 1;
+ }
- mbedtls_free( larger_buf );
+ mbedtls_free(larger_buf);
}
- if( terminated )
- {
+ if (terminated) {
ret = 0;
break;
}
- }
- while( 1 );
- }
- else /* Not stream, so datagram */
- {
+ } while (1);
+ } else { /* Not stream, so datagram */
len = opt.buffer_size;
- memset( buf, 0, opt.buffer_size );
+ memset(buf, 0, opt.buffer_size);
- do
- {
+ do {
/* Without the call to `mbedtls_ssl_check_pending`, it might
* happen that the client sends application data in the same
* datagram as the Finished message concluding the handshake.
@@ -4013,43 +3771,39 @@
*/
/* For event-driven IO, wait for socket to become available */
- if( mbedtls_ssl_check_pending( &ssl ) == 0 &&
- opt.event == 1 /* level triggered IO */ )
- {
+ if (mbedtls_ssl_check_pending(&ssl) == 0 &&
+ opt.event == 1 /* level triggered IO */) {
#if defined(MBEDTLS_TIMING_C)
- idle( &client_fd, &timer, MBEDTLS_ERR_SSL_WANT_READ );
+ idle(&client_fd, &timer, MBEDTLS_ERR_SSL_WANT_READ);
#else
- idle( &client_fd, MBEDTLS_ERR_SSL_WANT_READ );
+ idle(&client_fd, MBEDTLS_ERR_SSL_WANT_READ);
#endif
}
- ret = mbedtls_ssl_read( &ssl, buf, len );
+ ret = mbedtls_ssl_read(&ssl, buf, len);
/* Note that even if `mbedtls_ssl_check_pending` returns true,
* it can happen that the subsequent call to `mbedtls_ssl_read`
* returns `MBEDTLS_ERR_SSL_WANT_READ`, because the pending messages
* might be discarded (e.g. because they are retransmissions). */
- }
- while( mbedtls_status_is_ssl_in_progress( ret ) );
+ } while (mbedtls_status_is_ssl_in_progress(ret));
- if( ret <= 0 )
- {
- switch( ret )
- {
+ if (ret <= 0) {
+ switch (ret) {
case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY:
- mbedtls_printf( " connection was closed gracefully\n" );
+ mbedtls_printf(" connection was closed gracefully\n");
ret = 0;
goto close_notify;
default:
- mbedtls_printf( " mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret );
+ mbedtls_printf(" mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret);
goto reset;
}
}
len = ret;
buf[len] = '\0';
- mbedtls_printf( " %d bytes read\n\n%s", len, (char *) buf );
+ mbedtls_printf(" %d bytes read\n\n%s", len, (char *) buf);
ret = 0;
}
@@ -4058,124 +3812,113 @@
* (only on the first exchange, to be able to test retransmission)
*/
#if defined(MBEDTLS_SSL_RENEGOTIATION)
- if( opt.renegotiate && exchanges_left == opt.exchanges )
- {
- mbedtls_printf( " . Requestion renegotiation..." );
- fflush( stdout );
+ if (opt.renegotiate && exchanges_left == opt.exchanges) {
+ mbedtls_printf(" . Requestion renegotiation...");
+ fflush(stdout);
- while( ( ret = mbedtls_ssl_renegotiate( &ssl ) ) != 0 )
- {
- if( ! mbedtls_status_is_ssl_in_progress( ret ) )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_renegotiate returned %d\n\n", ret );
+ while ((ret = mbedtls_ssl_renegotiate(&ssl)) != 0) {
+ if (!mbedtls_status_is_ssl_in_progress(ret)) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_renegotiate returned %d\n\n", ret);
goto reset;
}
/* For event-driven IO, wait for socket to become available */
- if( opt.event == 1 /* level triggered IO */ )
- {
+ if (opt.event == 1 /* level triggered IO */) {
#if defined(MBEDTLS_TIMING_C)
- idle( &client_fd, &timer, ret );
+ idle(&client_fd, &timer, ret);
#else
- idle( &client_fd, ret );
+ idle(&client_fd, ret);
#endif
}
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
#endif /* MBEDTLS_SSL_RENEGOTIATION */
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
- ret = report_cid_usage( &ssl, "after renegotiation" );
- if( ret != 0 )
+ ret = report_cid_usage(&ssl, "after renegotiation");
+ if (ret != 0) {
goto exit;
+ }
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
/*
* 7. Write the 200 Response
*/
- mbedtls_printf( " > Write to client:" );
- fflush( stdout );
+ mbedtls_printf(" > Write to client:");
+ fflush(stdout);
/* If the format of the response changes, make sure there is enough
* room in buf (buf_content_size calculation above). */
- len = sprintf( (char *) buf, HTTP_RESPONSE,
- mbedtls_ssl_get_ciphersuite( &ssl ) );
+ len = sprintf((char *) buf, HTTP_RESPONSE,
+ mbedtls_ssl_get_ciphersuite(&ssl));
/* Add padding to the response to reach opt.response_size in length */
- if( opt.response_size != DFL_RESPONSE_SIZE &&
- len < opt.response_size )
- {
- memset( buf + len, 'B', opt.response_size - len );
+ if (opt.response_size != DFL_RESPONSE_SIZE &&
+ len < opt.response_size) {
+ memset(buf + len, 'B', opt.response_size - len);
len += opt.response_size - len;
}
/* Truncate if response size is smaller than the "natural" size */
- if( opt.response_size != DFL_RESPONSE_SIZE &&
- len > opt.response_size )
- {
+ if (opt.response_size != DFL_RESPONSE_SIZE &&
+ len > opt.response_size) {
len = opt.response_size;
/* Still end with \r\n unless that's really not possible */
- if( len >= 2 ) buf[len - 2] = '\r';
- if( len >= 1 ) buf[len - 1] = '\n';
+ if (len >= 2) {
+ buf[len - 2] = '\r';
+ }
+ if (len >= 1) {
+ buf[len - 1] = '\n';
+ }
}
- if( opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM )
- {
- for( written = 0, frags = 0; written < len; written += ret, frags++ )
- {
- while( ( ret = mbedtls_ssl_write( &ssl, buf + written, len - written ) )
- <= 0 )
- {
- if( ret == MBEDTLS_ERR_NET_CONN_RESET )
- {
- mbedtls_printf( " failed\n ! peer closed the connection\n\n" );
+ if (opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM) {
+ for (written = 0, frags = 0; written < len; written += ret, frags++) {
+ while ((ret = mbedtls_ssl_write(&ssl, buf + written, len - written))
+ <= 0) {
+ if (ret == MBEDTLS_ERR_NET_CONN_RESET) {
+ mbedtls_printf(" failed\n ! peer closed the connection\n\n");
goto reset;
}
- if( ! mbedtls_status_is_ssl_in_progress( ret ) )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret );
+ if (!mbedtls_status_is_ssl_in_progress(ret)) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret);
goto reset;
}
/* For event-driven IO, wait for socket to become available */
- if( opt.event == 1 /* level triggered IO */ )
- {
+ if (opt.event == 1 /* level triggered IO */) {
#if defined(MBEDTLS_TIMING_C)
- idle( &client_fd, &timer, ret );
+ idle(&client_fd, &timer, ret);
#else
- idle( &client_fd, ret );
+ idle(&client_fd, ret);
#endif
}
}
}
- }
- else /* Not stream, so datagram */
- {
- while( 1 )
- {
- ret = mbedtls_ssl_write( &ssl, buf, len );
+ } else { /* Not stream, so datagram */
+ while (1) {
+ ret = mbedtls_ssl_write(&ssl, buf, len);
- if( ! mbedtls_status_is_ssl_in_progress( ret ) )
+ if (!mbedtls_status_is_ssl_in_progress(ret)) {
break;
+ }
/* For event-driven IO, wait for socket to become available */
- if( opt.event == 1 /* level triggered IO */ )
- {
+ if (opt.event == 1 /* level triggered IO */) {
#if defined(MBEDTLS_TIMING_C)
- idle( &client_fd, &timer, ret );
+ idle(&client_fd, &timer, ret);
#else
- idle( &client_fd, ret );
+ idle(&client_fd, ret);
#endif
}
}
- if( ret < 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret );
+ if (ret < 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret);
goto reset;
}
@@ -4184,96 +3927,87 @@
}
buf[written] = '\0';
- mbedtls_printf( " %d bytes written in %d fragments\n\n%s\n", written, frags, (char *) buf );
+ mbedtls_printf(" %d bytes written in %d fragments\n\n%s\n", written, frags, (char *) buf);
ret = 0;
/*
* 7b. Simulate serialize/deserialize and go back to data exchange
*/
#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION)
- if( opt.serialize != 0 )
- {
+ if (opt.serialize != 0) {
size_t buf_len;
- mbedtls_printf( " . Serializing live connection..." );
+ mbedtls_printf(" . Serializing live connection...");
- ret = mbedtls_ssl_context_save( &ssl, NULL, 0, &buf_len );
- if( ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_context_save returned "
- "-0x%x\n\n", (unsigned int) -ret );
+ ret = mbedtls_ssl_context_save(&ssl, NULL, 0, &buf_len);
+ if (ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_context_save returned "
+ "-0x%x\n\n", (unsigned int) -ret);
goto exit;
}
- if( ( context_buf = mbedtls_calloc( 1, buf_len ) ) == NULL )
- {
- mbedtls_printf( " failed\n ! Couldn't allocate buffer for "
- "serialized context" );
+ if ((context_buf = mbedtls_calloc(1, buf_len)) == NULL) {
+ mbedtls_printf(" failed\n ! Couldn't allocate buffer for "
+ "serialized context");
goto exit;
}
context_buf_len = buf_len;
- if( ( ret = mbedtls_ssl_context_save( &ssl, context_buf,
- buf_len, &buf_len ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_context_save returned "
- "-0x%x\n\n", (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_context_save(&ssl, context_buf,
+ buf_len, &buf_len)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_context_save returned "
+ "-0x%x\n\n", (unsigned int) -ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/* Save serialized context to the 'opt.context_file' as a base64 code */
- if( 0 < strlen( opt.context_file ) )
- {
+ if (0 < strlen(opt.context_file)) {
FILE *b64_file;
uint8_t *b64_buf;
size_t b64_len;
- mbedtls_printf( " . Save serialized context to a file... " );
+ mbedtls_printf(" . Save serialized context to a file... ");
- mbedtls_base64_encode( NULL, 0, &b64_len, context_buf, buf_len );
+ mbedtls_base64_encode(NULL, 0, &b64_len, context_buf, buf_len);
- if( ( b64_buf = mbedtls_calloc( 1, b64_len ) ) == NULL )
- {
- mbedtls_printf( "failed\n ! Couldn't allocate buffer for "
- "the base64 code\n" );
+ if ((b64_buf = mbedtls_calloc(1, b64_len)) == NULL) {
+ mbedtls_printf("failed\n ! Couldn't allocate buffer for "
+ "the base64 code\n");
goto exit;
}
- if( ( ret = mbedtls_base64_encode( b64_buf, b64_len, &b64_len,
- context_buf, buf_len ) ) != 0 )
- {
- mbedtls_printf( "failed\n ! mbedtls_base64_encode returned "
- "-0x%x\n", (unsigned int) -ret );
- mbedtls_free( b64_buf );
+ if ((ret = mbedtls_base64_encode(b64_buf, b64_len, &b64_len,
+ context_buf, buf_len)) != 0) {
+ mbedtls_printf("failed\n ! mbedtls_base64_encode returned "
+ "-0x%x\n", (unsigned int) -ret);
+ mbedtls_free(b64_buf);
goto exit;
}
- if( ( b64_file = fopen( opt.context_file, "w" ) ) == NULL )
- {
- mbedtls_printf( "failed\n ! Cannot open '%s' for writing.\n",
- opt.context_file );
- mbedtls_free( b64_buf );
+ if ((b64_file = fopen(opt.context_file, "w")) == NULL) {
+ mbedtls_printf("failed\n ! Cannot open '%s' for writing.\n",
+ opt.context_file);
+ mbedtls_free(b64_buf);
goto exit;
}
- if( b64_len != fwrite( b64_buf, 1, b64_len, b64_file ) )
- {
- mbedtls_printf( "failed\n ! fwrite(%ld bytes) failed\n",
- (long) b64_len );
- mbedtls_free( b64_buf );
- fclose( b64_file );
+ if (b64_len != fwrite(b64_buf, 1, b64_len, b64_file)) {
+ mbedtls_printf("failed\n ! fwrite(%ld bytes) failed\n",
+ (long) b64_len);
+ mbedtls_free(b64_buf);
+ fclose(b64_file);
goto exit;
}
- mbedtls_free( b64_buf );
- fclose( b64_file );
+ mbedtls_free(b64_buf);
+ fclose(b64_file);
- mbedtls_printf( "ok\n" );
+ mbedtls_printf("ok\n");
}
/*
@@ -4283,10 +4017,9 @@
* case you can just reset() it, and then it's ready to receive
* serialized data from another connection (or the same here).
*/
- if( opt.serialize == 1 )
- {
+ if (opt.serialize == 1) {
/* nothing to do here, done by context_save() already */
- mbedtls_printf( " . Context has been reset... ok\n" );
+ mbedtls_printf(" . Context has been reset... ok\n");
}
/*
@@ -4297,18 +4030,16 @@
* teardown/startup code needed - for example, preparing the
* ssl_config again (see section 3 "setup stuff" in this file).
*/
- if( opt.serialize == 2 )
- {
- mbedtls_printf( " . Freeing and reinitializing context..." );
+ if (opt.serialize == 2) {
+ mbedtls_printf(" . Freeing and reinitializing context...");
- mbedtls_ssl_free( &ssl );
+ mbedtls_ssl_free(&ssl);
- mbedtls_ssl_init( &ssl );
+ mbedtls_ssl_init(&ssl);
- if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned "
- "-0x%x\n\n", (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned "
+ "-0x%x\n\n", (unsigned int) -ret);
goto exit;
}
@@ -4318,60 +4049,62 @@
* if you want to share your set up code between the case of
* establishing a new connection and this case.
*/
- if( opt.nbio == 2 )
- mbedtls_ssl_set_bio( &ssl, &client_fd, delayed_send,
- delayed_recv, NULL );
- else
- mbedtls_ssl_set_bio( &ssl, &client_fd, mbedtls_net_send,
- mbedtls_net_recv,
- opt.nbio == 0 ? mbedtls_net_recv_timeout : NULL );
+ if (opt.nbio == 2) {
+ mbedtls_ssl_set_bio(&ssl, &client_fd, delayed_send,
+ delayed_recv, NULL);
+ } else {
+ mbedtls_ssl_set_bio(&ssl, &client_fd, mbedtls_net_send,
+ mbedtls_net_recv,
+ opt.nbio == 0 ? mbedtls_net_recv_timeout : NULL);
+ }
#if defined(MBEDTLS_TIMING_C)
- mbedtls_ssl_set_timer_cb( &ssl, &timer,
- mbedtls_timing_set_delay,
- mbedtls_timing_get_delay );
+ mbedtls_ssl_set_timer_cb(&ssl, &timer,
+ mbedtls_timing_set_delay,
+ mbedtls_timing_get_delay);
#endif /* MBEDTLS_TIMING_C */
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
- mbedtls_printf( " . Deserializing connection..." );
+ mbedtls_printf(" . Deserializing connection...");
- if( ( ret = mbedtls_ssl_context_load( &ssl, context_buf,
- buf_len ) ) != 0 )
- {
- mbedtls_printf( "failed\n ! mbedtls_ssl_context_load returned "
- "-0x%x\n\n", (unsigned int) -ret );
+ if ((ret = mbedtls_ssl_context_load(&ssl, context_buf,
+ buf_len)) != 0) {
+ mbedtls_printf("failed\n ! mbedtls_ssl_context_load returned "
+ "-0x%x\n\n", (unsigned int) -ret);
goto exit;
}
- mbedtls_free( context_buf );
+ mbedtls_free(context_buf);
context_buf = NULL;
context_buf_len = 0;
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
#endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */
/*
* 7c. Continue doing data exchanges?
*/
- if( --exchanges_left > 0 )
+ if (--exchanges_left > 0) {
goto data_exchange;
+ }
/*
* 8. Done, cleanly close the connection
*/
close_notify:
- mbedtls_printf( " . Closing the connection..." );
+ mbedtls_printf(" . Closing the connection...");
/* No error checking, the connection might be closed already */
- do ret = mbedtls_ssl_close_notify( &ssl );
- while( ret == MBEDTLS_ERR_SSL_WANT_WRITE );
+ do {
+ ret = mbedtls_ssl_close_notify(&ssl);
+ } while (ret == MBEDTLS_ERR_SSL_WANT_WRITE);
ret = 0;
- mbedtls_printf( " done\n" );
+ mbedtls_printf(" done\n");
goto reset;
@@ -4380,75 +4113,73 @@
*/
exit:
#ifdef MBEDTLS_ERROR_C
- if( ret != 0 )
- {
+ if (ret != 0) {
char error_buf[100];
- mbedtls_strerror( ret, error_buf, 100 );
- mbedtls_printf("Last error was: -0x%X - %s\n\n", (unsigned int) -ret, error_buf );
+ mbedtls_strerror(ret, error_buf, 100);
+ mbedtls_printf("Last error was: -0x%X - %s\n\n", (unsigned int) -ret, error_buf);
}
#endif
- if( opt.query_config_mode == DFL_QUERY_CONFIG_MODE )
- {
- mbedtls_printf( " . Cleaning up..." );
- fflush( stdout );
+ if (opt.query_config_mode == DFL_QUERY_CONFIG_MODE) {
+ mbedtls_printf(" . Cleaning up...");
+ fflush(stdout);
}
- mbedtls_net_free( &client_fd );
- mbedtls_net_free( &listen_fd );
+ mbedtls_net_free(&client_fd);
+ mbedtls_net_free(&listen_fd);
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
+ mbedtls_ssl_free(&ssl);
+ mbedtls_ssl_config_free(&conf);
#if defined(MBEDTLS_SSL_CACHE_C)
- mbedtls_ssl_cache_free( &cache );
+ mbedtls_ssl_cache_free(&cache);
#endif
#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C)
- mbedtls_ssl_ticket_free( &ticket_ctx );
+ mbedtls_ssl_ticket_free(&ticket_ctx);
#endif
#if defined(MBEDTLS_SSL_COOKIE_C)
- mbedtls_ssl_cookie_free( &cookie_ctx );
+ mbedtls_ssl_cookie_free(&cookie_ctx);
#endif
#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION)
- if( context_buf != NULL )
- mbedtls_platform_zeroize( context_buf, context_buf_len );
- mbedtls_free( context_buf );
+ if (context_buf != NULL) {
+ mbedtls_platform_zeroize(context_buf, context_buf_len);
+ }
+ mbedtls_free(context_buf);
#endif
#if defined(SNI_OPTION)
- sni_free( sni_info );
+ sni_free(sni_info);
#endif
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED)
- ret = psk_free( psk_info );
- if( ( ret != 0 ) && ( opt.query_config_mode == DFL_QUERY_CONFIG_MODE ) )
- mbedtls_printf( "Failed to list of opaque PSKs - error was %d\n", ret );
+ ret = psk_free(psk_info);
+ if ((ret != 0) && (opt.query_config_mode == DFL_QUERY_CONFIG_MODE)) {
+ mbedtls_printf("Failed to list of opaque PSKs - error was %d\n", ret);
+ }
#endif
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED)
- mbedtls_x509_crt_free( &cacert );
- mbedtls_x509_crt_free( &srvcert );
- mbedtls_pk_free( &pkey );
- mbedtls_x509_crt_free( &srvcert2 );
- mbedtls_pk_free( &pkey2 );
+ mbedtls_x509_crt_free(&cacert);
+ mbedtls_x509_crt_free(&srvcert);
+ mbedtls_pk_free(&pkey);
+ mbedtls_x509_crt_free(&srvcert2);
+ mbedtls_pk_free(&pkey2);
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- psa_destroy_key( key_slot );
- psa_destroy_key( key_slot2 );
+ psa_destroy_key(key_slot);
+ psa_destroy_key(key_slot2);
#endif
#endif
#if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO)
- mbedtls_dhm_free( &dhm );
+ mbedtls_dhm_free(&dhm);
#endif
#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
- for( i = 0; (size_t) i < ssl_async_keys.slots_used; i++ )
- {
- if( ssl_async_keys.slots[i].pk_owned )
- {
- mbedtls_pk_free( ssl_async_keys.slots[i].pk );
- mbedtls_free( ssl_async_keys.slots[i].pk );
+ for (i = 0; (size_t) i < ssl_async_keys.slots_used; i++) {
+ if (ssl_async_keys.slots[i].pk_owned) {
+ mbedtls_pk_free(ssl_async_keys.slots[i].pk);
+ mbedtls_free(ssl_async_keys.slots[i].pk);
ssl_async_keys.slots[i].pk = NULL;
}
}
@@ -4456,19 +4187,17 @@
#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) && \
defined(MBEDTLS_USE_PSA_CRYPTO)
- if( opt.psk_opaque != 0 )
- {
+ if (opt.psk_opaque != 0) {
/* This is ok even if the slot hasn't been
* initialized (we might have jumed here
* immediately because of bad cmd line params,
* for example). */
- status = psa_destroy_key( psk_slot );
- if( ( status != PSA_SUCCESS ) &&
- ( opt.query_config_mode == DFL_QUERY_CONFIG_MODE ) )
- {
- mbedtls_printf( "Failed to destroy key slot %u - error was %d",
- (unsigned) MBEDTLS_SVC_KEY_ID_GET_KEY_ID( psk_slot ),
- (int) status );
+ status = psa_destroy_key(psk_slot);
+ if ((status != PSA_SUCCESS) &&
+ (opt.query_config_mode == DFL_QUERY_CONFIG_MODE)) {
+ mbedtls_printf("Failed to destroy key slot %u - error was %d",
+ (unsigned) MBEDTLS_SVC_KEY_ID_GET_KEY_ID(psk_slot),
+ (int) status);
}
}
#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED &&
@@ -4480,60 +4209,56 @@
* In case opaque keys it's the user responsibility to keep the key valid
* for the duration of the handshake and destroy it at the end
*/
- if( ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) )
- {
+ if ((opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE)) {
psa_key_attributes_t check_attributes = PSA_KEY_ATTRIBUTES_INIT;
/* Verify that the key is still valid before destroying it */
- if( psa_get_key_attributes( ecjpake_pw_slot, &check_attributes ) !=
- PSA_SUCCESS )
- {
- if( ret == 0 )
+ if (psa_get_key_attributes(ecjpake_pw_slot, &check_attributes) !=
+ PSA_SUCCESS) {
+ if (ret == 0) {
ret = 1;
- mbedtls_printf( "The EC J-PAKE password key has unexpectedly been already destroyed\n" );
- }
- else
- {
- psa_destroy_key( ecjpake_pw_slot );
+ }
+ mbedtls_printf("The EC J-PAKE password key has unexpectedly been already destroyed\n");
+ } else {
+ psa_destroy_key(ecjpake_pw_slot);
}
}
#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO */
#if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)
- const char* message = mbedtls_test_helper_is_psa_leaking();
- if( message )
- {
- if( ret == 0 )
+ const char *message = mbedtls_test_helper_is_psa_leaking();
+ if (message) {
+ if (ret == 0) {
ret = 1;
- mbedtls_printf( "PSA memory leak detected: %s\n", message);
+ }
+ mbedtls_printf("PSA memory leak detected: %s\n", message);
}
#endif
/* For builds with MBEDTLS_TEST_USE_PSA_CRYPTO_RNG psa crypto
* resources are freed by rng_free(). */
-#if ( defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) ) \
+#if (defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)) \
&& !defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG)
- mbedtls_psa_crypto_free( );
+ mbedtls_psa_crypto_free();
#endif
- rng_free( &rng );
+ rng_free(&rng);
- mbedtls_free( buf );
+ mbedtls_free(buf);
#if defined(MBEDTLS_TEST_HOOKS)
/* Let test hooks detect errors such as resource leaks.
* Don't do it in query_config mode, because some test code prints
* information to stdout and this gets mixed with the regular output. */
- if( opt.query_config_mode == DFL_QUERY_CONFIG_MODE )
- {
- if( test_hooks_failure_detected( ) )
- {
- if( ret == 0 )
+ if (opt.query_config_mode == DFL_QUERY_CONFIG_MODE) {
+ if (test_hooks_failure_detected()) {
+ if (ret == 0) {
ret = 1;
- mbedtls_printf( "Test hooks detected errors.\n" );
+ }
+ mbedtls_printf("Test hooks detected errors.\n");
}
}
- test_hooks_free( );
+ test_hooks_free();
#endif /* MBEDTLS_TEST_HOOKS */
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
@@ -4543,18 +4268,19 @@
mbedtls_memory_buffer_alloc_free();
#endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */
- if( opt.query_config_mode == DFL_QUERY_CONFIG_MODE )
- {
- mbedtls_printf( " done.\n" );
+ if (opt.query_config_mode == DFL_QUERY_CONFIG_MODE) {
+ mbedtls_printf(" done.\n");
}
// Shell can not handle large exit numbers -> 1 for errors
- if( ret < 0 )
+ if (ret < 0) {
ret = 1;
+ }
- if( opt.query_config_mode == DFL_QUERY_CONFIG_MODE )
- mbedtls_exit( ret );
- else
- mbedtls_exit( query_config_ret );
+ if (opt.query_config_mode == DFL_QUERY_CONFIG_MODE) {
+ mbedtls_exit(ret);
+ } else {
+ mbedtls_exit(query_config_ret);
+ }
}
#endif /* !MBEDTLS_SSL_TEST_IMPOSSIBLE && MBEDTLS_SSL_SRV_C */
diff --git a/programs/ssl/ssl_test_common_source.c b/programs/ssl/ssl_test_common_source.c
index 42d8d11..9115cd1 100644
--- a/programs/ssl/ssl_test_common_source.c
+++ b/programs/ssl/ssl_test_common_source.c
@@ -24,174 +24,176 @@
* limitations under the License.
*/
-void eap_tls_key_derivation( void *p_expkey,
- mbedtls_ssl_key_export_type secret_type,
- const unsigned char *secret,
- size_t secret_len,
- const unsigned char client_random[32],
- const unsigned char server_random[32],
- mbedtls_tls_prf_types tls_prf_type )
+void eap_tls_key_derivation(void *p_expkey,
+ mbedtls_ssl_key_export_type secret_type,
+ const unsigned char *secret,
+ size_t secret_len,
+ const unsigned char client_random[32],
+ const unsigned char server_random[32],
+ mbedtls_tls_prf_types tls_prf_type)
{
- eap_tls_keys *keys = (eap_tls_keys *)p_expkey;
+ eap_tls_keys *keys = (eap_tls_keys *) p_expkey;
/* We're only interested in the TLS 1.2 master secret */
- if( secret_type != MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET )
+ if (secret_type != MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET) {
return;
- if( secret_len != sizeof( keys->master_secret ) )
+ }
+ if (secret_len != sizeof(keys->master_secret)) {
return;
+ }
- memcpy( keys->master_secret, secret, sizeof( keys->master_secret ) );
- memcpy( keys->randbytes, client_random, 32 );
- memcpy( keys->randbytes + 32, server_random, 32 );
+ memcpy(keys->master_secret, secret, sizeof(keys->master_secret));
+ memcpy(keys->randbytes, client_random, 32);
+ memcpy(keys->randbytes + 32, server_random, 32);
keys->tls_prf_type = tls_prf_type;
}
-void nss_keylog_export( void *p_expkey,
- mbedtls_ssl_key_export_type secret_type,
- const unsigned char *secret,
- size_t secret_len,
- const unsigned char client_random[32],
- const unsigned char server_random[32],
- mbedtls_tls_prf_types tls_prf_type )
+void nss_keylog_export(void *p_expkey,
+ mbedtls_ssl_key_export_type secret_type,
+ const unsigned char *secret,
+ size_t secret_len,
+ const unsigned char client_random[32],
+ const unsigned char server_random[32],
+ mbedtls_tls_prf_types tls_prf_type)
{
- char nss_keylog_line[ 200 ];
+ char nss_keylog_line[200];
size_t const client_random_len = 32;
size_t len = 0;
size_t j;
/* We're only interested in the TLS 1.2 master secret */
- if( secret_type != MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET )
+ if (secret_type != MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET) {
return;
+ }
((void) p_expkey);
((void) server_random);
((void) tls_prf_type);
- len += sprintf( nss_keylog_line + len,
- "%s", "CLIENT_RANDOM " );
+ len += sprintf(nss_keylog_line + len,
+ "%s", "CLIENT_RANDOM ");
- for( j = 0; j < client_random_len; j++ )
- {
- len += sprintf( nss_keylog_line + len,
- "%02x", client_random[j] );
+ for (j = 0; j < client_random_len; j++) {
+ len += sprintf(nss_keylog_line + len,
+ "%02x", client_random[j]);
}
- len += sprintf( nss_keylog_line + len, " " );
+ len += sprintf(nss_keylog_line + len, " ");
- for( j = 0; j < secret_len; j++ )
- {
- len += sprintf( nss_keylog_line + len,
- "%02x", secret[j] );
+ for (j = 0; j < secret_len; j++) {
+ len += sprintf(nss_keylog_line + len,
+ "%02x", secret[j]);
}
- len += sprintf( nss_keylog_line + len, "\n" );
- nss_keylog_line[ len ] = '\0';
+ len += sprintf(nss_keylog_line + len, "\n");
+ nss_keylog_line[len] = '\0';
- mbedtls_printf( "\n" );
- mbedtls_printf( "---------------- NSS KEYLOG -----------------\n" );
- mbedtls_printf( "%s", nss_keylog_line );
- mbedtls_printf( "---------------------------------------------\n" );
+ mbedtls_printf("\n");
+ mbedtls_printf("---------------- NSS KEYLOG -----------------\n");
+ mbedtls_printf("%s", nss_keylog_line);
+ mbedtls_printf("---------------------------------------------\n");
- if( opt.nss_keylog_file != NULL )
- {
+ if (opt.nss_keylog_file != NULL) {
FILE *f;
- if( ( f = fopen( opt.nss_keylog_file, "a" ) ) == NULL )
- {
+ if ((f = fopen(opt.nss_keylog_file, "a")) == NULL) {
goto exit;
}
/* Ensure no stdio buffering of secrets, as such buffers cannot be
* wiped. */
- mbedtls_setbuf( f, NULL );
+ mbedtls_setbuf(f, NULL);
- if( fwrite( nss_keylog_line, 1, len, f ) != len )
- {
- fclose( f );
+ if (fwrite(nss_keylog_line, 1, len, f) != len) {
+ fclose(f);
goto exit;
}
- fclose( f );
+ fclose(f);
}
exit:
- mbedtls_platform_zeroize( nss_keylog_line,
- sizeof( nss_keylog_line ) );
+ mbedtls_platform_zeroize(nss_keylog_line,
+ sizeof(nss_keylog_line));
}
-#if defined( MBEDTLS_SSL_DTLS_SRTP )
-void dtls_srtp_key_derivation( void *p_expkey,
- mbedtls_ssl_key_export_type secret_type,
- const unsigned char *secret,
- size_t secret_len,
- const unsigned char client_random[32],
- const unsigned char server_random[32],
- mbedtls_tls_prf_types tls_prf_type )
+#if defined(MBEDTLS_SSL_DTLS_SRTP)
+void dtls_srtp_key_derivation(void *p_expkey,
+ mbedtls_ssl_key_export_type secret_type,
+ const unsigned char *secret,
+ size_t secret_len,
+ const unsigned char client_random[32],
+ const unsigned char server_random[32],
+ mbedtls_tls_prf_types tls_prf_type)
{
- dtls_srtp_keys *keys = (dtls_srtp_keys *)p_expkey;
+ dtls_srtp_keys *keys = (dtls_srtp_keys *) p_expkey;
/* We're only interested in the TLS 1.2 master secret */
- if( secret_type != MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET )
+ if (secret_type != MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET) {
return;
- if( secret_len != sizeof( keys->master_secret ) )
+ }
+ if (secret_len != sizeof(keys->master_secret)) {
return;
+ }
- memcpy( keys->master_secret, secret, sizeof( keys->master_secret ) );
- memcpy( keys->randbytes, client_random, 32 );
- memcpy( keys->randbytes + 32, server_random, 32 );
+ memcpy(keys->master_secret, secret, sizeof(keys->master_secret));
+ memcpy(keys->randbytes, client_random, 32);
+ memcpy(keys->randbytes + 32, server_random, 32);
keys->tls_prf_type = tls_prf_type;
}
#endif /* MBEDTLS_SSL_DTLS_SRTP */
-int ssl_check_record( mbedtls_ssl_context const *ssl,
- unsigned char const *buf, size_t len )
+int ssl_check_record(mbedtls_ssl_context const *ssl,
+ unsigned char const *buf, size_t len)
{
int my_ret = 0, ret_cr1, ret_cr2;
unsigned char *tmp_buf;
/* Record checking may modify the input buffer,
* so make a copy. */
- tmp_buf = mbedtls_calloc( 1, len );
- if( tmp_buf == NULL )
- return( MBEDTLS_ERR_SSL_ALLOC_FAILED );
- memcpy( tmp_buf, buf, len );
+ tmp_buf = mbedtls_calloc(1, len);
+ if (tmp_buf == NULL) {
+ return MBEDTLS_ERR_SSL_ALLOC_FAILED;
+ }
+ memcpy(tmp_buf, buf, len);
- ret_cr1 = mbedtls_ssl_check_record( ssl, tmp_buf, len );
- if( ret_cr1 != MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE )
- {
+ ret_cr1 = mbedtls_ssl_check_record(ssl, tmp_buf, len);
+ if (ret_cr1 != MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE) {
/* Test-only: Make sure that mbedtls_ssl_check_record()
* doesn't alter state. */
- memcpy( tmp_buf, buf, len ); /* Restore buffer */
- ret_cr2 = mbedtls_ssl_check_record( ssl, tmp_buf, len );
- if( ret_cr2 != ret_cr1 )
- {
- mbedtls_printf( "mbedtls_ssl_check_record() returned inconsistent results.\n" );
+ memcpy(tmp_buf, buf, len); /* Restore buffer */
+ ret_cr2 = mbedtls_ssl_check_record(ssl, tmp_buf, len);
+ if (ret_cr2 != ret_cr1) {
+ mbedtls_printf("mbedtls_ssl_check_record() returned inconsistent results.\n");
my_ret = -1;
goto cleanup;
}
- switch( ret_cr1 )
- {
+ switch (ret_cr1) {
case 0:
break;
case MBEDTLS_ERR_SSL_INVALID_RECORD:
- if( opt.debug_level > 1 )
- mbedtls_printf( "mbedtls_ssl_check_record() detected invalid record.\n" );
+ if (opt.debug_level > 1) {
+ mbedtls_printf("mbedtls_ssl_check_record() detected invalid record.\n");
+ }
break;
case MBEDTLS_ERR_SSL_INVALID_MAC:
- if( opt.debug_level > 1 )
- mbedtls_printf( "mbedtls_ssl_check_record() detected unauthentic record.\n" );
+ if (opt.debug_level > 1) {
+ mbedtls_printf("mbedtls_ssl_check_record() detected unauthentic record.\n");
+ }
break;
case MBEDTLS_ERR_SSL_UNEXPECTED_RECORD:
- if( opt.debug_level > 1 )
- mbedtls_printf( "mbedtls_ssl_check_record() detected unexpected record.\n" );
+ if (opt.debug_level > 1) {
+ mbedtls_printf("mbedtls_ssl_check_record() detected unexpected record.\n");
+ }
break;
default:
- mbedtls_printf( "mbedtls_ssl_check_record() failed fatally with -%#04x.\n", (unsigned int) -ret_cr1 );
+ mbedtls_printf("mbedtls_ssl_check_record() failed fatally with -%#04x.\n",
+ (unsigned int) -ret_cr1);
my_ret = -1;
goto cleanup;
}
@@ -200,69 +202,73 @@
}
cleanup:
- mbedtls_free( tmp_buf );
+ mbedtls_free(tmp_buf);
- return( my_ret );
+ return my_ret;
}
-int recv_cb( void *ctx, unsigned char *buf, size_t len )
+int recv_cb(void *ctx, unsigned char *buf, size_t len)
{
- io_ctx_t *io_ctx = (io_ctx_t*) ctx;
+ io_ctx_t *io_ctx = (io_ctx_t *) ctx;
size_t recv_len;
int ret;
- if( opt.nbio == 2 )
- ret = delayed_recv( io_ctx->net, buf, len );
- else
- ret = mbedtls_net_recv( io_ctx->net, buf, len );
- if( ret < 0 )
- return( ret );
+ if (opt.nbio == 2) {
+ ret = delayed_recv(io_ctx->net, buf, len);
+ } else {
+ ret = mbedtls_net_recv(io_ctx->net, buf, len);
+ }
+ if (ret < 0) {
+ return ret;
+ }
recv_len = (size_t) ret;
- if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM )
- {
+ if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) {
/* Here's the place to do any datagram/record checking
* in between receiving the packet from the underlying
* transport and passing it on to the TLS stack. */
- if( ssl_check_record( io_ctx->ssl, buf, recv_len ) != 0 )
- return( -1 );
+ if (ssl_check_record(io_ctx->ssl, buf, recv_len) != 0) {
+ return -1;
+ }
}
- return( (int) recv_len );
+ return (int) recv_len;
}
-int recv_timeout_cb( void *ctx, unsigned char *buf, size_t len,
- uint32_t timeout )
+int recv_timeout_cb(void *ctx, unsigned char *buf, size_t len,
+ uint32_t timeout)
{
- io_ctx_t *io_ctx = (io_ctx_t*) ctx;
+ io_ctx_t *io_ctx = (io_ctx_t *) ctx;
int ret;
size_t recv_len;
- ret = mbedtls_net_recv_timeout( io_ctx->net, buf, len, timeout );
- if( ret < 0 )
- return( ret );
+ ret = mbedtls_net_recv_timeout(io_ctx->net, buf, len, timeout);
+ if (ret < 0) {
+ return ret;
+ }
recv_len = (size_t) ret;
- if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM )
- {
+ if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) {
/* Here's the place to do any datagram/record checking
* in between receiving the packet from the underlying
* transport and passing it on to the TLS stack. */
- if( ssl_check_record( io_ctx->ssl, buf, recv_len ) != 0 )
- return( -1 );
+ if (ssl_check_record(io_ctx->ssl, buf, recv_len) != 0) {
+ return -1;
+ }
}
- return( (int) recv_len );
+ return (int) recv_len;
}
-int send_cb( void *ctx, unsigned char const *buf, size_t len )
+int send_cb(void *ctx, unsigned char const *buf, size_t len)
{
- io_ctx_t *io_ctx = (io_ctx_t*) ctx;
+ io_ctx_t *io_ctx = (io_ctx_t *) ctx;
- if( opt.nbio == 2 )
- return( delayed_send( io_ctx->net, buf, len ) );
+ if (opt.nbio == 2) {
+ return delayed_send(io_ctx->net, buf, len);
+ }
- return( mbedtls_net_send( io_ctx->net, buf, len ) );
+ return mbedtls_net_send(io_ctx->net, buf, len);
}
#if defined(MBEDTLS_X509_CRT_PARSE_C)
@@ -276,46 +282,46 @@
* for its signature in the key exchange message. As Mbed TLS 1.2 does not
* support them, the handshake fails.
*/
-#define MBEDTLS_SSL_SIG_ALG( hash ) (( hash << 8 ) | MBEDTLS_SSL_SIG_ECDSA), \
- (( hash << 8 ) | MBEDTLS_SSL_SIG_RSA), \
- ( 0x800 | hash ),
+#define MBEDTLS_SSL_SIG_ALG(hash) ((hash << 8) | MBEDTLS_SSL_SIG_ECDSA), \
+ ((hash << 8) | MBEDTLS_SSL_SIG_RSA), \
+ (0x800 | hash),
#else
-#define MBEDTLS_SSL_SIG_ALG( hash ) (( hash << 8 ) | MBEDTLS_SSL_SIG_ECDSA), \
- (( hash << 8 ) | MBEDTLS_SSL_SIG_RSA),
+#define MBEDTLS_SSL_SIG_ALG(hash) ((hash << 8) | MBEDTLS_SSL_SIG_ECDSA), \
+ ((hash << 8) | MBEDTLS_SSL_SIG_RSA),
#endif
#elif defined(MBEDTLS_ECDSA_C)
-#define MBEDTLS_SSL_SIG_ALG( hash ) (( hash << 8 ) | MBEDTLS_SSL_SIG_ECDSA),
+#define MBEDTLS_SSL_SIG_ALG(hash) ((hash << 8) | MBEDTLS_SSL_SIG_ECDSA),
#elif defined(MBEDTLS_RSA_C)
#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
/* See above */
-#define MBEDTLS_SSL_SIG_ALG( hash ) (( hash << 8 ) | MBEDTLS_SSL_SIG_RSA), \
- ( 0x800 | hash ),
+#define MBEDTLS_SSL_SIG_ALG(hash) ((hash << 8) | MBEDTLS_SSL_SIG_RSA), \
+ (0x800 | hash),
#else
-#define MBEDTLS_SSL_SIG_ALG( hash ) (( hash << 8 ) | MBEDTLS_SSL_SIG_RSA),
+#define MBEDTLS_SSL_SIG_ALG(hash) ((hash << 8) | MBEDTLS_SSL_SIG_RSA),
#endif
#else
-#define MBEDTLS_SSL_SIG_ALG( hash )
+#define MBEDTLS_SSL_SIG_ALG(hash)
#endif
uint16_t ssl_sig_algs_for_test[] = {
#if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
- MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA512 )
+ MBEDTLS_SSL_SIG_ALG(MBEDTLS_SSL_HASH_SHA512)
#endif
#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
- MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA384 )
+ MBEDTLS_SSL_SIG_ALG(MBEDTLS_SSL_HASH_SHA384)
#endif
#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
- MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA256 )
+ MBEDTLS_SSL_SIG_ALG(MBEDTLS_SSL_HASH_SHA256)
#endif
#if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
- MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA224 )
+ MBEDTLS_SSL_SIG_ALG(MBEDTLS_SSL_HASH_SHA224)
#endif
#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256,
#endif /* MBEDTLS_RSA_C && MBEDTLS_SHA256_C */
#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
/* Allow SHA-1 as we use it extensively in tests. */
- MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA1 )
+ MBEDTLS_SSL_SIG_ALG(MBEDTLS_SSL_HASH_SHA1)
#endif
MBEDTLS_TLS1_3_SIG_NONE
};
@@ -325,21 +331,21 @@
/** Functionally equivalent to mbedtls_x509_crt_verify_info, see that function
* for more info.
*/
-int x509_crt_verify_info( char *buf, size_t size, const char *prefix,
- uint32_t flags )
+int x509_crt_verify_info(char *buf, size_t size, const char *prefix,
+ uint32_t flags)
{
#if !defined(MBEDTLS_X509_REMOVE_INFO)
- return( mbedtls_x509_crt_verify_info( buf, size, prefix, flags ) );
+ return mbedtls_x509_crt_verify_info(buf, size, prefix, flags);
#else /* !MBEDTLS_X509_REMOVE_INFO */
int ret;
char *p = buf;
size_t n = size;
-#define X509_CRT_ERROR_INFO( err, err_str, info ) \
- if( ( flags & err ) != 0 ) \
+#define X509_CRT_ERROR_INFO(err, err_str, info) \
+ if ((flags & err) != 0) \
{ \
- ret = mbedtls_snprintf( p, n, "%s%s\n", prefix, info ); \
+ ret = mbedtls_snprintf(p, n, "%s%s\n", prefix, info); \
MBEDTLS_X509_SAFE_SNPRINTF; \
flags ^= err; \
}
@@ -347,21 +353,20 @@
MBEDTLS_X509_CRT_ERROR_INFO_LIST
#undef X509_CRT_ERROR_INFO
- if( flags != 0 )
- {
- ret = mbedtls_snprintf( p, n, "%sUnknown reason "
- "(this should not happen)\n", prefix );
+ if (flags != 0) {
+ ret = mbedtls_snprintf(p, n, "%sUnknown reason "
+ "(this should not happen)\n", prefix);
MBEDTLS_X509_SAFE_SNPRINTF;
}
- return( (int) ( size - n ) );
+ return (int) (size - n);
#endif /* MBEDTLS_X509_REMOVE_INFO */
}
#endif /* MBEDTLS_X509_CRT_PARSE_C */
-void mbedtls_print_supported_sig_algs( void )
+void mbedtls_print_supported_sig_algs(void)
{
- mbedtls_printf( "supported signature algorithms:\n" );
+ mbedtls_printf("supported signature algorithms:\n");
mbedtls_printf("\trsa_pkcs1_sha256 ");
mbedtls_printf("rsa_pkcs1_sha384 ");
mbedtls_printf("rsa_pkcs1_sha512\n");
@@ -378,5 +383,5 @@
mbedtls_printf("ed448 ");
mbedtls_printf("rsa_pkcs1_sha1 ");
mbedtls_printf("ecdsa_sha1\n");
- mbedtls_printf( "\n" );
+ mbedtls_printf("\n");
}
diff --git a/programs/ssl/ssl_test_lib.c b/programs/ssl/ssl_test_lib.c
index cf810a3..e3e3cac 100644
--- a/programs/ssl/ssl_test_lib.c
+++ b/programs/ssl/ssl_test_lib.c
@@ -30,24 +30,26 @@
#if !defined(MBEDTLS_SSL_TEST_IMPOSSIBLE)
-void my_debug( void *ctx, int level,
- const char *file, int line,
- const char *str )
+void my_debug(void *ctx, int level,
+ const char *file, int line,
+ const char *str)
{
const char *p, *basename;
/* Extract basename from file */
- for( p = basename = file; *p != '\0'; p++ )
- if( *p == '/' || *p == '\\' )
+ for (p = basename = file; *p != '\0'; p++) {
+ if (*p == '/' || *p == '\\') {
basename = p + 1;
+ }
+ }
- mbedtls_fprintf( (FILE *) ctx, "%s:%04d: |%d| %s",
- basename, line, level, str );
- fflush( (FILE *) ctx );
+ mbedtls_fprintf((FILE *) ctx, "%s:%04d: |%d| %s",
+ basename, line, level, str);
+ fflush((FILE *) ctx);
}
#if defined(MBEDTLS_HAVE_TIME)
-mbedtls_time_t dummy_constant_time( mbedtls_time_t* time )
+mbedtls_time_t dummy_constant_time(mbedtls_time_t *time)
{
(void) time;
return 0x5af2a056;
@@ -55,74 +57,72 @@
#endif
#if !defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG)
-static int dummy_entropy( void *data, unsigned char *output, size_t len )
+static int dummy_entropy(void *data, unsigned char *output, size_t len)
{
size_t i;
int ret;
(void) data;
- ret = mbedtls_entropy_func( data, output, len );
- for( i = 0; i < len; i++ )
- {
+ ret = mbedtls_entropy_func(data, output, len);
+ for (i = 0; i < len; i++) {
//replace result with pseudo random
output[i] = (unsigned char) rand();
}
- return( ret );
+ return ret;
}
#endif
-void rng_init( rng_context_t *rng )
+void rng_init(rng_context_t *rng)
{
#if defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG)
(void) rng;
- psa_crypto_init( );
+ psa_crypto_init();
#else /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */
#if defined(MBEDTLS_CTR_DRBG_C)
- mbedtls_ctr_drbg_init( &rng->drbg );
+ mbedtls_ctr_drbg_init(&rng->drbg);
#elif defined(MBEDTLS_HMAC_DRBG_C)
- mbedtls_hmac_drbg_init( &rng->drbg );
+ mbedtls_hmac_drbg_init(&rng->drbg);
#else
#error "No DRBG available"
#endif
- mbedtls_entropy_init( &rng->entropy );
+ mbedtls_entropy_init(&rng->entropy);
#endif /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */
}
-int rng_seed( rng_context_t *rng, int reproducible, const char *pers )
+int rng_seed(rng_context_t *rng, int reproducible, const char *pers)
{
#if defined(MBEDTLS_USE_PSA_CRYPTO)
- if( reproducible )
- {
- mbedtls_fprintf( stderr,
- "MBEDTLS_USE_PSA_CRYPTO does not support reproducible mode.\n" );
- return( -1 );
+ if (reproducible) {
+ mbedtls_fprintf(stderr,
+ "MBEDTLS_USE_PSA_CRYPTO does not support reproducible mode.\n");
+ return -1;
}
#endif
#if defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG)
/* The PSA crypto RNG does its own seeding. */
(void) rng;
(void) pers;
- if( reproducible )
- {
- mbedtls_fprintf( stderr,
- "The PSA RNG does not support reproducible mode.\n" );
- return( -1 );
+ if (reproducible) {
+ mbedtls_fprintf(stderr,
+ "The PSA RNG does not support reproducible mode.\n");
+ return -1;
}
- return( 0 );
+ return 0;
#else /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */
- int ( *f_entropy )( void *, unsigned char *, size_t ) =
- ( reproducible ? dummy_entropy : mbedtls_entropy_func );
+ int (*f_entropy)(void *, unsigned char *, size_t) =
+ (reproducible ? dummy_entropy : mbedtls_entropy_func);
- if ( reproducible )
- srand( 1 );
+ if (reproducible) {
+ srand(1);
+ }
#if defined(MBEDTLS_CTR_DRBG_C)
- int ret = mbedtls_ctr_drbg_seed( &rng->drbg,
- f_entropy, &rng->entropy,
- (const unsigned char *) pers,
- strlen( pers ) );
+ int ret = mbedtls_ctr_drbg_seed(&rng->drbg,
+ f_entropy, &rng->entropy,
+ (const unsigned char *) pers,
+ strlen(pers));
#elif defined(MBEDTLS_HMAC_DRBG_C)
#if defined(MBEDTLS_SHA256_C)
const mbedtls_md_type_t md_type = MBEDTLS_MD_SHA256;
@@ -131,61 +131,60 @@
#else
#error "No message digest available for HMAC_DRBG"
#endif
- int ret = mbedtls_hmac_drbg_seed( &rng->drbg,
- mbedtls_md_info_from_type( md_type ),
- f_entropy, &rng->entropy,
- (const unsigned char *) pers,
- strlen( pers ) );
+ int ret = mbedtls_hmac_drbg_seed(&rng->drbg,
+ mbedtls_md_info_from_type(md_type),
+ f_entropy, &rng->entropy,
+ (const unsigned char *) pers,
+ strlen(pers));
#else /* !defined(MBEDTLS_CTR_DRBG_C) && !defined(MBEDTLS_HMAC_DRBG_C) */
#error "No DRBG available"
#endif /* !defined(MBEDTLS_CTR_DRBG_C) && !defined(MBEDTLS_HMAC_DRBG_C) */
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%x\n",
- (unsigned int) -ret );
- return( ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%x\n",
+ (unsigned int) -ret);
+ return ret;
}
#endif /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */
- return( 0 );
+ return 0;
}
-void rng_free( rng_context_t *rng )
+void rng_free(rng_context_t *rng)
{
#if defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG)
(void) rng;
/* Deinitialize the PSA crypto subsystem. This deactivates all PSA APIs.
* This is ok because none of our applications try to do any crypto after
* deinitializing the RNG. */
- mbedtls_psa_crypto_free( );
+ mbedtls_psa_crypto_free();
#else /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */
#if defined(MBEDTLS_CTR_DRBG_C)
- mbedtls_ctr_drbg_free( &rng->drbg );
+ mbedtls_ctr_drbg_free(&rng->drbg);
#elif defined(MBEDTLS_HMAC_DRBG_C)
- mbedtls_hmac_drbg_free( &rng->drbg );
+ mbedtls_hmac_drbg_free(&rng->drbg);
#else
#error "No DRBG available"
#endif
- mbedtls_entropy_free( &rng->entropy );
+ mbedtls_entropy_free(&rng->entropy);
#endif /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */
}
-int rng_get( void *p_rng, unsigned char *output, size_t output_len )
+int rng_get(void *p_rng, unsigned char *output, size_t output_len)
{
#if defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG)
(void) p_rng;
- return( mbedtls_psa_get_random( MBEDTLS_PSA_RANDOM_STATE,
- output, output_len ) );
+ return mbedtls_psa_get_random(MBEDTLS_PSA_RANDOM_STATE,
+ output, output_len);
#else /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */
rng_context_t *rng = p_rng;
#if defined(MBEDTLS_CTR_DRBG_C)
- return( mbedtls_ctr_drbg_random( &rng->drbg, output, output_len ) );
+ return mbedtls_ctr_drbg_random(&rng->drbg, output, output_len);
#elif defined(MBEDTLS_HMAC_DRBG_C)
- return( mbedtls_hmac_drbg_random( &rng->drbg, output, output_len ) );
+ return mbedtls_hmac_drbg_random(&rng->drbg, output, output_len);
#else
#error "No DRBG available"
#endif
@@ -193,116 +192,93 @@
#endif /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */
}
-int key_opaque_alg_parse( const char *arg, const char **alg1, const char **alg2 )
+int key_opaque_alg_parse(const char *arg, const char **alg1, const char **alg2)
{
- char* separator;
- if( ( separator = strchr( arg, ',' ) ) == NULL )
+ char *separator;
+ if ((separator = strchr(arg, ',')) == NULL) {
return 1;
+ }
*separator = '\0';
*alg1 = arg;
*alg2 = separator + 1;
- if( strcmp( *alg1, "rsa-sign-pkcs1" ) != 0 &&
- strcmp( *alg1, "rsa-sign-pss" ) != 0 &&
- strcmp( *alg1, "rsa-sign-pss-sha256" ) != 0 &&
- strcmp( *alg1, "rsa-sign-pss-sha384" ) != 0 &&
- strcmp( *alg1, "rsa-sign-pss-sha512" ) != 0 &&
- strcmp( *alg1, "rsa-decrypt" ) != 0 &&
- strcmp( *alg1, "ecdsa-sign" ) != 0 &&
- strcmp( *alg1, "ecdh" ) != 0 )
+ if (strcmp(*alg1, "rsa-sign-pkcs1") != 0 &&
+ strcmp(*alg1, "rsa-sign-pss") != 0 &&
+ strcmp(*alg1, "rsa-sign-pss-sha256") != 0 &&
+ strcmp(*alg1, "rsa-sign-pss-sha384") != 0 &&
+ strcmp(*alg1, "rsa-sign-pss-sha512") != 0 &&
+ strcmp(*alg1, "rsa-decrypt") != 0 &&
+ strcmp(*alg1, "ecdsa-sign") != 0 &&
+ strcmp(*alg1, "ecdh") != 0) {
return 1;
+ }
- if( strcmp( *alg2, "rsa-sign-pkcs1" ) != 0 &&
- strcmp( *alg2, "rsa-sign-pss" ) != 0 &&
- strcmp( *alg1, "rsa-sign-pss-sha256" ) != 0 &&
- strcmp( *alg1, "rsa-sign-pss-sha384" ) != 0 &&
- strcmp( *alg1, "rsa-sign-pss-sha512" ) != 0 &&
- strcmp( *alg2, "rsa-decrypt" ) != 0 &&
- strcmp( *alg2, "ecdsa-sign" ) != 0 &&
- strcmp( *alg2, "ecdh" ) != 0 &&
- strcmp( *alg2, "none" ) != 0 )
+ if (strcmp(*alg2, "rsa-sign-pkcs1") != 0 &&
+ strcmp(*alg2, "rsa-sign-pss") != 0 &&
+ strcmp(*alg1, "rsa-sign-pss-sha256") != 0 &&
+ strcmp(*alg1, "rsa-sign-pss-sha384") != 0 &&
+ strcmp(*alg1, "rsa-sign-pss-sha512") != 0 &&
+ strcmp(*alg2, "rsa-decrypt") != 0 &&
+ strcmp(*alg2, "ecdsa-sign") != 0 &&
+ strcmp(*alg2, "ecdh") != 0 &&
+ strcmp(*alg2, "none") != 0) {
return 1;
+ }
return 0;
}
#if defined(MBEDTLS_USE_PSA_CRYPTO)
-int key_opaque_set_alg_usage( const char *alg1, const char *alg2,
- psa_algorithm_t *psa_alg1,
- psa_algorithm_t *psa_alg2,
- psa_key_usage_t *usage,
- mbedtls_pk_type_t key_type )
+int key_opaque_set_alg_usage(const char *alg1, const char *alg2,
+ psa_algorithm_t *psa_alg1,
+ psa_algorithm_t *psa_alg2,
+ psa_key_usage_t *usage,
+ mbedtls_pk_type_t key_type)
{
- if( strcmp( alg1, "none" ) != 0 )
- {
- const char * algs[] = { alg1, alg2 };
+ if (strcmp(alg1, "none") != 0) {
+ const char *algs[] = { alg1, alg2 };
psa_algorithm_t *psa_algs[] = { psa_alg1, psa_alg2 };
- for ( int i = 0; i < 2; i++ )
- {
- if( strcmp( algs[i], "rsa-sign-pkcs1" ) == 0 )
- {
- *psa_algs[i] = PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_ANY_HASH );
+ for (int i = 0; i < 2; i++) {
+ if (strcmp(algs[i], "rsa-sign-pkcs1") == 0) {
+ *psa_algs[i] = PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH);
*usage |= PSA_KEY_USAGE_SIGN_HASH;
- }
- else if( strcmp( algs[i], "rsa-sign-pss" ) == 0 )
- {
- *psa_algs[i] = PSA_ALG_RSA_PSS( PSA_ALG_ANY_HASH );
+ } else if (strcmp(algs[i], "rsa-sign-pss") == 0) {
+ *psa_algs[i] = PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH);
*usage |= PSA_KEY_USAGE_SIGN_HASH;
- }
- else if( strcmp( algs[i], "rsa-sign-pss-sha256" ) == 0 )
- {
- *psa_algs[i] = PSA_ALG_RSA_PSS( PSA_ALG_SHA_256 );
+ } else if (strcmp(algs[i], "rsa-sign-pss-sha256") == 0) {
+ *psa_algs[i] = PSA_ALG_RSA_PSS(PSA_ALG_SHA_256);
*usage |= PSA_KEY_USAGE_SIGN_HASH;
- }
- else if( strcmp( algs[i], "rsa-sign-pss-sha384" ) == 0 )
- {
- *psa_algs[i] = PSA_ALG_RSA_PSS( PSA_ALG_SHA_384 );
+ } else if (strcmp(algs[i], "rsa-sign-pss-sha384") == 0) {
+ *psa_algs[i] = PSA_ALG_RSA_PSS(PSA_ALG_SHA_384);
*usage |= PSA_KEY_USAGE_SIGN_HASH;
- }
- else if( strcmp( algs[i], "rsa-sign-pss-sha512" ) == 0 )
- {
- *psa_algs[i] = PSA_ALG_RSA_PSS( PSA_ALG_SHA_512 );
+ } else if (strcmp(algs[i], "rsa-sign-pss-sha512") == 0) {
+ *psa_algs[i] = PSA_ALG_RSA_PSS(PSA_ALG_SHA_512);
*usage |= PSA_KEY_USAGE_SIGN_HASH;
- }
- else if( strcmp( algs[i], "rsa-decrypt" ) == 0 )
- {
+ } else if (strcmp(algs[i], "rsa-decrypt") == 0) {
*psa_algs[i] = PSA_ALG_RSA_PKCS1V15_CRYPT;
*usage |= PSA_KEY_USAGE_DECRYPT;
- }
- else if( strcmp( algs[i], "ecdsa-sign" ) == 0 )
- {
- *psa_algs[i] = PSA_ALG_ECDSA( PSA_ALG_ANY_HASH );
+ } else if (strcmp(algs[i], "ecdsa-sign") == 0) {
+ *psa_algs[i] = PSA_ALG_ECDSA(PSA_ALG_ANY_HASH);
*usage |= PSA_KEY_USAGE_SIGN_HASH;
- }
- else if( strcmp( algs[i], "ecdh" ) == 0 )
- {
+ } else if (strcmp(algs[i], "ecdh") == 0) {
*psa_algs[i] = PSA_ALG_ECDH;
*usage |= PSA_KEY_USAGE_DERIVE;
- }
- else if( strcmp( algs[i], "none" ) == 0 )
- {
+ } else if (strcmp(algs[i], "none") == 0) {
*psa_algs[i] = PSA_ALG_NONE;
}
}
- }
- else
- {
- if( key_type == MBEDTLS_PK_ECKEY )
- {
- *psa_alg1 = PSA_ALG_ECDSA( PSA_ALG_ANY_HASH );
+ } else {
+ if (key_type == MBEDTLS_PK_ECKEY) {
+ *psa_alg1 = PSA_ALG_ECDSA(PSA_ALG_ANY_HASH);
*psa_alg2 = PSA_ALG_ECDH;
*usage = PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_DERIVE;
- }
- else if( key_type == MBEDTLS_PK_RSA )
- {
- *psa_alg1 = PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_ANY_HASH );
- *psa_alg2 = PSA_ALG_RSA_PSS( PSA_ALG_ANY_HASH );
+ } else if (key_type == MBEDTLS_PK_RSA) {
+ *psa_alg1 = PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH);
+ *psa_alg2 = PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH);
*usage = PSA_KEY_USAGE_SIGN_HASH;
- }
- else
- {
+ } else {
return 1;
}
}
@@ -312,8 +288,8 @@
#endif /* MBEDTLS_USE_PSA_CRYPTO */
#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK)
-int ca_callback( void *data, mbedtls_x509_crt const *child,
- mbedtls_x509_crt **candidates )
+int ca_callback(void *data, mbedtls_x509_crt const *child,
+ mbedtls_x509_crt **candidates)
{
int ret = 0;
mbedtls_x509_crt *ca = (mbedtls_x509_crt *) data;
@@ -329,25 +305,21 @@
* and parent `Subject` field or matching key identifiers. */
((void) child);
- first = mbedtls_calloc( 1, sizeof( mbedtls_x509_crt ) );
- if( first == NULL )
- {
+ first = mbedtls_calloc(1, sizeof(mbedtls_x509_crt));
+ if (first == NULL) {
ret = -1;
goto exit;
}
- mbedtls_x509_crt_init( first );
+ mbedtls_x509_crt_init(first);
- if( mbedtls_x509_crt_parse_der( first, ca->raw.p, ca->raw.len ) != 0 )
- {
+ if (mbedtls_x509_crt_parse_der(first, ca->raw.p, ca->raw.len) != 0) {
ret = -1;
goto exit;
}
- while( ca->next != NULL )
- {
+ while (ca->next != NULL) {
ca = ca->next;
- if( mbedtls_x509_crt_parse_der( first, ca->raw.p, ca->raw.len ) != 0 )
- {
+ if (mbedtls_x509_crt_parse_der(first, ca->raw.p, ca->raw.len) != 0) {
ret = -1;
goto exit;
}
@@ -355,122 +327,123 @@
exit:
- if( ret != 0 )
- {
- mbedtls_x509_crt_free( first );
- mbedtls_free( first );
+ if (ret != 0) {
+ mbedtls_x509_crt_free(first);
+ mbedtls_free(first);
first = NULL;
}
*candidates = first;
- return( ret );
+ return ret;
}
#endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */
-int delayed_recv( void *ctx, unsigned char *buf, size_t len )
+int delayed_recv(void *ctx, unsigned char *buf, size_t len)
{
static int first_try = 1;
int ret;
- if( first_try )
- {
+ if (first_try) {
first_try = 0;
- return( MBEDTLS_ERR_SSL_WANT_READ );
+ return MBEDTLS_ERR_SSL_WANT_READ;
}
- ret = mbedtls_net_recv( ctx, buf, len );
- if( ret != MBEDTLS_ERR_SSL_WANT_READ )
+ ret = mbedtls_net_recv(ctx, buf, len);
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ) {
first_try = 1; /* Next call will be a new operation */
- return( ret );
+ }
+ return ret;
}
-int delayed_send( void *ctx, const unsigned char *buf, size_t len )
+int delayed_send(void *ctx, const unsigned char *buf, size_t len)
{
static int first_try = 1;
int ret;
- if( first_try )
- {
+ if (first_try) {
first_try = 0;
- return( MBEDTLS_ERR_SSL_WANT_WRITE );
+ return MBEDTLS_ERR_SSL_WANT_WRITE;
}
- ret = mbedtls_net_send( ctx, buf, len );
- if( ret != MBEDTLS_ERR_SSL_WANT_WRITE )
+ ret = mbedtls_net_send(ctx, buf, len);
+ if (ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
first_try = 1; /* Next call will be a new operation */
- return( ret );
+ }
+ return ret;
}
#if !defined(MBEDTLS_TIMING_C)
-int idle( mbedtls_net_context *fd,
- int idle_reason )
+int idle(mbedtls_net_context *fd,
+ int idle_reason)
#else
-int idle( mbedtls_net_context *fd,
- mbedtls_timing_delay_context *timer,
- int idle_reason )
+int idle(mbedtls_net_context *fd,
+ mbedtls_timing_delay_context *timer,
+ int idle_reason)
#endif
{
int ret;
int poll_type = 0;
- if( idle_reason == MBEDTLS_ERR_SSL_WANT_WRITE )
+ if (idle_reason == MBEDTLS_ERR_SSL_WANT_WRITE) {
poll_type = MBEDTLS_NET_POLL_WRITE;
- else if( idle_reason == MBEDTLS_ERR_SSL_WANT_READ )
+ } else if (idle_reason == MBEDTLS_ERR_SSL_WANT_READ) {
poll_type = MBEDTLS_NET_POLL_READ;
+ }
#if !defined(MBEDTLS_TIMING_C)
- else
- return( 0 );
+ else {
+ return 0;
+ }
#endif
- while( 1 )
- {
+ while (1) {
/* Check if timer has expired */
#if defined(MBEDTLS_TIMING_C)
- if( timer != NULL &&
- mbedtls_timing_get_delay( timer ) == 2 )
- {
+ if (timer != NULL &&
+ mbedtls_timing_get_delay(timer) == 2) {
break;
}
#endif /* MBEDTLS_TIMING_C */
/* Check if underlying transport became available */
- if( poll_type != 0 )
- {
- ret = mbedtls_net_poll( fd, poll_type, 0 );
- if( ret < 0 )
- return( ret );
- if( ret == poll_type )
+ if (poll_type != 0) {
+ ret = mbedtls_net_poll(fd, poll_type, 0);
+ if (ret < 0) {
+ return ret;
+ }
+ if (ret == poll_type) {
break;
+ }
}
}
- return( 0 );
+ return 0;
}
#if defined(MBEDTLS_TEST_HOOKS)
-void test_hooks_init( void )
+void test_hooks_init(void)
{
- mbedtls_test_info_reset( );
+ mbedtls_test_info_reset();
#if defined(MBEDTLS_TEST_MUTEX_USAGE)
- mbedtls_test_mutex_usage_init( );
+ mbedtls_test_mutex_usage_init();
#endif
}
-int test_hooks_failure_detected( void )
+int test_hooks_failure_detected(void)
{
#if defined(MBEDTLS_TEST_MUTEX_USAGE)
/* Errors are reported via mbedtls_test_info. */
- mbedtls_test_mutex_usage_check( );
+ mbedtls_test_mutex_usage_check();
#endif
- if( mbedtls_test_info.result != MBEDTLS_TEST_RESULT_SUCCESS )
- return( 1 );
- return( 0 );
+ if (mbedtls_test_info.result != MBEDTLS_TEST_RESULT_SUCCESS) {
+ return 1;
+ }
+ return 0;
}
-void test_hooks_free( void )
+void test_hooks_free(void)
{
}
diff --git a/programs/ssl/ssl_test_lib.h b/programs/ssl/ssl_test_lib.h
index 659b3ab..64f557d 100644
--- a/programs/ssl/ssl_test_lib.h
+++ b/programs/ssl/ssl_test_lib.h
@@ -26,13 +26,13 @@
#undef HAVE_RNG
#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) && \
- ( defined(MBEDTLS_USE_PSA_CRYPTO) || \
- defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG) )
+ (defined(MBEDTLS_USE_PSA_CRYPTO) || \
+ defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG))
#define HAVE_RNG
#elif defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_CTR_DRBG_C)
#define HAVE_RNG
#elif defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_HMAC_DRBG_C) && \
- ( defined(MBEDTLS_SHA256_C) || defined(MBEDTLS_SHA512_C) )
+ (defined(MBEDTLS_SHA256_C) || defined(MBEDTLS_SHA512_C))
#define HAVE_RNG
#endif
@@ -79,14 +79,13 @@
#include "../test/query_config.h"
-typedef struct eap_tls_keys
-{
+typedef struct eap_tls_keys {
unsigned char master_secret[48];
unsigned char randbytes[64];
mbedtls_tls_prf_types tls_prf_type;
} eap_tls_keys;
-#if defined( MBEDTLS_SSL_DTLS_SRTP )
+#if defined(MBEDTLS_SSL_DTLS_SRTP)
/* Supported SRTP mode needs a maximum of :
* - 16 bytes for key (AES-128)
@@ -95,8 +94,7 @@
*/
#define MBEDTLS_TLS_SRTP_MAX_KEY_MATERIAL_LENGTH 60
-typedef struct dtls_srtp_keys
-{
+typedef struct dtls_srtp_keys {
unsigned char master_secret[48];
unsigned char randbytes[64];
mbedtls_tls_prf_types tls_prf_type;
@@ -104,18 +102,17 @@
#endif /* MBEDTLS_SSL_DTLS_SRTP */
-typedef struct
-{
+typedef struct {
mbedtls_ssl_context *ssl;
mbedtls_net_context *net;
} io_ctx_t;
-void my_debug( void *ctx, int level,
- const char *file, int line,
- const char *str );
+void my_debug(void *ctx, int level,
+ const char *file, int line,
+ const char *str);
#if defined(MBEDTLS_HAVE_TIME)
-mbedtls_time_t dummy_constant_time( mbedtls_time_t* time );
+mbedtls_time_t dummy_constant_time(mbedtls_time_t *time);
#endif
#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG)
@@ -145,8 +142,7 @@
/** A context for random number generation (RNG).
*/
-typedef struct
-{
+typedef struct {
#if defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG)
unsigned char dummy;
#else /* MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */
@@ -166,7 +162,7 @@
* This function only initializes the memory used by the RNG context.
* Before using the RNG, it must be seeded with rng_seed().
*/
-void rng_init( rng_context_t *rng );
+void rng_init(rng_context_t *rng);
/* Seed the random number generator.
*
@@ -182,14 +178,14 @@
*
* return 0 on success, a negative value on error.
*/
-int rng_seed( rng_context_t *rng, int reproducible, const char *pers );
+int rng_seed(rng_context_t *rng, int reproducible, const char *pers);
/** Deinitialize the RNG. Free any embedded resource.
*
* \param rng The RNG context to deinitialize. It must have been
* initialized with rng_init().
*/
-void rng_free( rng_context_t *rng );
+void rng_free(rng_context_t *rng);
/** Generate random data.
*
@@ -204,7 +200,7 @@
* \return \c 0 on success.
* \return An Mbed TLS error code on error.
*/
-int rng_get( void *p_rng, unsigned char *output, size_t output_len );
+int rng_get(void *p_rng, unsigned char *output, size_t output_len);
/** Parse command-line option: key_opaque_algs
*
@@ -223,7 +219,7 @@
* \return \c 0 on success.
* \return \c 1 on parse failure.
*/
-int key_opaque_alg_parse( const char *arg, const char **alg1, const char **alg2 );
+int key_opaque_alg_parse(const char *arg, const char **alg1, const char **alg2);
#if defined(MBEDTLS_USE_PSA_CRYPTO)
/** Parse given opaque key algorithms to obtain psa algs and usage
@@ -241,11 +237,11 @@
* \return \c 0 on success.
* \return \c 1 on parse failure.
*/
-int key_opaque_set_alg_usage( const char *alg1, const char *alg2,
- psa_algorithm_t *psa_alg1,
- psa_algorithm_t *psa_alg2,
- psa_key_usage_t *usage,
- mbedtls_pk_type_t key_type );
+int key_opaque_set_alg_usage(const char *alg1, const char *alg2,
+ psa_algorithm_t *psa_alg1,
+ psa_algorithm_t *psa_alg2,
+ psa_key_usage_t *usage,
+ mbedtls_pk_type_t key_type);
#endif /* MBEDTLS_USE_PSA_CRYPTO */
#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
@@ -257,31 +253,31 @@
#endif
#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK)
-int ca_callback( void *data, mbedtls_x509_crt const *child,
- mbedtls_x509_crt **candidates );
+int ca_callback(void *data, mbedtls_x509_crt const *child,
+ mbedtls_x509_crt **candidates);
#endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */
/*
* Test recv/send functions that make sure each try returns
* WANT_READ/WANT_WRITE at least once before succeeding
*/
-int delayed_recv( void *ctx, unsigned char *buf, size_t len );
-int delayed_send( void *ctx, const unsigned char *buf, size_t len );
+int delayed_recv(void *ctx, unsigned char *buf, size_t len);
+int delayed_send(void *ctx, const unsigned char *buf, size_t len);
/*
* Wait for an event from the underlying transport or the timer
* (Used in event-driven IO mode).
*/
-int idle( mbedtls_net_context *fd,
+int idle(mbedtls_net_context *fd,
#if defined(MBEDTLS_TIMING_C)
- mbedtls_timing_delay_context *timer,
+ mbedtls_timing_delay_context *timer,
#endif
- int idle_reason );
+ int idle_reason);
#if defined(MBEDTLS_TEST_HOOKS)
/** Initialize whatever test hooks are enabled by the compile-time
* configuration and make sense for the TLS test programs. */
-void test_hooks_init( void );
+void test_hooks_init(void);
/** Check if any test hooks detected a problem.
*
@@ -299,14 +295,14 @@
* \return Nonzero if a problem was detected.
* \c 0 if no problem was detected.
*/
-int test_hooks_failure_detected( void );
+int test_hooks_failure_detected(void);
/** Free any resources allocated for the sake of test hooks.
*
* Call this at the end of the program so that resource leak analyzers
* don't complain.
*/
-void test_hooks_free( void );
+void test_hooks_free(void);
#endif /* !MBEDTLS_TEST_HOOKS */
diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c
index 1ad2034..180a74d 100644
--- a/programs/test/benchmark.c
+++ b/programs/test/benchmark.c
@@ -24,10 +24,10 @@
#include "mbedtls/platform.h"
#if !defined(MBEDTLS_HAVE_TIME)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_HAVE_TIME not defined.\n");
- mbedtls_exit( 0 );
+ mbedtls_exit(0);
}
#else
diff --git a/programs/test/cmake_package/cmake_package.c b/programs/test/cmake_package/cmake_package.c
index 4105d2b..86e1077 100644
--- a/programs/test/cmake_package/cmake_package.c
+++ b/programs/test/cmake_package/cmake_package.c
@@ -31,9 +31,9 @@
/* This version string is 18 bytes long, as advised by version.h. */
char version[18];
- mbedtls_version_get_string_full( version );
+ mbedtls_version_get_string_full(version);
- mbedtls_printf( "Built against %s\n", version );
+ mbedtls_printf("Built against %s\n", version);
- return( 0 );
+ return 0;
}
diff --git a/programs/test/cmake_package_install/cmake_package_install.c b/programs/test/cmake_package_install/cmake_package_install.c
index 48fb559..9aa4c3b 100644
--- a/programs/test/cmake_package_install/cmake_package_install.c
+++ b/programs/test/cmake_package_install/cmake_package_install.c
@@ -32,9 +32,9 @@
/* This version string is 18 bytes long, as advised by version.h. */
char version[18];
- mbedtls_version_get_string_full( version );
+ mbedtls_version_get_string_full(version);
- mbedtls_printf( "Built against %s\n", version );
+ mbedtls_printf("Built against %s\n", version);
- return( 0 );
+ return 0;
}
diff --git a/programs/test/cmake_subproject/cmake_subproject.c b/programs/test/cmake_subproject/cmake_subproject.c
index b1d005c..d56b9a9 100644
--- a/programs/test/cmake_subproject/cmake_subproject.c
+++ b/programs/test/cmake_subproject/cmake_subproject.c
@@ -32,9 +32,9 @@
/* This version string is 18 bytes long, as advised by version.h. */
char version[18];
- mbedtls_version_get_string_full( version );
+ mbedtls_version_get_string_full(version);
- mbedtls_printf( "Built against %s\n", version );
+ mbedtls_printf("Built against %s\n", version);
- return( 0 );
+ return 0;
}
diff --git a/programs/test/dlopen.c b/programs/test/dlopen.c
index ff61fcd..2dcda3b 100644
--- a/programs/test/dlopen.c
+++ b/programs/test/dlopen.c
@@ -37,67 +37,68 @@
#include <dlfcn.h>
-#define CHECK_DLERROR( function, argument ) \
+#define CHECK_DLERROR(function, argument) \
do \
{ \
- char *CHECK_DLERROR_error = dlerror ( ); \
- if( CHECK_DLERROR_error != NULL ) \
+ char *CHECK_DLERROR_error = dlerror(); \
+ if (CHECK_DLERROR_error != NULL) \
{ \
- fprintf( stderr, "Dynamic loading error for %s(%s): %s\n", \
- function, argument, CHECK_DLERROR_error ); \
- mbedtls_exit( MBEDTLS_EXIT_FAILURE ); \
+ fprintf(stderr, "Dynamic loading error for %s(%s): %s\n", \
+ function, argument, CHECK_DLERROR_error); \
+ mbedtls_exit(MBEDTLS_EXIT_FAILURE); \
} \
} \
- while( 0 )
+ while (0)
-int main( void )
+int main(void)
{
#if defined(MBEDTLS_MD_C) || defined(MBEDTLS_SSL_TLS_C)
unsigned n;
#endif
#if defined(MBEDTLS_SSL_TLS_C)
- void *tls_so = dlopen( TLS_SO_FILENAME, RTLD_NOW );
- CHECK_DLERROR( "dlopen", TLS_SO_FILENAME );
- const int *( *ssl_list_ciphersuites )( void ) =
- dlsym( tls_so, "mbedtls_ssl_list_ciphersuites" );
- CHECK_DLERROR( "dlsym", "mbedtls_ssl_list_ciphersuites" );
- const int *ciphersuites = ssl_list_ciphersuites( );
- for( n = 0; ciphersuites[n] != 0; n++ )
- /* nothing to do, we're just counting */;
- mbedtls_printf( "dlopen(%s): %u ciphersuites\n",
- TLS_SO_FILENAME, n );
- dlclose( tls_so );
- CHECK_DLERROR( "dlclose", TLS_SO_FILENAME );
+ void *tls_so = dlopen(TLS_SO_FILENAME, RTLD_NOW);
+ CHECK_DLERROR("dlopen", TLS_SO_FILENAME);
+ const int *(*ssl_list_ciphersuites)(void) =
+ dlsym(tls_so, "mbedtls_ssl_list_ciphersuites");
+ CHECK_DLERROR("dlsym", "mbedtls_ssl_list_ciphersuites");
+ const int *ciphersuites = ssl_list_ciphersuites();
+ for (n = 0; ciphersuites[n] != 0; n++) {/* nothing to do, we're just counting */
+ ;
+ }
+ mbedtls_printf("dlopen(%s): %u ciphersuites\n",
+ TLS_SO_FILENAME, n);
+ dlclose(tls_so);
+ CHECK_DLERROR("dlclose", TLS_SO_FILENAME);
#endif /* MBEDTLS_SSL_TLS_C */
#if defined(MBEDTLS_X509_CRT_PARSE_C)
- void *x509_so = dlopen( X509_SO_FILENAME, RTLD_NOW );
- CHECK_DLERROR( "dlopen", X509_SO_FILENAME );
+ void *x509_so = dlopen(X509_SO_FILENAME, RTLD_NOW);
+ CHECK_DLERROR("dlopen", X509_SO_FILENAME);
const mbedtls_x509_crt_profile *profile =
- dlsym( x509_so, "mbedtls_x509_crt_profile_default" );
- CHECK_DLERROR( "dlsym", "mbedtls_x509_crt_profile_default" );
- mbedtls_printf( "dlopen(%s): Allowed md mask: %08x\n",
- X509_SO_FILENAME, (unsigned) profile->allowed_mds );
- dlclose( x509_so );
- CHECK_DLERROR( "dlclose", X509_SO_FILENAME );
+ dlsym(x509_so, "mbedtls_x509_crt_profile_default");
+ CHECK_DLERROR("dlsym", "mbedtls_x509_crt_profile_default");
+ mbedtls_printf("dlopen(%s): Allowed md mask: %08x\n",
+ X509_SO_FILENAME, (unsigned) profile->allowed_mds);
+ dlclose(x509_so);
+ CHECK_DLERROR("dlclose", X509_SO_FILENAME);
#endif /* MBEDTLS_X509_CRT_PARSE_C */
#if defined(MBEDTLS_MD_C)
- void *crypto_so = dlopen( CRYPTO_SO_FILENAME, RTLD_NOW );
- CHECK_DLERROR( "dlopen", CRYPTO_SO_FILENAME );
- const int *( *md_list )( void ) =
- dlsym( crypto_so, "mbedtls_md_list" );
- CHECK_DLERROR( "dlsym", "mbedtls_md_list" );
- const int *mds = md_list( );
- for( n = 0; mds[n] != 0; n++ )
- /* nothing to do, we're just counting */;
- mbedtls_printf( "dlopen(%s): %u hashes\n",
- CRYPTO_SO_FILENAME, n );
- dlclose( crypto_so );
- CHECK_DLERROR( "dlclose", CRYPTO_SO_FILENAME );
+ void *crypto_so = dlopen(CRYPTO_SO_FILENAME, RTLD_NOW);
+ CHECK_DLERROR("dlopen", CRYPTO_SO_FILENAME);
+ const int *(*md_list)(void) =
+ dlsym(crypto_so, "mbedtls_md_list");
+ CHECK_DLERROR("dlsym", "mbedtls_md_list");
+ const int *mds = md_list();
+ for (n = 0; mds[n] != 0; n++) {/* nothing to do, we're just counting */
+ ;
+ }
+ mbedtls_printf("dlopen(%s): %u hashes\n",
+ CRYPTO_SO_FILENAME, n);
+ dlclose(crypto_so);
+ CHECK_DLERROR("dlclose", CRYPTO_SO_FILENAME);
#endif /* MBEDTLS_MD_C */
- return( 0 );
+ return 0;
}
-
diff --git a/programs/test/query_compile_time_config.c b/programs/test/query_compile_time_config.c
index f37973c..8f763fa 100644
--- a/programs/test/query_compile_time_config.c
+++ b/programs/test/query_compile_time_config.c
@@ -36,47 +36,43 @@
#include <string.h>
#include "query_config.h"
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int i;
- if ( argc == 1 || strcmp( argv[1], "-h" ) == 0 )
- {
- mbedtls_printf( USAGE, argv[0] );
- return( MBEDTLS_EXIT_FAILURE );
+ if (argc == 1 || strcmp(argv[1], "-h") == 0) {
+ mbedtls_printf(USAGE, argv[0]);
+ return MBEDTLS_EXIT_FAILURE;
}
- if( strcmp( argv[1], "-l" ) == 0 )
- {
+ if (strcmp(argv[1], "-l") == 0) {
list_config();
- return( 0 );
+ return 0;
}
- if( strcmp( argv[1], "-all" ) == 0 )
- {
- for( i = 2; i < argc; i++ )
- {
- if( query_config( argv[i] ) != 0 )
- return( 1 );
+ if (strcmp(argv[1], "-all") == 0) {
+ for (i = 2; i < argc; i++) {
+ if (query_config(argv[i]) != 0) {
+ return 1;
+ }
}
- return( 0 );
+ return 0;
}
- if( strcmp( argv[1], "-any" ) == 0 )
- {
- for( i = 2; i < argc; i++ )
- {
- if( query_config( argv[i] ) == 0 )
- return( 0 );
+ if (strcmp(argv[1], "-any") == 0) {
+ for (i = 2; i < argc; i++) {
+ if (query_config(argv[i]) == 0) {
+ return 0;
+ }
}
- return( 1 );
+ return 1;
}
- for( i = 1; i < argc; i++ )
- {
- if( query_config( argv[i] ) != 0 )
- return( 1 );
+ for (i = 1; i < argc; i++) {
+ if (query_config(argv[i]) != 0) {
+ return 1;
+ }
}
- return( 0 );
+ return 0;
}
diff --git a/programs/test/query_config.h b/programs/test/query_config.h
index 290100f..ade73d0 100644
--- a/programs/test/query_config.h
+++ b/programs/test/query_config.h
@@ -33,7 +33,7 @@
* which is automatically generated by
* `scripts/generate_query_config.pl`.
*/
-int query_config( const char *config );
+int query_config(const char *config);
/** List all enabled configuration symbols
*
@@ -41,6 +41,6 @@
* which is automatically generated by
* `scripts/generate_query_config.pl`.
*/
-void list_config( void );
+void list_config(void);
#endif /* MBEDTLS_PROGRAMS_TEST_QUERY_CONFIG_H */
diff --git a/programs/test/selftest.c b/programs/test/selftest.c
index b4701cb..b4d7008 100644
--- a/programs/test/selftest.c
+++ b/programs/test/selftest.c
@@ -65,106 +65,101 @@
/* Sanity check for malloc. This is not expected to fail, and is rather
* intended to display potentially useful information about the platform,
* in particular the behavior of malloc(0). */
-static int calloc_self_test( int verbose )
+static int calloc_self_test(int verbose)
{
int failures = 0;
- void *empty1 = mbedtls_calloc( 0, 1 );
- void *empty2 = mbedtls_calloc( 0, 1 );
- void *buffer1 = mbedtls_calloc( 1, 1 );
- void *buffer2 = mbedtls_calloc( 1, 1 );
+ void *empty1 = mbedtls_calloc(0, 1);
+ void *empty2 = mbedtls_calloc(0, 1);
+ void *buffer1 = mbedtls_calloc(1, 1);
+ void *buffer2 = mbedtls_calloc(1, 1);
- if( empty1 == NULL && empty2 == NULL )
- {
- if( verbose )
- mbedtls_printf( " CALLOC(0): passed (NULL)\n" );
- }
- else if( empty1 == NULL || empty2 == NULL )
- {
- if( verbose )
- mbedtls_printf( " CALLOC(0): failed (mix of NULL and non-NULL)\n" );
+ if (empty1 == NULL && empty2 == NULL) {
+ if (verbose) {
+ mbedtls_printf(" CALLOC(0): passed (NULL)\n");
+ }
+ } else if (empty1 == NULL || empty2 == NULL) {
+ if (verbose) {
+ mbedtls_printf(" CALLOC(0): failed (mix of NULL and non-NULL)\n");
+ }
++failures;
- }
- else if( empty1 == empty2 )
- {
- if( verbose )
- mbedtls_printf( " CALLOC(0): passed (same non-null)\n" );
- }
- else
- {
- if( verbose )
- mbedtls_printf( " CALLOC(0): passed (distinct non-null)\n" );
+ } else if (empty1 == empty2) {
+ if (verbose) {
+ mbedtls_printf(" CALLOC(0): passed (same non-null)\n");
+ }
+ } else {
+ if (verbose) {
+ mbedtls_printf(" CALLOC(0): passed (distinct non-null)\n");
+ }
}
- if( buffer1 == NULL || buffer2 == NULL )
- {
- if( verbose )
- mbedtls_printf( " CALLOC(1): failed (NULL)\n" );
+ if (buffer1 == NULL || buffer2 == NULL) {
+ if (verbose) {
+ mbedtls_printf(" CALLOC(1): failed (NULL)\n");
+ }
++failures;
- }
- else if( buffer1 == buffer2 )
- {
- if( verbose )
- mbedtls_printf( " CALLOC(1): failed (same buffer twice)\n" );
+ } else if (buffer1 == buffer2) {
+ if (verbose) {
+ mbedtls_printf(" CALLOC(1): failed (same buffer twice)\n");
+ }
++failures;
- }
- else
- {
- if( verbose )
- mbedtls_printf( " CALLOC(1): passed\n" );
+ } else {
+ if (verbose) {
+ mbedtls_printf(" CALLOC(1): passed\n");
+ }
}
- mbedtls_free( buffer1 );
- buffer1 = mbedtls_calloc( 1, 1 );
- if( buffer1 == NULL )
- {
- if( verbose )
- mbedtls_printf( " CALLOC(1 again): failed (NULL)\n" );
+ mbedtls_free(buffer1);
+ buffer1 = mbedtls_calloc(1, 1);
+ if (buffer1 == NULL) {
+ if (verbose) {
+ mbedtls_printf(" CALLOC(1 again): failed (NULL)\n");
+ }
++failures;
- }
- else
- {
- if( verbose )
- mbedtls_printf( " CALLOC(1 again): passed\n" );
+ } else {
+ if (verbose) {
+ mbedtls_printf(" CALLOC(1 again): passed\n");
+ }
}
- if( verbose )
- mbedtls_printf( "\n" );
- mbedtls_free( empty1 );
- mbedtls_free( empty2 );
- mbedtls_free( buffer1 );
- mbedtls_free( buffer2 );
- return( failures );
+ if (verbose) {
+ mbedtls_printf("\n");
+ }
+ mbedtls_free(empty1);
+ mbedtls_free(empty2);
+ mbedtls_free(buffer1);
+ mbedtls_free(buffer2);
+ return failures;
}
#endif /* MBEDTLS_SELF_TEST */
-static int test_snprintf( size_t n, const char *ref_buf, int ref_ret )
+static int test_snprintf(size_t n, const char *ref_buf, int ref_ret)
{
int ret;
char buf[10] = "xxxxxxxxx";
const char ref[10] = "xxxxxxxxx";
- ret = mbedtls_snprintf( buf, n, "%s", "123" );
- if( ret < 0 || (size_t) ret >= n )
+ ret = mbedtls_snprintf(buf, n, "%s", "123");
+ if (ret < 0 || (size_t) ret >= n) {
ret = -1;
-
- if( strncmp( ref_buf, buf, sizeof( buf ) ) != 0 ||
- ref_ret != ret ||
- memcmp( buf + n, ref + n, sizeof( buf ) - n ) != 0 )
- {
- return( 1 );
}
- return( 0 );
+ if (strncmp(ref_buf, buf, sizeof(buf)) != 0 ||
+ ref_ret != ret ||
+ memcmp(buf + n, ref + n, sizeof(buf) - n) != 0) {
+ return 1;
+ }
+
+ return 0;
}
-static int run_test_snprintf( void )
+static int run_test_snprintf(void)
{
- return( test_snprintf( 0, "xxxxxxxxx", -1 ) != 0 ||
- test_snprintf( 1, "", -1 ) != 0 ||
- test_snprintf( 2, "1", -1 ) != 0 ||
- test_snprintf( 3, "12", -1 ) != 0 ||
- test_snprintf( 4, "123", 3 ) != 0 ||
- test_snprintf( 5, "123", 3 ) != 0 );
+ return test_snprintf(0, "xxxxxxxxx", -1) != 0 ||
+ test_snprintf(1, "", -1) != 0 ||
+ test_snprintf(2, "1", -1) != 0 ||
+ test_snprintf(3, "12", -1) != 0 ||
+ test_snprintf(4, "123", 3) != 0 ||
+ test_snprintf(5, "123", 3) != 0;
}
/*
@@ -174,7 +169,7 @@
*/
#if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_ENTROPY_C)
#if defined(MBEDTLS_ENTROPY_NV_SEED) && !defined(MBEDTLS_NO_PLATFORM_ENTROPY)
-static void create_entropy_seed_file( void )
+static void create_entropy_seed_file(void)
{
int result;
size_t output_len = 0;
@@ -182,151 +177,152 @@
/* Attempt to read the entropy seed file. If this fails - attempt to write
* to the file to ensure one is present. */
- result = mbedtls_platform_std_nv_seed_read( seed_value,
- MBEDTLS_ENTROPY_BLOCK_SIZE );
- if( 0 == result )
+ result = mbedtls_platform_std_nv_seed_read(seed_value,
+ MBEDTLS_ENTROPY_BLOCK_SIZE);
+ if (0 == result) {
return;
+ }
- result = mbedtls_platform_entropy_poll( NULL,
- seed_value,
- MBEDTLS_ENTROPY_BLOCK_SIZE,
- &output_len );
- if( 0 != result )
+ result = mbedtls_platform_entropy_poll(NULL,
+ seed_value,
+ MBEDTLS_ENTROPY_BLOCK_SIZE,
+ &output_len);
+ if (0 != result) {
return;
+ }
- if( MBEDTLS_ENTROPY_BLOCK_SIZE != output_len )
+ if (MBEDTLS_ENTROPY_BLOCK_SIZE != output_len) {
return;
+ }
- mbedtls_platform_std_nv_seed_write( seed_value, MBEDTLS_ENTROPY_BLOCK_SIZE );
+ mbedtls_platform_std_nv_seed_write(seed_value, MBEDTLS_ENTROPY_BLOCK_SIZE);
}
#endif
-int mbedtls_entropy_self_test_wrapper( int verbose )
+int mbedtls_entropy_self_test_wrapper(int verbose)
{
#if defined(MBEDTLS_ENTROPY_NV_SEED) && !defined(MBEDTLS_NO_PLATFORM_ENTROPY)
- create_entropy_seed_file( );
+ create_entropy_seed_file();
#endif
- return( mbedtls_entropy_self_test( verbose ) );
+ return mbedtls_entropy_self_test(verbose);
}
#endif
#if defined(MBEDTLS_SELF_TEST)
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
-int mbedtls_memory_buffer_alloc_free_and_self_test( int verbose )
+int mbedtls_memory_buffer_alloc_free_and_self_test(int verbose)
{
- if( verbose != 0 )
- {
+ if (verbose != 0) {
#if defined(MBEDTLS_MEMORY_DEBUG)
- mbedtls_memory_buffer_alloc_status( );
+ mbedtls_memory_buffer_alloc_status();
#endif
}
- mbedtls_memory_buffer_alloc_free( );
- return( mbedtls_memory_buffer_alloc_self_test( verbose ) );
+ mbedtls_memory_buffer_alloc_free();
+ return mbedtls_memory_buffer_alloc_self_test(verbose);
}
#endif
-typedef struct
-{
+typedef struct {
const char *name;
- int ( *function )( int );
+ int (*function)(int);
} selftest_t;
const selftest_t selftests[] =
{
- {"calloc", calloc_self_test},
+ { "calloc", calloc_self_test },
#if defined(MBEDTLS_MD5_C)
- {"md5", mbedtls_md5_self_test},
+ { "md5", mbedtls_md5_self_test },
#endif
#if defined(MBEDTLS_RIPEMD160_C)
- {"ripemd160", mbedtls_ripemd160_self_test},
+ { "ripemd160", mbedtls_ripemd160_self_test },
#endif
#if defined(MBEDTLS_SHA1_C)
- {"sha1", mbedtls_sha1_self_test},
+ { "sha1", mbedtls_sha1_self_test },
#endif
#if defined(MBEDTLS_SHA224_C)
- {"sha224", mbedtls_sha224_self_test},
+ { "sha224", mbedtls_sha224_self_test },
#endif
#if defined(MBEDTLS_SHA256_C)
- {"sha256", mbedtls_sha256_self_test},
+ { "sha256", mbedtls_sha256_self_test },
#endif
#if defined(MBEDTLS_SHA384_C)
- {"sha384", mbedtls_sha384_self_test},
+ { "sha384", mbedtls_sha384_self_test },
#endif
#if defined(MBEDTLS_SHA512_C)
- {"sha512", mbedtls_sha512_self_test},
+ { "sha512", mbedtls_sha512_self_test },
#endif
#if defined(MBEDTLS_DES_C)
- {"des", mbedtls_des_self_test},
+ { "des", mbedtls_des_self_test },
#endif
#if defined(MBEDTLS_AES_C)
- {"aes", mbedtls_aes_self_test},
+ { "aes", mbedtls_aes_self_test },
#endif
#if defined(MBEDTLS_GCM_C) && defined(MBEDTLS_AES_C)
- {"gcm", mbedtls_gcm_self_test},
+ { "gcm", mbedtls_gcm_self_test },
#endif
#if defined(MBEDTLS_CCM_C) && defined(MBEDTLS_AES_C)
- {"ccm", mbedtls_ccm_self_test},
+ { "ccm", mbedtls_ccm_self_test },
#endif
#if defined(MBEDTLS_NIST_KW_C) && defined(MBEDTLS_AES_C)
- {"nist_kw", mbedtls_nist_kw_self_test},
+ { "nist_kw", mbedtls_nist_kw_self_test },
#endif
#if defined(MBEDTLS_CMAC_C)
- {"cmac", mbedtls_cmac_self_test},
+ { "cmac", mbedtls_cmac_self_test },
#endif
#if defined(MBEDTLS_CHACHA20_C)
- {"chacha20", mbedtls_chacha20_self_test},
+ { "chacha20", mbedtls_chacha20_self_test },
#endif
#if defined(MBEDTLS_POLY1305_C)
- {"poly1305", mbedtls_poly1305_self_test},
+ { "poly1305", mbedtls_poly1305_self_test },
#endif
#if defined(MBEDTLS_CHACHAPOLY_C)
- {"chacha20-poly1305", mbedtls_chachapoly_self_test},
+ { "chacha20-poly1305", mbedtls_chachapoly_self_test },
#endif
#if defined(MBEDTLS_BASE64_C)
- {"base64", mbedtls_base64_self_test},
+ { "base64", mbedtls_base64_self_test },
#endif
#if defined(MBEDTLS_BIGNUM_C)
- {"mpi", mbedtls_mpi_self_test},
+ { "mpi", mbedtls_mpi_self_test },
#endif
#if defined(MBEDTLS_RSA_C)
- {"rsa", mbedtls_rsa_self_test},
+ { "rsa", mbedtls_rsa_self_test },
#endif
#if defined(MBEDTLS_CAMELLIA_C)
- {"camellia", mbedtls_camellia_self_test},
+ { "camellia", mbedtls_camellia_self_test },
#endif
#if defined(MBEDTLS_ARIA_C)
- {"aria", mbedtls_aria_self_test},
+ { "aria", mbedtls_aria_self_test },
#endif
#if defined(MBEDTLS_CTR_DRBG_C)
- {"ctr_drbg", mbedtls_ctr_drbg_self_test},
+ { "ctr_drbg", mbedtls_ctr_drbg_self_test },
#endif
#if defined(MBEDTLS_HMAC_DRBG_C)
- {"hmac_drbg", mbedtls_hmac_drbg_self_test},
+ { "hmac_drbg", mbedtls_hmac_drbg_self_test },
#endif
#if defined(MBEDTLS_ECP_C)
- {"ecp", mbedtls_ecp_self_test},
+ { "ecp", mbedtls_ecp_self_test },
#endif
#if defined(MBEDTLS_ECJPAKE_C)
- {"ecjpake", mbedtls_ecjpake_self_test},
+ { "ecjpake", mbedtls_ecjpake_self_test },
#endif
#if defined(MBEDTLS_DHM_C)
- {"dhm", mbedtls_dhm_self_test},
+ { "dhm", mbedtls_dhm_self_test },
#endif
#if defined(MBEDTLS_ENTROPY_C)
- {"entropy", mbedtls_entropy_self_test_wrapper},
+ { "entropy", mbedtls_entropy_self_test_wrapper },
#endif
#if defined(MBEDTLS_PKCS5_C)
- {"pkcs5", mbedtls_pkcs5_self_test},
+ { "pkcs5", mbedtls_pkcs5_self_test },
#endif
/* Heap test comes last */
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
- {"memory_buffer_alloc", mbedtls_memory_buffer_alloc_free_and_self_test},
+ { "memory_buffer_alloc", mbedtls_memory_buffer_alloc_free_and_self_test },
#endif
- {NULL, NULL}
+ { NULL, NULL }
};
#endif /* MBEDTLS_SELF_TEST */
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
#if defined(MBEDTLS_SELF_TEST)
const selftest_t *test;
@@ -345,11 +341,10 @@
* of a NULL pointer. We do however use that in our code for initializing
* structures, which should work on every modern platform. Let's be sure.
*/
- memset( &pointer, 0, sizeof( void * ) );
- if( pointer != NULL )
- {
- mbedtls_printf( "all-bits-zero is not a NULL pointer\n" );
- mbedtls_exit( MBEDTLS_EXIT_FAILURE );
+ memset(&pointer, 0, sizeof(void *));
+ if (pointer != NULL) {
+ mbedtls_printf("all-bits-zero is not a NULL pointer\n");
+ mbedtls_exit(MBEDTLS_EXIT_FAILURE);
}
/*
@@ -374,52 +369,52 @@
#define CHECK_PADDING_SIGNED(TYPE, NAME) \
do \
{ \
- if( sizeof( TYPE ) == 2 || sizeof( TYPE ) == 4 || \
- sizeof( TYPE ) == 8 ) { \
- if( ( sizeof( TYPE ) == 2 && \
- (int16_t) NAME ## _MAX != 0x7FFF ) || \
- ( sizeof( TYPE ) == 4 && \
- (int32_t) NAME ## _MAX != 0x7FFFFFFF ) || \
- ( sizeof( TYPE ) == 8 && \
- (int64_t) NAME ## _MAX != 0x7FFFFFFFFFFFFFFF ) ) \
+ if (sizeof(TYPE) == 2 || sizeof(TYPE) == 4 || \
+ sizeof(TYPE) == 8) { \
+ if ((sizeof(TYPE) == 2 && \
+ (int16_t) NAME ## _MAX != 0x7FFF) || \
+ (sizeof(TYPE) == 4 && \
+ (int32_t) NAME ## _MAX != 0x7FFFFFFF) || \
+ (sizeof(TYPE) == 8 && \
+ (int64_t) NAME ## _MAX != 0x7FFFFFFFFFFFFFFF)) \
{ \
- mbedtls_printf( "Type '" #TYPE "' has padding bits\n" );\
- mbedtls_exit( MBEDTLS_EXIT_FAILURE ); \
+ mbedtls_printf("Type '" #TYPE "' has padding bits\n"); \
+ mbedtls_exit(MBEDTLS_EXIT_FAILURE); \
} \
} else { \
- mbedtls_printf( "Padding checks only implemented for types of size 2, 4 or 8" \
- " - cannot check type '" #TYPE "' of size %" MBEDTLS_PRINTF_SIZET "\n", \
- sizeof( TYPE ) ); \
- mbedtls_exit( MBEDTLS_EXIT_FAILURE ); \
+ mbedtls_printf("Padding checks only implemented for types of size 2, 4 or 8" \
+ " - cannot check type '" #TYPE "' of size %" MBEDTLS_PRINTF_SIZET "\n", \
+ sizeof(TYPE)); \
+ mbedtls_exit(MBEDTLS_EXIT_FAILURE); \
} \
- } while( 0 )
+ } while (0)
#define CHECK_PADDING_UNSIGNED(TYPE, NAME) \
do \
{ \
- if( ( sizeof( TYPE ) == 2 && \
- (uint16_t) NAME ## _MAX != 0xFFFF ) || \
- ( sizeof( TYPE ) == 4 && \
- (uint32_t) NAME ## _MAX != 0xFFFFFFFF ) || \
- ( sizeof( TYPE ) == 8 && \
- (uint64_t) NAME ## _MAX != 0xFFFFFFFFFFFFFFFF ) ) \
+ if ((sizeof(TYPE) == 2 && \
+ (uint16_t) NAME ## _MAX != 0xFFFF) || \
+ (sizeof(TYPE) == 4 && \
+ (uint32_t) NAME ## _MAX != 0xFFFFFFFF) || \
+ (sizeof(TYPE) == 8 && \
+ (uint64_t) NAME ## _MAX != 0xFFFFFFFFFFFFFFFF)) \
{ \
- mbedtls_printf( "Type '" #TYPE "' has padding bits\n" ); \
- mbedtls_exit( MBEDTLS_EXIT_FAILURE ); \
+ mbedtls_printf("Type '" #TYPE "' has padding bits\n"); \
+ mbedtls_exit(MBEDTLS_EXIT_FAILURE); \
} \
- } while( 0 )
+ } while (0)
- CHECK_PADDING_SIGNED( short, SHRT );
- CHECK_PADDING_SIGNED( int, INT );
- CHECK_PADDING_SIGNED( long, LONG );
- CHECK_PADDING_SIGNED( long long, LLONG );
- CHECK_PADDING_SIGNED( ptrdiff_t, PTRDIFF );
+ CHECK_PADDING_SIGNED(short, SHRT);
+ CHECK_PADDING_SIGNED(int, INT);
+ CHECK_PADDING_SIGNED(long, LONG);
+ CHECK_PADDING_SIGNED(long long, LLONG);
+ CHECK_PADDING_SIGNED(ptrdiff_t, PTRDIFF);
- CHECK_PADDING_UNSIGNED( unsigned short, USHRT );
- CHECK_PADDING_UNSIGNED( unsigned, UINT );
- CHECK_PADDING_UNSIGNED( unsigned long, ULONG );
- CHECK_PADDING_UNSIGNED( unsigned long long, ULLONG );
- CHECK_PADDING_UNSIGNED( size_t, SIZE );
+ CHECK_PADDING_UNSIGNED(unsigned short, USHRT);
+ CHECK_PADDING_UNSIGNED(unsigned, UINT);
+ CHECK_PADDING_UNSIGNED(unsigned long, ULONG);
+ CHECK_PADDING_UNSIGNED(unsigned long long, ULLONG);
+ CHECK_PADDING_UNSIGNED(size_t, SIZE);
#undef CHECK_PADDING_SIGNED
#undef CHECK_PADDING_UNSIGNED
@@ -427,83 +422,68 @@
/*
* Make sure we have a snprintf that correctly zero-terminates
*/
- if( run_test_snprintf() != 0 )
- {
- mbedtls_printf( "the snprintf implementation is broken\n" );
- mbedtls_exit( MBEDTLS_EXIT_FAILURE );
+ if (run_test_snprintf() != 0) {
+ mbedtls_printf("the snprintf implementation is broken\n");
+ mbedtls_exit(MBEDTLS_EXIT_FAILURE);
}
- for( argp = argv + ( argc >= 1 ? 1 : argc ); *argp != NULL; ++argp )
- {
- if( strcmp( *argp, "--quiet" ) == 0 ||
- strcmp( *argp, "-q" ) == 0 )
- {
+ for (argp = argv + (argc >= 1 ? 1 : argc); *argp != NULL; ++argp) {
+ if (strcmp(*argp, "--quiet") == 0 ||
+ strcmp(*argp, "-q") == 0) {
v = 0;
- }
- else if( strcmp( *argp, "--exclude" ) == 0 ||
- strcmp( *argp, "-x" ) == 0 )
- {
+ } else if (strcmp(*argp, "--exclude") == 0 ||
+ strcmp(*argp, "-x") == 0) {
exclude_mode = 1;
- }
- else
+ } else {
break;
+ }
}
- if( v != 0 )
- mbedtls_printf( "\n" );
+ if (v != 0) {
+ mbedtls_printf("\n");
+ }
#if defined(MBEDTLS_SELF_TEST)
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
- mbedtls_memory_buffer_alloc_init( buf, sizeof(buf) );
+ mbedtls_memory_buffer_alloc_init(buf, sizeof(buf));
#endif
- if( *argp != NULL && exclude_mode == 0 )
- {
+ if (*argp != NULL && exclude_mode == 0) {
/* Run the specified tests */
- for( ; *argp != NULL; argp++ )
- {
- for( test = selftests; test->name != NULL; test++ )
- {
- if( !strcmp( *argp, test->name ) )
- {
- if( test->function( v ) != 0 )
- {
+ for (; *argp != NULL; argp++) {
+ for (test = selftests; test->name != NULL; test++) {
+ if (!strcmp(*argp, test->name)) {
+ if (test->function(v) != 0) {
suites_failed++;
}
suites_tested++;
break;
}
}
- if( test->name == NULL )
- {
- mbedtls_printf( " Test suite %s not available -> failed\n\n", *argp );
+ if (test->name == NULL) {
+ mbedtls_printf(" Test suite %s not available -> failed\n\n", *argp);
suites_failed++;
}
}
- }
- else
- {
+ } else {
/* Run all the tests except excluded ones */
- for( test = selftests; test->name != NULL; test++ )
- {
- if( exclude_mode )
- {
+ for (test = selftests; test->name != NULL; test++) {
+ if (exclude_mode) {
char **excluded;
- for( excluded = argp; *excluded != NULL; ++excluded )
- {
- if( !strcmp( *excluded, test->name ) )
+ for (excluded = argp; *excluded != NULL; ++excluded) {
+ if (!strcmp(*excluded, test->name)) {
break;
+ }
}
- if( *excluded )
- {
- if( v )
- mbedtls_printf( " Skip: %s\n", test->name );
+ if (*excluded) {
+ if (v) {
+ mbedtls_printf(" Skip: %s\n", test->name);
+ }
continue;
}
}
- if( test->function( v ) != 0 )
- {
+ if (test->function(v) != 0) {
suites_failed++;
}
suites_tested++;
@@ -512,25 +492,22 @@
#else
(void) exclude_mode;
- mbedtls_printf( " MBEDTLS_SELF_TEST not defined.\n" );
+ mbedtls_printf(" MBEDTLS_SELF_TEST not defined.\n");
#endif
- if( v != 0 )
- {
- mbedtls_printf( " Executed %d test suites\n\n", suites_tested );
+ if (v != 0) {
+ mbedtls_printf(" Executed %d test suites\n\n", suites_tested);
- if( suites_failed > 0)
- {
- mbedtls_printf( " [ %d tests FAIL ]\n\n", suites_failed );
- }
- else
- {
- mbedtls_printf( " [ All tests PASS ]\n\n" );
+ if (suites_failed > 0) {
+ mbedtls_printf(" [ %d tests FAIL ]\n\n", suites_failed);
+ } else {
+ mbedtls_printf(" [ All tests PASS ]\n\n");
}
}
- if( suites_failed > 0)
- mbedtls_exit( MBEDTLS_EXIT_FAILURE );
+ if (suites_failed > 0) {
+ mbedtls_exit(MBEDTLS_EXIT_FAILURE);
+ }
- mbedtls_exit( MBEDTLS_EXIT_SUCCESS );
+ mbedtls_exit(MBEDTLS_EXIT_SUCCESS);
}
diff --git a/programs/test/udp_proxy.c b/programs/test/udp_proxy.c
index ccd1303..ac527f2 100644
--- a/programs/test/udp_proxy.c
+++ b/programs/test/udp_proxy.c
@@ -46,10 +46,10 @@
#endif /* MBEDTLS_PLATFORM_C */
#if !defined(MBEDTLS_NET_C)
-int main( void )
+int main(void)
{
- mbedtls_printf( "MBEDTLS_NET_C not defined.\n" );
- mbedtls_exit( 0 );
+ mbedtls_printf("MBEDTLS_NET_C not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -110,20 +110,20 @@
" delay=%%d default: 0 (no delayed packets)\n" \
" delay about 1:N packets randomly\n" \
" delay_ccs=0/1 default: 0 (don't delay ChangeCipherSpec)\n" \
- " delay_cli=%%s Handshake message from client that should be\n"\
+ " delay_cli=%%s Handshake message from client that should be\n" \
" delayed. Possible values are 'ClientHello',\n" \
" 'Certificate', 'CertificateVerify', and\n" \
" 'ClientKeyExchange'.\n" \
- " May be used multiple times, even for the same\n"\
- " message, in which case the respective message\n"\
+ " May be used multiple times, even for the same\n" \
+ " message, in which case the respective message\n" \
" gets delayed multiple times.\n" \
- " delay_srv=%%s Handshake message from server that should be\n"\
- " delayed. Possible values are 'HelloRequest',\n"\
- " 'ServerHello', 'ServerHelloDone', 'Certificate'\n"\
- " 'ServerKeyExchange', 'NewSessionTicket',\n"\
- " 'HelloVerifyRequest' and ''CertificateRequest'.\n"\
- " May be used multiple times, even for the same\n"\
- " message, in which case the respective message\n"\
+ " delay_srv=%%s Handshake message from server that should be\n" \
+ " delayed. Possible values are 'HelloRequest',\n" \
+ " 'ServerHello', 'ServerHelloDone', 'Certificate'\n" \
+ " 'ServerKeyExchange', 'NewSessionTicket',\n" \
+ " 'HelloVerifyRequest' and ''CertificateRequest'.\n" \
+ " May be used multiple times, even for the same\n" \
+ " message, in which case the respective message\n" \
" gets delayed multiple times.\n" \
" drop=%%d default: 0 (no dropped packets)\n" \
" drop about 1:N packets randomly\n" \
@@ -147,8 +147,7 @@
#define MAX_DELAYED_HS 10
-static struct options
-{
+static struct options {
const char *server_addr; /* address to forward packets to */
const char *server_port; /* port to forward packets to */
const char *listen_addr; /* address for accepting client connections */
@@ -157,10 +156,10 @@
int duplicate; /* duplicate 1 in N packets (none if 0) */
int delay; /* delay 1 packet in N (none if 0) */
int delay_ccs; /* delay ChangeCipherSpec */
- char* delay_cli[MAX_DELAYED_HS]; /* handshake types of messages from
+ char *delay_cli[MAX_DELAYED_HS]; /* handshake types of messages from
* client that should be delayed. */
uint8_t delay_cli_cnt; /* Number of entries in delay_cli. */
- char* delay_srv[MAX_DELAYED_HS]; /* handshake types of messages from
+ char *delay_srv[MAX_DELAYED_HS]; /* handshake types of messages from
* server that should be delayed. */
uint8_t delay_srv_cnt; /* Number of entries in delay_srv. */
int drop; /* drop 1 packet in N (none if 0) */
@@ -175,18 +174,19 @@
unsigned int seed; /* seed for "random" events */
} opt;
-static void exit_usage( const char *name, const char *value )
+static void exit_usage(const char *name, const char *value)
{
- if( value == NULL )
- mbedtls_printf( " unknown option or missing value: %s\n", name );
- else
- mbedtls_printf( " option %s: illegal value: %s\n", name, value );
+ if (value == NULL) {
+ mbedtls_printf(" unknown option or missing value: %s\n", name);
+ } else {
+ mbedtls_printf(" option %s: illegal value: %s\n", name, value);
+ }
- mbedtls_printf( USAGE );
- mbedtls_exit( 1 );
+ mbedtls_printf(USAGE);
+ mbedtls_exit(1);
}
-static void get_options( int argc, char *argv[] )
+static void get_options(int argc, char *argv[])
{
int i;
char *p, *q;
@@ -200,200 +200,184 @@
opt.delay_cli_cnt = 0;
opt.delay_srv_cnt = 0;
- memset( opt.delay_cli, 0, sizeof( opt.delay_cli ) );
- memset( opt.delay_srv, 0, sizeof( opt.delay_srv ) );
+ memset(opt.delay_cli, 0, sizeof(opt.delay_cli));
+ memset(opt.delay_srv, 0, sizeof(opt.delay_srv));
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
- exit_usage( p, NULL );
+ if ((q = strchr(p, '=')) == NULL) {
+ exit_usage(p, NULL);
+ }
*q++ = '\0';
- if( strcmp( p, "server_addr" ) == 0 )
+ if (strcmp(p, "server_addr") == 0) {
opt.server_addr = q;
- else if( strcmp( p, "server_port" ) == 0 )
+ } else if (strcmp(p, "server_port") == 0) {
opt.server_port = q;
- else if( strcmp( p, "listen_addr" ) == 0 )
+ } else if (strcmp(p, "listen_addr") == 0) {
opt.listen_addr = q;
- else if( strcmp( p, "listen_port" ) == 0 )
+ } else if (strcmp(p, "listen_port") == 0) {
opt.listen_port = q;
- else if( strcmp( p, "duplicate" ) == 0 )
- {
- opt.duplicate = atoi( q );
- if( opt.duplicate < 0 || opt.duplicate > 20 )
- exit_usage( p, q );
- }
- else if( strcmp( p, "delay" ) == 0 )
- {
- opt.delay = atoi( q );
- if( opt.delay < 0 || opt.delay > 20 || opt.delay == 1 )
- exit_usage( p, q );
- }
- else if( strcmp( p, "delay_ccs" ) == 0 )
- {
- opt.delay_ccs = atoi( q );
- if( opt.delay_ccs < 0 || opt.delay_ccs > 1 )
- exit_usage( p, q );
- }
- else if( strcmp( p, "delay_cli" ) == 0 ||
- strcmp( p, "delay_srv" ) == 0 )
- {
+ } else if (strcmp(p, "duplicate") == 0) {
+ opt.duplicate = atoi(q);
+ if (opt.duplicate < 0 || opt.duplicate > 20) {
+ exit_usage(p, q);
+ }
+ } else if (strcmp(p, "delay") == 0) {
+ opt.delay = atoi(q);
+ if (opt.delay < 0 || opt.delay > 20 || opt.delay == 1) {
+ exit_usage(p, q);
+ }
+ } else if (strcmp(p, "delay_ccs") == 0) {
+ opt.delay_ccs = atoi(q);
+ if (opt.delay_ccs < 0 || opt.delay_ccs > 1) {
+ exit_usage(p, q);
+ }
+ } else if (strcmp(p, "delay_cli") == 0 ||
+ strcmp(p, "delay_srv") == 0) {
uint8_t *delay_cnt;
char **delay_list;
size_t len;
char *buf;
- if( strcmp( p, "delay_cli" ) == 0 )
- {
+ if (strcmp(p, "delay_cli") == 0) {
delay_cnt = &opt.delay_cli_cnt;
delay_list = opt.delay_cli;
- }
- else
- {
+ } else {
delay_cnt = &opt.delay_srv_cnt;
delay_list = opt.delay_srv;
}
- if( *delay_cnt == MAX_DELAYED_HS )
- {
- mbedtls_printf( " too many uses of %s: only %d allowed\n",
- p, MAX_DELAYED_HS );
- exit_usage( p, NULL );
+ if (*delay_cnt == MAX_DELAYED_HS) {
+ mbedtls_printf(" too many uses of %s: only %d allowed\n",
+ p, MAX_DELAYED_HS);
+ exit_usage(p, NULL);
}
- len = strlen( q );
- buf = mbedtls_calloc( 1, len + 1 );
- if( buf == NULL )
- {
- mbedtls_printf( " Allocation failure\n" );
- exit( 1 );
+ len = strlen(q);
+ buf = mbedtls_calloc(1, len + 1);
+ if (buf == NULL) {
+ mbedtls_printf(" Allocation failure\n");
+ exit(1);
}
- memcpy( buf, q, len + 1 );
+ memcpy(buf, q, len + 1);
- delay_list[ (*delay_cnt)++ ] = buf;
- }
- else if( strcmp( p, "drop" ) == 0 )
- {
- opt.drop = atoi( q );
- if( opt.drop < 0 || opt.drop > 20 || opt.drop == 1 )
- exit_usage( p, q );
- }
- else if( strcmp( p, "pack" ) == 0 )
- {
+ delay_list[(*delay_cnt)++] = buf;
+ } else if (strcmp(p, "drop") == 0) {
+ opt.drop = atoi(q);
+ if (opt.drop < 0 || opt.drop > 20 || opt.drop == 1) {
+ exit_usage(p, q);
+ }
+ } else if (strcmp(p, "pack") == 0) {
#if defined(MBEDTLS_TIMING_C)
- opt.pack = (unsigned) atoi( q );
+ opt.pack = (unsigned) atoi(q);
#else
- mbedtls_printf( " option pack only defined if MBEDTLS_TIMING_C is enabled\n" );
- exit( 1 );
+ mbedtls_printf(" option pack only defined if MBEDTLS_TIMING_C is enabled\n");
+ exit(1);
#endif
- }
- else if( strcmp( p, "mtu" ) == 0 )
- {
- opt.mtu = atoi( q );
- if( opt.mtu < 0 || opt.mtu > MAX_MSG_SIZE )
- exit_usage( p, q );
- }
- else if( strcmp( p, "bad_ad" ) == 0 )
- {
- opt.bad_ad = atoi( q );
- if( opt.bad_ad < 0 || opt.bad_ad > 1 )
- exit_usage( p, q );
+ } else if (strcmp(p, "mtu") == 0) {
+ opt.mtu = atoi(q);
+ if (opt.mtu < 0 || opt.mtu > MAX_MSG_SIZE) {
+ exit_usage(p, q);
+ }
+ } else if (strcmp(p, "bad_ad") == 0) {
+ opt.bad_ad = atoi(q);
+ if (opt.bad_ad < 0 || opt.bad_ad > 1) {
+ exit_usage(p, q);
+ }
}
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
- else if( strcmp( p, "bad_cid" ) == 0 )
- {
- opt.bad_cid = (unsigned) atoi( q );
+ else if (strcmp(p, "bad_cid") == 0) {
+ opt.bad_cid = (unsigned) atoi(q);
}
#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
- else if( strcmp( p, "protect_hvr" ) == 0 )
- {
- opt.protect_hvr = atoi( q );
- if( opt.protect_hvr < 0 || opt.protect_hvr > 1 )
- exit_usage( p, q );
+ else if (strcmp(p, "protect_hvr") == 0) {
+ opt.protect_hvr = atoi(q);
+ if (opt.protect_hvr < 0 || opt.protect_hvr > 1) {
+ exit_usage(p, q);
+ }
+ } else if (strcmp(p, "protect_len") == 0) {
+ opt.protect_len = atoi(q);
+ if (opt.protect_len < 0) {
+ exit_usage(p, q);
+ }
+ } else if (strcmp(p, "inject_clihlo") == 0) {
+ opt.inject_clihlo = atoi(q);
+ if (opt.inject_clihlo < 0 || opt.inject_clihlo > 1) {
+ exit_usage(p, q);
+ }
+ } else if (strcmp(p, "seed") == 0) {
+ opt.seed = atoi(q);
+ if (opt.seed == 0) {
+ exit_usage(p, q);
+ }
+ } else {
+ exit_usage(p, NULL);
}
- else if( strcmp( p, "protect_len" ) == 0 )
- {
- opt.protect_len = atoi( q );
- if( opt.protect_len < 0 )
- exit_usage( p, q );
- }
- else if( strcmp( p, "inject_clihlo" ) == 0 )
- {
- opt.inject_clihlo = atoi( q );
- if( opt.inject_clihlo < 0 || opt.inject_clihlo > 1 )
- exit_usage( p, q );
- }
- else if( strcmp( p, "seed" ) == 0 )
- {
- opt.seed = atoi( q );
- if( opt.seed == 0 )
- exit_usage( p, q );
- }
- else
- exit_usage( p, NULL );
}
}
-static const char *msg_type( unsigned char *msg, size_t len )
+static const char *msg_type(unsigned char *msg, size_t len)
{
- if( len < 1 ) return( "Invalid" );
- switch( msg[0] )
- {
- case MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC: return( "ChangeCipherSpec" );
- case MBEDTLS_SSL_MSG_ALERT: return( "Alert" );
- case MBEDTLS_SSL_MSG_APPLICATION_DATA: return( "ApplicationData" );
- case MBEDTLS_SSL_MSG_CID: return( "CID" );
+ if (len < 1) {
+ return "Invalid";
+ }
+ switch (msg[0]) {
+ case MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC: return "ChangeCipherSpec";
+ case MBEDTLS_SSL_MSG_ALERT: return "Alert";
+ case MBEDTLS_SSL_MSG_APPLICATION_DATA: return "ApplicationData";
+ case MBEDTLS_SSL_MSG_CID: return "CID";
case MBEDTLS_SSL_MSG_HANDSHAKE: break; /* See below */
- default: return( "Unknown" );
+ default: return "Unknown";
}
- if( len < 13 + 12 ) return( "Invalid handshake" );
+ if (len < 13 + 12) {
+ return "Invalid handshake";
+ }
/*
* Our handshake message are less than 2^16 bytes long, so they should
* have 0 as the first byte of length, frag_offset and frag_length.
* Otherwise, assume they are encrypted.
*/
- if( msg[14] || msg[19] || msg[22] ) return( "Encrypted handshake" );
+ if (msg[14] || msg[19] || msg[22]) {
+ return "Encrypted handshake";
+ }
- switch( msg[13] )
- {
- case MBEDTLS_SSL_HS_HELLO_REQUEST: return( "HelloRequest" );
- case MBEDTLS_SSL_HS_CLIENT_HELLO: return( "ClientHello" );
- case MBEDTLS_SSL_HS_SERVER_HELLO: return( "ServerHello" );
- case MBEDTLS_SSL_HS_HELLO_VERIFY_REQUEST: return( "HelloVerifyRequest" );
- case MBEDTLS_SSL_HS_NEW_SESSION_TICKET: return( "NewSessionTicket" );
- case MBEDTLS_SSL_HS_CERTIFICATE: return( "Certificate" );
- case MBEDTLS_SSL_HS_SERVER_KEY_EXCHANGE: return( "ServerKeyExchange" );
- case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST: return( "CertificateRequest" );
- case MBEDTLS_SSL_HS_SERVER_HELLO_DONE: return( "ServerHelloDone" );
- case MBEDTLS_SSL_HS_CERTIFICATE_VERIFY: return( "CertificateVerify" );
- case MBEDTLS_SSL_HS_CLIENT_KEY_EXCHANGE: return( "ClientKeyExchange" );
- case MBEDTLS_SSL_HS_FINISHED: return( "Finished" );
- default: return( "Unknown handshake" );
+ switch (msg[13]) {
+ case MBEDTLS_SSL_HS_HELLO_REQUEST: return "HelloRequest";
+ case MBEDTLS_SSL_HS_CLIENT_HELLO: return "ClientHello";
+ case MBEDTLS_SSL_HS_SERVER_HELLO: return "ServerHello";
+ case MBEDTLS_SSL_HS_HELLO_VERIFY_REQUEST: return "HelloVerifyRequest";
+ case MBEDTLS_SSL_HS_NEW_SESSION_TICKET: return "NewSessionTicket";
+ case MBEDTLS_SSL_HS_CERTIFICATE: return "Certificate";
+ case MBEDTLS_SSL_HS_SERVER_KEY_EXCHANGE: return "ServerKeyExchange";
+ case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST: return "CertificateRequest";
+ case MBEDTLS_SSL_HS_SERVER_HELLO_DONE: return "ServerHelloDone";
+ case MBEDTLS_SSL_HS_CERTIFICATE_VERIFY: return "CertificateVerify";
+ case MBEDTLS_SSL_HS_CLIENT_KEY_EXCHANGE: return "ClientKeyExchange";
+ case MBEDTLS_SSL_HS_FINISHED: return "Finished";
+ default: return "Unknown handshake";
}
}
#if defined(MBEDTLS_TIMING_C)
/* Return elapsed time in milliseconds since the first call */
-static unsigned elapsed_time( void )
+static unsigned elapsed_time(void)
{
static int initialized = 0;
static struct mbedtls_timing_hr_time hires;
- if( initialized == 0 )
- {
- (void) mbedtls_timing_get_timer( &hires, 1 );
+ if (initialized == 0) {
+ (void) mbedtls_timing_get_timer(&hires, 1);
initialized = 1;
- return( 0 );
+ return 0;
}
- return( mbedtls_timing_get_timer( &hires, 0 ) );
+ return mbedtls_timing_get_timer(&hires, 0);
}
-typedef struct
-{
+typedef struct {
mbedtls_net_context *ctx;
const char *description;
@@ -408,102 +392,102 @@
static ctx_buffer outbuf[2];
-static int ctx_buffer_flush( ctx_buffer *buf )
+static int ctx_buffer_flush(ctx_buffer *buf)
{
int ret;
- mbedtls_printf( " %05u flush %s: %u bytes, %u datagrams, last %u ms\n",
- elapsed_time(), buf->description,
- (unsigned) buf->len, buf->num_datagrams,
- elapsed_time() - buf->packet_lifetime );
+ mbedtls_printf(" %05u flush %s: %u bytes, %u datagrams, last %u ms\n",
+ elapsed_time(), buf->description,
+ (unsigned) buf->len, buf->num_datagrams,
+ elapsed_time() - buf->packet_lifetime);
- ret = mbedtls_net_send( buf->ctx, buf->data, buf->len );
+ ret = mbedtls_net_send(buf->ctx, buf->data, buf->len);
buf->len = 0;
buf->num_datagrams = 0;
- return( ret );
+ return ret;
}
-static unsigned ctx_buffer_time_remaining( ctx_buffer *buf )
+static unsigned ctx_buffer_time_remaining(ctx_buffer *buf)
{
unsigned const cur_time = elapsed_time();
- if( buf->num_datagrams == 0 )
- return( (unsigned) -1 );
+ if (buf->num_datagrams == 0) {
+ return (unsigned) -1;
+ }
- if( cur_time - buf->packet_lifetime >= opt.pack )
- return( 0 );
+ if (cur_time - buf->packet_lifetime >= opt.pack) {
+ return 0;
+ }
- return( opt.pack - ( cur_time - buf->packet_lifetime ) );
+ return opt.pack - (cur_time - buf->packet_lifetime);
}
-static int ctx_buffer_append( ctx_buffer *buf,
- const unsigned char * data,
- size_t len )
+static int ctx_buffer_append(ctx_buffer *buf,
+ const unsigned char *data,
+ size_t len)
{
int ret;
- if( len > (size_t) INT_MAX )
- return( -1 );
-
- if( len > sizeof( buf->data ) )
- {
- mbedtls_printf( " ! buffer size %u too large (max %u)\n",
- (unsigned) len, (unsigned) sizeof( buf->data ) );
- return( -1 );
+ if (len > (size_t) INT_MAX) {
+ return -1;
}
- if( sizeof( buf->data ) - buf->len < len )
- {
- if( ( ret = ctx_buffer_flush( buf ) ) <= 0 )
- {
- mbedtls_printf( "ctx_buffer_flush failed with -%#04x", (unsigned int) -ret );
- return( ret );
+ if (len > sizeof(buf->data)) {
+ mbedtls_printf(" ! buffer size %u too large (max %u)\n",
+ (unsigned) len, (unsigned) sizeof(buf->data));
+ return -1;
+ }
+
+ if (sizeof(buf->data) - buf->len < len) {
+ if ((ret = ctx_buffer_flush(buf)) <= 0) {
+ mbedtls_printf("ctx_buffer_flush failed with -%#04x", (unsigned int) -ret);
+ return ret;
}
}
- memcpy( buf->data + buf->len, data, len );
+ memcpy(buf->data + buf->len, data, len);
buf->len += len;
- if( ++buf->num_datagrams == 1 )
+ if (++buf->num_datagrams == 1) {
buf->packet_lifetime = elapsed_time();
+ }
- return( (int) len );
+ return (int) len;
}
#endif /* MBEDTLS_TIMING_C */
-static int dispatch_data( mbedtls_net_context *ctx,
- const unsigned char * data,
- size_t len )
+static int dispatch_data(mbedtls_net_context *ctx,
+ const unsigned char *data,
+ size_t len)
{
int ret;
#if defined(MBEDTLS_TIMING_C)
ctx_buffer *buf = NULL;
- if( opt.pack > 0 )
- {
- if( outbuf[0].ctx == ctx )
+ if (opt.pack > 0) {
+ if (outbuf[0].ctx == ctx) {
buf = &outbuf[0];
- else if( outbuf[1].ctx == ctx )
+ } else if (outbuf[1].ctx == ctx) {
buf = &outbuf[1];
+ }
- if( buf == NULL )
- return( -1 );
+ if (buf == NULL) {
+ return -1;
+ }
- return( ctx_buffer_append( buf, data, len ) );
+ return ctx_buffer_append(buf, data, len);
}
#endif /* MBEDTLS_TIMING_C */
- ret = mbedtls_net_send( ctx, data, len );
- if( ret < 0 )
- {
- mbedtls_printf( "net_send returned -%#04x\n", (unsigned int) -ret );
+ ret = mbedtls_net_send(ctx, data, len);
+ if (ret < 0) {
+ mbedtls_printf("net_send returned -%#04x\n", (unsigned int) -ret);
}
- return( ret );
+ return ret;
}
-typedef struct
-{
+typedef struct {
mbedtls_net_context *dst;
const char *way;
const char *type;
@@ -512,25 +496,27 @@
} packet;
/* Print packet. Outgoing packets come with a reason (forward, dupl, etc.) */
-void print_packet( const packet *p, const char *why )
+void print_packet(const packet *p, const char *why)
{
#if defined(MBEDTLS_TIMING_C)
- if( why == NULL )
- mbedtls_printf( " %05u dispatch %s %s (%u bytes)\n",
- elapsed_time(), p->way, p->type, p->len );
- else
- mbedtls_printf( " %05u dispatch %s %s (%u bytes): %s\n",
- elapsed_time(), p->way, p->type, p->len, why );
+ if (why == NULL) {
+ mbedtls_printf(" %05u dispatch %s %s (%u bytes)\n",
+ elapsed_time(), p->way, p->type, p->len);
+ } else {
+ mbedtls_printf(" %05u dispatch %s %s (%u bytes): %s\n",
+ elapsed_time(), p->way, p->type, p->len, why);
+ }
#else
- if( why == NULL )
- mbedtls_printf( " dispatch %s %s (%u bytes)\n",
- p->way, p->type, p->len );
- else
- mbedtls_printf( " dispatch %s %s (%u bytes): %s\n",
- p->way, p->type, p->len, why );
+ if (why == NULL) {
+ mbedtls_printf(" dispatch %s %s (%u bytes)\n",
+ p->way, p->type, p->len);
+ } else {
+ mbedtls_printf(" dispatch %s %s (%u bytes): %s\n",
+ p->way, p->type, p->len, why);
+ }
#endif
- fflush( stdout );
+ fflush(stdout);
}
/*
@@ -554,135 +540,123 @@
static inject_clihlo_state_t inject_clihlo_state;
static packet initial_clihlo;
-int send_packet( const packet *p, const char *why )
+int send_packet(const packet *p, const char *why)
{
int ret;
mbedtls_net_context *dst = p->dst;
/* save initial ClientHello? */
- if( opt.inject_clihlo != 0 &&
+ if (opt.inject_clihlo != 0 &&
inject_clihlo_state == ICH_INIT &&
- strcmp( p->type, "ClientHello" ) == 0 )
- {
- memcpy( &initial_clihlo, p, sizeof( packet ) );
+ strcmp(p->type, "ClientHello") == 0) {
+ memcpy(&initial_clihlo, p, sizeof(packet));
inject_clihlo_state = ICH_CACHED;
}
/* insert corrupted CID record? */
- if( opt.bad_cid != 0 &&
- strcmp( p->type, "CID" ) == 0 &&
- ( rand() % opt.bad_cid ) == 0 )
- {
+ if (opt.bad_cid != 0 &&
+ strcmp(p->type, "CID") == 0 &&
+ (rand() % opt.bad_cid) == 0) {
unsigned char buf[MAX_MSG_SIZE];
- memcpy( buf, p->buf, p->len );
+ memcpy(buf, p->buf, p->len);
/* The CID resides at offset 11 in the DTLS record header. */
buf[11] ^= 1;
- print_packet( p, "modified CID" );
+ print_packet(p, "modified CID");
- if( ( ret = dispatch_data( dst, buf, p->len ) ) <= 0 )
- {
- mbedtls_printf( " ! dispatch returned %d\n", ret );
- return( ret );
+ if ((ret = dispatch_data(dst, buf, p->len)) <= 0) {
+ mbedtls_printf(" ! dispatch returned %d\n", ret);
+ return ret;
}
}
/* insert corrupted ApplicationData record? */
- if( opt.bad_ad &&
- strcmp( p->type, "ApplicationData" ) == 0 )
- {
+ if (opt.bad_ad &&
+ strcmp(p->type, "ApplicationData") == 0) {
unsigned char buf[MAX_MSG_SIZE];
- memcpy( buf, p->buf, p->len );
+ memcpy(buf, p->buf, p->len);
- if( p->len <= 13 )
- {
- mbedtls_printf( " ! can't corrupt empty AD record" );
- }
- else
- {
+ if (p->len <= 13) {
+ mbedtls_printf(" ! can't corrupt empty AD record");
+ } else {
++buf[13];
- print_packet( p, "corrupted" );
+ print_packet(p, "corrupted");
}
- if( ( ret = dispatch_data( dst, buf, p->len ) ) <= 0 )
- {
- mbedtls_printf( " ! dispatch returned %d\n", ret );
- return( ret );
+ if ((ret = dispatch_data(dst, buf, p->len)) <= 0) {
+ mbedtls_printf(" ! dispatch returned %d\n", ret);
+ return ret;
}
}
- print_packet( p, why );
- if( ( ret = dispatch_data( dst, p->buf, p->len ) ) <= 0 )
- {
- mbedtls_printf( " ! dispatch returned %d\n", ret );
- return( ret );
+ print_packet(p, why);
+ if ((ret = dispatch_data(dst, p->buf, p->len)) <= 0) {
+ mbedtls_printf(" ! dispatch returned %d\n", ret);
+ return ret;
}
/* Don't duplicate Application Data, only handshake covered */
- if( opt.duplicate != 0 &&
- strcmp( p->type, "ApplicationData" ) != 0 &&
- rand() % opt.duplicate == 0 )
- {
- print_packet( p, "duplicated" );
+ if (opt.duplicate != 0 &&
+ strcmp(p->type, "ApplicationData") != 0 &&
+ rand() % opt.duplicate == 0) {
+ print_packet(p, "duplicated");
- if( ( ret = dispatch_data( dst, p->buf, p->len ) ) <= 0 )
- {
- mbedtls_printf( " ! dispatch returned %d\n", ret );
- return( ret );
+ if ((ret = dispatch_data(dst, p->buf, p->len)) <= 0) {
+ mbedtls_printf(" ! dispatch returned %d\n", ret);
+ return ret;
}
}
/* Inject ClientHello after first ApplicationData */
- if( opt.inject_clihlo != 0 &&
+ if (opt.inject_clihlo != 0 &&
inject_clihlo_state == ICH_CACHED &&
- strcmp( p->type, "ApplicationData" ) == 0 )
- {
- print_packet( &initial_clihlo, "injected" );
+ strcmp(p->type, "ApplicationData") == 0) {
+ print_packet(&initial_clihlo, "injected");
- if( ( ret = dispatch_data( dst, initial_clihlo.buf,
- initial_clihlo.len ) ) <= 0 )
- {
- mbedtls_printf( " ! dispatch returned %d\n", ret );
- return( ret );
+ if ((ret = dispatch_data(dst, initial_clihlo.buf,
+ initial_clihlo.len)) <= 0) {
+ mbedtls_printf(" ! dispatch returned %d\n", ret);
+ return ret;
}
inject_clihlo_state = ICH_INJECTED;
}
- return( 0 );
+ return 0;
}
#define MAX_DELAYED_MSG 5
static size_t prev_len;
static packet prev[MAX_DELAYED_MSG];
-void clear_pending( void )
+void clear_pending(void)
{
- memset( &prev, 0, sizeof( prev ) );
+ memset(&prev, 0, sizeof(prev));
prev_len = 0;
}
-void delay_packet( packet *delay )
+void delay_packet(packet *delay)
{
- if( prev_len == MAX_DELAYED_MSG )
+ if (prev_len == MAX_DELAYED_MSG) {
return;
+ }
- memcpy( &prev[prev_len++], delay, sizeof( packet ) );
+ memcpy(&prev[prev_len++], delay, sizeof(packet));
}
int send_delayed()
{
uint8_t offset;
int ret;
- for( offset = 0; offset < prev_len; offset++ )
- {
- ret = send_packet( &prev[offset], "delayed" );
- if( ret != 0 )
- return( ret );
+ for (offset = 0; offset < prev_len; offset++) {
+ ret = send_packet(&prev[offset], "delayed");
+ if (ret != 0) {
+ return ret;
+ }
}
clear_pending();
- return( 0 );
+ return 0;
}
/*
@@ -702,108 +676,100 @@
static unsigned char held[2048] = { 0 };
#define HOLD_MAX 2
-int handle_message( const char *way,
- mbedtls_net_context *dst,
- mbedtls_net_context *src )
+int handle_message(const char *way,
+ mbedtls_net_context *dst,
+ mbedtls_net_context *src)
{
int ret;
packet cur;
size_t id;
uint8_t delay_idx;
- char ** delay_list;
+ char **delay_list;
uint8_t delay_list_len;
/* receive packet */
- if( ( ret = mbedtls_net_recv( src, cur.buf, sizeof( cur.buf ) ) ) <= 0 )
- {
- mbedtls_printf( " ! mbedtls_net_recv returned %d\n", ret );
- return( ret );
+ if ((ret = mbedtls_net_recv(src, cur.buf, sizeof(cur.buf))) <= 0) {
+ mbedtls_printf(" ! mbedtls_net_recv returned %d\n", ret);
+ return ret;
}
cur.len = ret;
- cur.type = msg_type( cur.buf, cur.len );
+ cur.type = msg_type(cur.buf, cur.len);
cur.way = way;
cur.dst = dst;
- print_packet( &cur, NULL );
+ print_packet(&cur, NULL);
- id = cur.len % sizeof( held );
+ id = cur.len % sizeof(held);
- if( strcmp( way, "S <- C" ) == 0 )
- {
+ if (strcmp(way, "S <- C") == 0) {
delay_list = opt.delay_cli;
delay_list_len = opt.delay_cli_cnt;
- }
- else
- {
+ } else {
delay_list = opt.delay_srv;
delay_list_len = opt.delay_srv_cnt;
}
/* Check if message type is in the list of messages
* that should be delayed */
- for( delay_idx = 0; delay_idx < delay_list_len; delay_idx++ )
- {
- if( delay_list[ delay_idx ] == NULL )
+ for (delay_idx = 0; delay_idx < delay_list_len; delay_idx++) {
+ if (delay_list[delay_idx] == NULL) {
continue;
+ }
- if( strcmp( delay_list[ delay_idx ], cur.type ) == 0 )
- {
+ if (strcmp(delay_list[delay_idx], cur.type) == 0) {
/* Delay message */
- delay_packet( &cur );
+ delay_packet(&cur);
/* Remove entry from list */
- mbedtls_free( delay_list[delay_idx] );
+ mbedtls_free(delay_list[delay_idx]);
delay_list[delay_idx] = NULL;
- return( 0 );
+ return 0;
}
}
/* do we want to drop, delay, or forward it? */
- if( ( opt.mtu != 0 &&
- cur.len > (unsigned) opt.mtu ) ||
- ( opt.drop != 0 &&
- strcmp( cur.type, "CID" ) != 0 &&
- strcmp( cur.type, "ApplicationData" ) != 0 &&
- ! ( opt.protect_hvr &&
- strcmp( cur.type, "HelloVerifyRequest" ) == 0 ) &&
- cur.len != (size_t) opt.protect_len &&
- held[id] < HOLD_MAX &&
- rand() % opt.drop == 0 ) )
- {
+ if ((opt.mtu != 0 &&
+ cur.len > (unsigned) opt.mtu) ||
+ (opt.drop != 0 &&
+ strcmp(cur.type, "CID") != 0 &&
+ strcmp(cur.type, "ApplicationData") != 0 &&
+ !(opt.protect_hvr &&
+ strcmp(cur.type, "HelloVerifyRequest") == 0) &&
+ cur.len != (size_t) opt.protect_len &&
+ held[id] < HOLD_MAX &&
+ rand() % opt.drop == 0)) {
++held[id];
- }
- else if( ( opt.delay_ccs == 1 &&
- strcmp( cur.type, "ChangeCipherSpec" ) == 0 ) ||
- ( opt.delay != 0 &&
- strcmp( cur.type, "CID" ) != 0 &&
- strcmp( cur.type, "ApplicationData" ) != 0 &&
- ! ( opt.protect_hvr &&
- strcmp( cur.type, "HelloVerifyRequest" ) == 0 ) &&
- cur.len != (size_t) opt.protect_len &&
- held[id] < HOLD_MAX &&
- rand() % opt.delay == 0 ) )
- {
+ } else if ((opt.delay_ccs == 1 &&
+ strcmp(cur.type, "ChangeCipherSpec") == 0) ||
+ (opt.delay != 0 &&
+ strcmp(cur.type, "CID") != 0 &&
+ strcmp(cur.type, "ApplicationData") != 0 &&
+ !(opt.protect_hvr &&
+ strcmp(cur.type, "HelloVerifyRequest") == 0) &&
+ cur.len != (size_t) opt.protect_len &&
+ held[id] < HOLD_MAX &&
+ rand() % opt.delay == 0)) {
++held[id];
- delay_packet( &cur );
- }
- else
- {
+ delay_packet(&cur);
+ } else {
/* forward and possibly duplicate */
- if( ( ret = send_packet( &cur, "forwarded" ) ) != 0 )
- return( ret );
+ if ((ret = send_packet(&cur, "forwarded")) != 0) {
+ return ret;
+ }
/* send previously delayed messages if any */
ret = send_delayed();
- if( ret != 0 )
- return( ret );
+ if (ret != 0) {
+ return ret;
+ }
}
- return( 0 );
+ return 0;
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -811,7 +777,7 @@
mbedtls_net_context listen_fd, client_fd, server_fd;
-#if defined( MBEDTLS_TIMING_C )
+#if defined(MBEDTLS_TIMING_C)
struct timeval tm;
#endif
@@ -820,11 +786,11 @@
int nb_fds;
fd_set read_fds;
- mbedtls_net_init( &listen_fd );
- mbedtls_net_init( &client_fd );
- mbedtls_net_init( &server_fd );
+ mbedtls_net_init(&listen_fd);
+ mbedtls_net_init(&client_fd);
+ mbedtls_net_init(&server_fd);
- get_options( argc, argv );
+ get_options(argc, argv);
/*
* Decisions to drop/delay/duplicate packets are pseudo-random: dropping
@@ -834,84 +800,81 @@
* In order to be able to reproduce problems reliably, the seed may be
* specified explicitly.
*/
- if( opt.seed == 0 )
- {
+ if (opt.seed == 0) {
#if defined(MBEDTLS_HAVE_TIME)
- opt.seed = (unsigned int) mbedtls_time( NULL );
+ opt.seed = (unsigned int) mbedtls_time(NULL);
#else
opt.seed = 1;
#endif /* MBEDTLS_HAVE_TIME */
- mbedtls_printf( " . Pseudo-random seed: %u\n", opt.seed );
+ mbedtls_printf(" . Pseudo-random seed: %u\n", opt.seed);
}
- srand( opt.seed );
+ srand(opt.seed);
/*
* 0. "Connect" to the server
*/
- mbedtls_printf( " . Connect to server on UDP/%s/%s ...",
- opt.server_addr, opt.server_port );
- fflush( stdout );
+ mbedtls_printf(" . Connect to server on UDP/%s/%s ...",
+ opt.server_addr, opt.server_port);
+ fflush(stdout);
- if( ( ret = mbedtls_net_connect( &server_fd, opt.server_addr, opt.server_port,
- MBEDTLS_NET_PROTO_UDP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_connect returned %d\n\n", ret );
+ if ((ret = mbedtls_net_connect(&server_fd, opt.server_addr, opt.server_port,
+ MBEDTLS_NET_PROTO_UDP)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_connect returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1. Setup the "listening" UDP socket
*/
- mbedtls_printf( " . Bind on UDP/%s/%s ...",
- opt.listen_addr, opt.listen_port );
- fflush( stdout );
+ mbedtls_printf(" . Bind on UDP/%s/%s ...",
+ opt.listen_addr, opt.listen_port);
+ fflush(stdout);
- if( ( ret = mbedtls_net_bind( &listen_fd, opt.listen_addr, opt.listen_port,
- MBEDTLS_NET_PROTO_UDP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_bind returned %d\n\n", ret );
+ if ((ret = mbedtls_net_bind(&listen_fd, opt.listen_addr, opt.listen_port,
+ MBEDTLS_NET_PROTO_UDP)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_bind returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 2. Wait until a client connects
*/
accept:
- mbedtls_net_free( &client_fd );
+ mbedtls_net_free(&client_fd);
- mbedtls_printf( " . Waiting for a remote connection ..." );
- fflush( stdout );
+ mbedtls_printf(" . Waiting for a remote connection ...");
+ fflush(stdout);
- if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd,
- NULL, 0, NULL ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_accept returned %d\n\n", ret );
+ if ((ret = mbedtls_net_accept(&listen_fd, &client_fd,
+ NULL, 0, NULL)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_accept returned %d\n\n", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 3. Forward packets forever (kill the process to terminate it)
*/
clear_pending();
- memset( held, 0, sizeof( held ) );
+ memset(held, 0, sizeof(held));
nb_fds = client_fd.fd;
- if( nb_fds < server_fd.fd )
+ if (nb_fds < server_fd.fd) {
nb_fds = server_fd.fd;
- if( nb_fds < listen_fd.fd )
+ }
+ if (nb_fds < listen_fd.fd) {
nb_fds = listen_fd.fd;
+ }
++nb_fds;
#if defined(MBEDTLS_TIMING_C)
- if( opt.pack > 0 )
- {
+ if (opt.pack > 0) {
outbuf[0].ctx = &server_fd;
outbuf[0].description = "S <- C";
outbuf[0].num_datagrams = 0;
@@ -924,70 +887,66 @@
}
#endif /* MBEDTLS_TIMING_C */
- while( 1 )
- {
+ while (1) {
#if defined(MBEDTLS_TIMING_C)
- if( opt.pack > 0 )
- {
+ if (opt.pack > 0) {
unsigned max_wait_server, max_wait_client, max_wait;
- max_wait_server = ctx_buffer_time_remaining( &outbuf[0] );
- max_wait_client = ctx_buffer_time_remaining( &outbuf[1] );
+ max_wait_server = ctx_buffer_time_remaining(&outbuf[0]);
+ max_wait_client = ctx_buffer_time_remaining(&outbuf[1]);
max_wait = (unsigned) -1;
- if( max_wait_server == 0 )
- ctx_buffer_flush( &outbuf[0] );
- else
+ if (max_wait_server == 0) {
+ ctx_buffer_flush(&outbuf[0]);
+ } else {
max_wait = max_wait_server;
-
- if( max_wait_client == 0 )
- ctx_buffer_flush( &outbuf[1] );
- else
- {
- if( max_wait_client < max_wait )
- max_wait = max_wait_client;
}
- if( max_wait != (unsigned) -1 )
- {
+ if (max_wait_client == 0) {
+ ctx_buffer_flush(&outbuf[1]);
+ } else {
+ if (max_wait_client < max_wait) {
+ max_wait = max_wait_client;
+ }
+ }
+
+ if (max_wait != (unsigned) -1) {
tm.tv_sec = max_wait / 1000;
- tm.tv_usec = ( max_wait % 1000 ) * 1000;
+ tm.tv_usec = (max_wait % 1000) * 1000;
tm_ptr = &tm;
- }
- else
- {
+ } else {
tm_ptr = NULL;
}
}
#endif /* MBEDTLS_TIMING_C */
- FD_ZERO( &read_fds );
- FD_SET( server_fd.fd, &read_fds );
- FD_SET( client_fd.fd, &read_fds );
- FD_SET( listen_fd.fd, &read_fds );
+ FD_ZERO(&read_fds);
+ FD_SET(server_fd.fd, &read_fds);
+ FD_SET(client_fd.fd, &read_fds);
+ FD_SET(listen_fd.fd, &read_fds);
- if( ( ret = select( nb_fds, &read_fds, NULL, NULL, tm_ptr ) ) < 0 )
- {
- perror( "select" );
+ if ((ret = select(nb_fds, &read_fds, NULL, NULL, tm_ptr)) < 0) {
+ perror("select");
goto exit;
}
- if( FD_ISSET( listen_fd.fd, &read_fds ) )
+ if (FD_ISSET(listen_fd.fd, &read_fds)) {
goto accept;
-
- if( FD_ISSET( client_fd.fd, &read_fds ) )
- {
- if( ( ret = handle_message( "S <- C",
- &server_fd, &client_fd ) ) != 0 )
- goto accept;
}
- if( FD_ISSET( server_fd.fd, &read_fds ) )
- {
- if( ( ret = handle_message( "S -> C",
- &client_fd, &server_fd ) ) != 0 )
+ if (FD_ISSET(client_fd.fd, &read_fds)) {
+ if ((ret = handle_message("S <- C",
+ &server_fd, &client_fd)) != 0) {
goto accept;
+ }
+ }
+
+ if (FD_ISSET(server_fd.fd, &read_fds)) {
+ if ((ret = handle_message("S -> C",
+ &client_fd, &server_fd)) != 0) {
+ goto accept;
+ }
}
}
@@ -997,26 +956,24 @@
exit:
#ifdef MBEDTLS_ERROR_C
- if( exit_code != MBEDTLS_EXIT_SUCCESS )
- {
+ if (exit_code != MBEDTLS_EXIT_SUCCESS) {
char error_buf[100];
- mbedtls_strerror( ret, error_buf, 100 );
- mbedtls_printf( "Last error was: -0x%04X - %s\n\n", (unsigned int) -ret, error_buf );
- fflush( stdout );
+ mbedtls_strerror(ret, error_buf, 100);
+ mbedtls_printf("Last error was: -0x%04X - %s\n\n", (unsigned int) -ret, error_buf);
+ fflush(stdout);
}
#endif
- for( delay_idx = 0; delay_idx < MAX_DELAYED_HS; delay_idx++ )
- {
- mbedtls_free( opt.delay_cli[delay_idx] );
- mbedtls_free( opt.delay_srv[delay_idx] );
+ for (delay_idx = 0; delay_idx < MAX_DELAYED_HS; delay_idx++) {
+ mbedtls_free(opt.delay_cli[delay_idx]);
+ mbedtls_free(opt.delay_srv[delay_idx]);
}
- mbedtls_net_free( &client_fd );
- mbedtls_net_free( &server_fd );
- mbedtls_net_free( &listen_fd );
+ mbedtls_net_free(&client_fd);
+ mbedtls_net_free(&server_fd);
+ mbedtls_net_free(&listen_fd);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_NET_C */
diff --git a/programs/test/zeroize.c b/programs/test/zeroize.c
index 979b551..b7842c4 100644
--- a/programs/test/zeroize.c
+++ b/programs/test/zeroize.c
@@ -35,16 +35,16 @@
#define BUFFER_LEN 1024
-void usage( void )
+void usage(void)
{
- mbedtls_printf( "Zeroize is a simple program to assist with testing\n" );
- mbedtls_printf( "the mbedtls_platform_zeroize() function by using the\n" );
- mbedtls_printf( "debugger. This program takes a file as input and\n" );
- mbedtls_printf( "prints the first %d characters. Usage:\n\n", BUFFER_LEN );
- mbedtls_printf( " zeroize <FILE>\n" );
+ mbedtls_printf("Zeroize is a simple program to assist with testing\n");
+ mbedtls_printf("the mbedtls_platform_zeroize() function by using the\n");
+ mbedtls_printf("debugger. This program takes a file as input and\n");
+ mbedtls_printf("prints the first %d characters. Usage:\n\n", BUFFER_LEN);
+ mbedtls_printf(" zeroize <FILE>\n");
}
-int main( int argc, char** argv )
+int main(int argc, char **argv)
{
int exit_code = MBEDTLS_EXIT_FAILURE;
FILE *fp;
@@ -53,34 +53,32 @@
char *end = p + BUFFER_LEN;
int c;
- if( argc != 2 )
- {
- mbedtls_printf( "This program takes exactly 1 argument\n" );
+ if (argc != 2) {
+ mbedtls_printf("This program takes exactly 1 argument\n");
usage();
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
- fp = fopen( argv[1], "r" );
- if( fp == NULL )
- {
- mbedtls_printf( "Could not open file '%s'\n", argv[1] );
- mbedtls_exit( exit_code );
+ fp = fopen(argv[1], "r");
+ if (fp == NULL) {
+ mbedtls_printf("Could not open file '%s'\n", argv[1]);
+ mbedtls_exit(exit_code);
}
- while( ( c = fgetc( fp ) ) != EOF && p < end - 1 )
- *p++ = (char)c;
+ while ((c = fgetc(fp)) != EOF && p < end - 1) {
+ *p++ = (char) c;
+ }
*p = '\0';
- if( p - buf != 0 )
- {
- mbedtls_printf( "%s\n", buf );
+ if (p - buf != 0) {
+ mbedtls_printf("%s\n", buf);
exit_code = MBEDTLS_EXIT_SUCCESS;
+ } else {
+ mbedtls_printf("The file is empty!\n");
}
- else
- mbedtls_printf( "The file is empty!\n" );
- fclose( fp );
- mbedtls_platform_zeroize( buf, sizeof( buf ) );
+ fclose(fp);
+ mbedtls_platform_zeroize(buf, sizeof(buf));
- mbedtls_exit( exit_code ); // GDB_BREAK_HERE -- don't remove this comment!
+ mbedtls_exit(exit_code); // GDB_BREAK_HERE -- don't remove this comment!
}
diff --git a/programs/util/pem2der.c b/programs/util/pem2der.c
index 7138fa8..4a25f21 100644
--- a/programs/util/pem2der.c
+++ b/programs/util/pem2der.c
@@ -41,10 +41,10 @@
"\n"
#if !defined(MBEDTLS_BASE64_C) || !defined(MBEDTLS_FS_IO)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BASE64_C and/or MBEDTLS_FS_IO not defined.\n");
- mbedtls_exit( 0 );
+ mbedtls_exit(0);
}
#else
@@ -52,120 +52,127 @@
/*
* global options
*/
-struct options
-{
+struct options {
const char *filename; /* filename of the input file */
const char *output_file; /* where to store the output */
} opt;
-int convert_pem_to_der( const unsigned char *input, size_t ilen,
- unsigned char *output, size_t *olen )
+int convert_pem_to_der(const unsigned char *input, size_t ilen,
+ unsigned char *output, size_t *olen)
{
int ret;
const unsigned char *s1, *s2, *end = input + ilen;
size_t len = 0;
- s1 = (unsigned char *) strstr( (const char *) input, "-----BEGIN" );
- if( s1 == NULL )
- return( -1 );
+ s1 = (unsigned char *) strstr((const char *) input, "-----BEGIN");
+ if (s1 == NULL) {
+ return -1;
+ }
- s2 = (unsigned char *) strstr( (const char *) input, "-----END" );
- if( s2 == NULL )
- return( -1 );
+ s2 = (unsigned char *) strstr((const char *) input, "-----END");
+ if (s2 == NULL) {
+ return -1;
+ }
s1 += 10;
- while( s1 < end && *s1 != '-' )
+ while (s1 < end && *s1 != '-') {
s1++;
- while( s1 < end && *s1 == '-' )
+ }
+ while (s1 < end && *s1 == '-') {
s1++;
- if( *s1 == '\r' ) s1++;
- if( *s1 == '\n' ) s1++;
+ }
+ if (*s1 == '\r') {
+ s1++;
+ }
+ if (*s1 == '\n') {
+ s1++;
+ }
- if( s2 <= s1 || s2 > end )
- return( -1 );
+ if (s2 <= s1 || s2 > end) {
+ return -1;
+ }
- ret = mbedtls_base64_decode( NULL, 0, &len, (const unsigned char *) s1, s2 - s1 );
- if( ret == MBEDTLS_ERR_BASE64_INVALID_CHARACTER )
- return( ret );
+ ret = mbedtls_base64_decode(NULL, 0, &len, (const unsigned char *) s1, s2 - s1);
+ if (ret == MBEDTLS_ERR_BASE64_INVALID_CHARACTER) {
+ return ret;
+ }
- if( len > *olen )
- return( -1 );
+ if (len > *olen) {
+ return -1;
+ }
- if( ( ret = mbedtls_base64_decode( output, len, &len, (const unsigned char *) s1,
- s2 - s1 ) ) != 0 )
- {
- return( ret );
+ if ((ret = mbedtls_base64_decode(output, len, &len, (const unsigned char *) s1,
+ s2 - s1)) != 0) {
+ return ret;
}
*olen = len;
- return( 0 );
+ return 0;
}
/*
* Load all data from a file into a given buffer.
*/
-static int load_file( const char *path, unsigned char **buf, size_t *n )
+static int load_file(const char *path, unsigned char **buf, size_t *n)
{
FILE *f;
long size;
- if( ( f = fopen( path, "rb" ) ) == NULL )
- return( -1 );
-
- fseek( f, 0, SEEK_END );
- if( ( size = ftell( f ) ) == -1 )
- {
- fclose( f );
- return( -1 );
+ if ((f = fopen(path, "rb")) == NULL) {
+ return -1;
}
- fseek( f, 0, SEEK_SET );
+
+ fseek(f, 0, SEEK_END);
+ if ((size = ftell(f)) == -1) {
+ fclose(f);
+ return -1;
+ }
+ fseek(f, 0, SEEK_SET);
*n = (size_t) size;
- if( *n + 1 == 0 ||
- ( *buf = mbedtls_calloc( 1, *n + 1 ) ) == NULL )
- {
- fclose( f );
- return( -1 );
+ if (*n + 1 == 0 ||
+ (*buf = mbedtls_calloc(1, *n + 1)) == NULL) {
+ fclose(f);
+ return -1;
}
- if( fread( *buf, 1, *n, f ) != *n )
- {
- fclose( f );
- free( *buf );
+ if (fread(*buf, 1, *n, f) != *n) {
+ fclose(f);
+ free(*buf);
*buf = NULL;
- return( -1 );
+ return -1;
}
- fclose( f );
+ fclose(f);
(*buf)[*n] = '\0';
- return( 0 );
+ return 0;
}
/*
* Write buffer to a file
*/
-static int write_file( const char *path, unsigned char *buf, size_t n )
+static int write_file(const char *path, unsigned char *buf, size_t n)
{
FILE *f;
- if( ( f = fopen( path, "wb" ) ) == NULL )
- return( -1 );
-
- if( fwrite( buf, 1, n, f ) != n )
- {
- fclose( f );
- return( -1 );
+ if ((f = fopen(path, "wb")) == NULL) {
+ return -1;
}
- fclose( f );
- return( 0 );
+ if (fwrite(buf, 1, n, f) != n) {
+ fclose(f);
+ return -1;
+ }
+
+ fclose(f);
+ return 0;
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -179,95 +186,92 @@
/*
* Set to sane values
*/
- memset( buf, 0, sizeof(buf) );
- memset( der_buffer, 0, sizeof(der_buffer) );
+ memset(buf, 0, sizeof(buf));
+ memset(der_buffer, 0, sizeof(der_buffer));
- if( argc == 0 )
- {
- usage:
- mbedtls_printf( USAGE );
+ if (argc == 0) {
+usage:
+ mbedtls_printf(USAGE);
goto exit;
}
opt.filename = DFL_FILENAME;
opt.output_file = DFL_OUTPUT_FILENAME;
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
+ if ((q = strchr(p, '=')) == NULL) {
goto usage;
+ }
*q++ = '\0';
- if( strcmp( p, "filename" ) == 0 )
+ if (strcmp(p, "filename") == 0) {
opt.filename = q;
- else if( strcmp( p, "output_file" ) == 0 )
+ } else if (strcmp(p, "output_file") == 0) {
opt.output_file = q;
- else
+ } else {
goto usage;
+ }
}
/*
* 1.1. Load the PEM file
*/
- mbedtls_printf( "\n . Loading the PEM file ..." );
- fflush( stdout );
+ mbedtls_printf("\n . Loading the PEM file ...");
+ fflush(stdout);
- ret = load_file( opt.filename, &pem_buffer, &pem_size );
+ ret = load_file(opt.filename, &pem_buffer, &pem_size);
- if( ret != 0 )
- {
+ if (ret != 0) {
#ifdef MBEDTLS_ERROR_C
- mbedtls_strerror( ret, buf, 1024 );
+ mbedtls_strerror(ret, buf, 1024);
#endif
- mbedtls_printf( " failed\n ! load_file returned %d - %s\n\n", ret, buf );
+ mbedtls_printf(" failed\n ! load_file returned %d - %s\n\n", ret, buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1.2. Convert from PEM to DER
*/
- mbedtls_printf( " . Converting from PEM to DER ..." );
- fflush( stdout );
+ mbedtls_printf(" . Converting from PEM to DER ...");
+ fflush(stdout);
- if( ( ret = convert_pem_to_der( pem_buffer, pem_size, der_buffer, &der_size ) ) != 0 )
- {
+ if ((ret = convert_pem_to_der(pem_buffer, pem_size, der_buffer, &der_size)) != 0) {
#ifdef MBEDTLS_ERROR_C
- mbedtls_strerror( ret, buf, 1024 );
+ mbedtls_strerror(ret, buf, 1024);
#endif
- mbedtls_printf( " failed\n ! convert_pem_to_der %d - %s\n\n", ret, buf );
+ mbedtls_printf(" failed\n ! convert_pem_to_der %d - %s\n\n", ret, buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1.3. Write the DER file
*/
- mbedtls_printf( " . Writing the DER file ..." );
- fflush( stdout );
+ mbedtls_printf(" . Writing the DER file ...");
+ fflush(stdout);
- ret = write_file( opt.output_file, der_buffer, der_size );
+ ret = write_file(opt.output_file, der_buffer, der_size);
- if( ret != 0 )
- {
+ if (ret != 0) {
#ifdef MBEDTLS_ERROR_C
- mbedtls_strerror( ret, buf, 1024 );
+ mbedtls_strerror(ret, buf, 1024);
#endif
- mbedtls_printf( " failed\n ! write_file returned %d - %s\n\n", ret, buf );
+ mbedtls_printf(" failed\n ! write_file returned %d - %s\n\n", ret, buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- free( pem_buffer );
+ free(pem_buffer);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BASE64_C && MBEDTLS_FS_IO */
diff --git a/programs/util/strerror.c b/programs/util/strerror.c
index 66052fd..4bfd8a1 100644
--- a/programs/util/strerror.c
+++ b/programs/util/strerror.c
@@ -34,43 +34,40 @@
"\n where <errorcode> can be a decimal or hexadecimal (starts with 0x or -0x)\n"
#if !defined(MBEDTLS_ERROR_C) && !defined(MBEDTLS_ERROR_STRERROR_DUMMY)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_ERROR_C and/or MBEDTLS_ERROR_STRERROR_DUMMY not defined.\n");
- mbedtls_exit( 0 );
+ mbedtls_exit(0);
}
#else
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
long int val;
char *end = argv[1];
- if( argc != 2 )
- {
- mbedtls_printf( USAGE );
- mbedtls_exit( 0 );
+ if (argc != 2) {
+ mbedtls_printf(USAGE);
+ mbedtls_exit(0);
}
- val = strtol( argv[1], &end, 10 );
- if( *end != '\0' )
- {
- val = strtol( argv[1], &end, 16 );
- if( *end != '\0' )
- {
- mbedtls_printf( USAGE );
- return( 0 );
+ val = strtol(argv[1], &end, 10);
+ if (*end != '\0') {
+ val = strtol(argv[1], &end, 16);
+ if (*end != '\0') {
+ mbedtls_printf(USAGE);
+ return 0;
}
}
- if( val > 0 )
+ if (val > 0) {
val = -val;
-
- if( val != 0 )
- {
- char error_buf[200];
- mbedtls_strerror( val, error_buf, 200 );
- mbedtls_printf("Last error was: -0x%04x - %s\n\n", (unsigned int) -val, error_buf );
}
- mbedtls_exit( val );
+ if (val != 0) {
+ char error_buf[200];
+ mbedtls_strerror(val, error_buf, 200);
+ mbedtls_printf("Last error was: -0x%04x - %s\n\n", (unsigned int) -val, error_buf);
+ }
+
+ mbedtls_exit(val);
}
#endif /* MBEDTLS_ERROR_C */
diff --git a/programs/wince_main.c b/programs/wince_main.c
index 851012c..be98eae 100644
--- a/programs/wince_main.c
+++ b/programs/wince_main.c
@@ -21,23 +21,23 @@
#include <windows.h>
-extern int main( int, const char ** );
+extern int main(int, const char **);
-int _tmain( int argc, _TCHAR* targv[] )
+int _tmain(int argc, _TCHAR *targv[])
{
char **argv;
int i;
- argv = ( char ** ) calloc( argc, sizeof( char * ) );
+ argv = (char **) calloc(argc, sizeof(char *));
- for ( i = 0; i < argc; i++ ) {
+ for (i = 0; i < argc; i++) {
size_t len;
- len = _tcslen( targv[i] ) + 1;
- argv[i] = ( char * ) calloc( len, sizeof( char ) );
- wcstombs( argv[i], targv[i], len );
+ len = _tcslen(targv[i]) + 1;
+ argv[i] = (char *) calloc(len, sizeof(char));
+ wcstombs(argv[i], targv[i], len);
}
- return main( argc, argv );
+ return main(argc, argv);
}
#endif /* defined(_WIN32_WCE) */
diff --git a/programs/x509/cert_app.c b/programs/x509/cert_app.c
index 00d563f..6135238 100644
--- a/programs/x509/cert_app.c
+++ b/programs/x509/cert_app.c
@@ -26,14 +26,14 @@
!defined(MBEDTLS_NET_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_FS_IO) || \
!defined(MBEDTLS_CTR_DRBG_C) || defined(MBEDTLS_X509_REMOVE_INFO)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C and/or "
- "MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_CLI_C and/or "
- "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_FS_IO and/or "
- "MBEDTLS_CTR_DRBG_C not defined and/or MBEDTLS_X509_REMOVE_INFO defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_CLI_C and/or "
+ "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or "
+ "MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_FS_IO and/or "
+ "MBEDTLS_CTR_DRBG_C not defined and/or MBEDTLS_X509_REMOVE_INFO defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -86,8 +86,7 @@
/*
* global options
*/
-struct options
-{
+struct options {
int mode; /* the mode to run the application in */
const char *filename; /* filename of the certificate file */
const char *ca_file; /* the file with the CA certificate(s) */
@@ -99,37 +98,36 @@
int permissive; /* permissive parsing */
} opt;
-static void my_debug( void *ctx, int level,
- const char *file, int line,
- const char *str )
+static void my_debug(void *ctx, int level,
+ const char *file, int line,
+ const char *str)
{
((void) level);
- mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str );
- fflush( (FILE *) ctx );
+ mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str);
+ fflush((FILE *) ctx);
}
-static int my_verify( void *data, mbedtls_x509_crt *crt, int depth, uint32_t *flags )
+static int my_verify(void *data, mbedtls_x509_crt *crt, int depth, uint32_t *flags)
{
char buf[1024];
((void) data);
- mbedtls_printf( "\nVerify requested for (Depth %d):\n", depth );
- mbedtls_x509_crt_info( buf, sizeof( buf ) - 1, "", crt );
- mbedtls_printf( "%s", buf );
+ mbedtls_printf("\nVerify requested for (Depth %d):\n", depth);
+ mbedtls_x509_crt_info(buf, sizeof(buf) - 1, "", crt);
+ mbedtls_printf("%s", buf);
- if ( ( *flags ) == 0 )
- mbedtls_printf( " This certificate has no flags\n" );
- else
- {
- mbedtls_x509_crt_verify_info( buf, sizeof( buf ), " ! ", *flags );
- mbedtls_printf( "%s\n", buf );
+ if ((*flags) == 0) {
+ mbedtls_printf(" This certificate has no flags\n");
+ } else {
+ mbedtls_x509_crt_verify_info(buf, sizeof(buf), " ! ", *flags);
+ mbedtls_printf("%s\n", buf);
}
- return( 0 );
+ return 0;
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -150,23 +148,22 @@
/*
* Set to sane values
*/
- mbedtls_net_init( &server_fd );
- mbedtls_ctr_drbg_init( &ctr_drbg );
- mbedtls_ssl_init( &ssl );
- mbedtls_ssl_config_init( &conf );
- mbedtls_x509_crt_init( &cacert );
+ mbedtls_net_init(&server_fd);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ mbedtls_ssl_init(&ssl);
+ mbedtls_ssl_config_init(&conf);
+ mbedtls_x509_crt_init(&cacert);
#if defined(MBEDTLS_X509_CRL_PARSE_C)
- mbedtls_x509_crl_init( &cacrl );
+ mbedtls_x509_crl_init(&cacrl);
#else
/* Zeroize structure as CRL parsing is not supported and we have to pass
it to the verify function */
- memset( &cacrl, 0, sizeof(mbedtls_x509_crl) );
+ memset(&cacrl, 0, sizeof(mbedtls_x509_crl));
#endif
- if( argc == 0 )
- {
- usage:
- mbedtls_printf( USAGE );
+ if (argc == 0) {
+usage:
+ mbedtls_printf(USAGE);
goto exit;
}
@@ -180,91 +177,85 @@
opt.debug_level = DFL_DEBUG_LEVEL;
opt.permissive = DFL_PERMISSIVE;
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
+ if ((q = strchr(p, '=')) == NULL) {
goto usage;
+ }
*q++ = '\0';
- for( j = 0; p + j < q; j++ )
- {
- if( argv[i][j] >= 'A' && argv[i][j] <= 'Z' )
+ for (j = 0; p + j < q; j++) {
+ if (argv[i][j] >= 'A' && argv[i][j] <= 'Z') {
argv[i][j] |= 0x20;
+ }
}
- if( strcmp( p, "mode" ) == 0 )
- {
- if( strcmp( q, "file" ) == 0 )
+ if (strcmp(p, "mode") == 0) {
+ if (strcmp(q, "file") == 0) {
opt.mode = MODE_FILE;
- else if( strcmp( q, "ssl" ) == 0 )
+ } else if (strcmp(q, "ssl") == 0) {
opt.mode = MODE_SSL;
- else
+ } else {
goto usage;
- }
- else if( strcmp( p, "filename" ) == 0 )
+ }
+ } else if (strcmp(p, "filename") == 0) {
opt.filename = q;
- else if( strcmp( p, "ca_file" ) == 0 )
+ } else if (strcmp(p, "ca_file") == 0) {
opt.ca_file = q;
- else if( strcmp( p, "crl_file" ) == 0 )
+ } else if (strcmp(p, "crl_file") == 0) {
opt.crl_file = q;
- else if( strcmp( p, "ca_path" ) == 0 )
+ } else if (strcmp(p, "ca_path") == 0) {
opt.ca_path = q;
- else if( strcmp( p, "server_name" ) == 0 )
+ } else if (strcmp(p, "server_name") == 0) {
opt.server_name = q;
- else if( strcmp( p, "server_port" ) == 0 )
+ } else if (strcmp(p, "server_port") == 0) {
opt.server_port = q;
- else if( strcmp( p, "debug_level" ) == 0 )
- {
- opt.debug_level = atoi( q );
- if( opt.debug_level < 0 || opt.debug_level > 65535 )
+ } else if (strcmp(p, "debug_level") == 0) {
+ opt.debug_level = atoi(q);
+ if (opt.debug_level < 0 || opt.debug_level > 65535) {
goto usage;
- }
- else if( strcmp( p, "permissive" ) == 0 )
- {
- opt.permissive = atoi( q );
- if( opt.permissive < 0 || opt.permissive > 1 )
+ }
+ } else if (strcmp(p, "permissive") == 0) {
+ opt.permissive = atoi(q);
+ if (opt.permissive < 0 || opt.permissive > 1) {
goto usage;
- }
- else
+ }
+ } else {
goto usage;
+ }
}
/*
* 1.1. Load the trusted CA
*/
- mbedtls_printf( " . Loading the CA root certificate ..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the CA root certificate ...");
+ fflush(stdout);
- if( strlen( opt.ca_path ) )
- {
- if( ( ret = mbedtls_x509_crt_parse_path( &cacert, opt.ca_path ) ) < 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_path returned -0x%x\n\n", (unsigned int) -ret );
+ if (strlen(opt.ca_path)) {
+ if ((ret = mbedtls_x509_crt_parse_path(&cacert, opt.ca_path)) < 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse_path returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
verify = 1;
- }
- else if( strlen( opt.ca_file ) )
- {
- if( ( ret = mbedtls_x509_crt_parse_file( &cacert, opt.ca_file ) ) < 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_file returned -0x%x\n\n", (unsigned int) -ret );
+ } else if (strlen(opt.ca_file)) {
+ if ((ret = mbedtls_x509_crt_parse_file(&cacert, opt.ca_file)) < 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse_file returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
verify = 1;
}
- mbedtls_printf( " ok (%d skipped)\n", ret );
+ mbedtls_printf(" ok (%d skipped)\n", ret);
#if defined(MBEDTLS_X509_CRL_PARSE_C)
- if( strlen( opt.crl_file ) )
- {
- if( ( ret = mbedtls_x509_crl_parse_file( &cacrl, opt.crl_file ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crl_parse returned -0x%x\n\n", (unsigned int) -ret );
+ if (strlen(opt.crl_file)) {
+ if ((ret = mbedtls_x509_crl_parse_file(&cacrl, opt.crl_file)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crl_parse returned -0x%x\n\n",
+ (unsigned int) -ret);
goto exit;
}
@@ -272,52 +263,49 @@
}
#endif
- if( opt.mode == MODE_FILE )
- {
+ if (opt.mode == MODE_FILE) {
mbedtls_x509_crt crt;
mbedtls_x509_crt *cur = &crt;
- mbedtls_x509_crt_init( &crt );
+ mbedtls_x509_crt_init(&crt);
/*
* 1.1. Load the certificate(s)
*/
- mbedtls_printf( "\n . Loading the certificate(s) ..." );
- fflush( stdout );
+ mbedtls_printf("\n . Loading the certificate(s) ...");
+ fflush(stdout);
- ret = mbedtls_x509_crt_parse_file( &crt, opt.filename );
+ ret = mbedtls_x509_crt_parse_file(&crt, opt.filename);
- if( ret < 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_file returned %d\n\n", ret );
- mbedtls_x509_crt_free( &crt );
+ if (ret < 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse_file returned %d\n\n", ret);
+ mbedtls_x509_crt_free(&crt);
goto exit;
}
- if( opt.permissive == 0 && ret > 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse failed to parse %d certificates\n\n", ret );
- mbedtls_x509_crt_free( &crt );
+ if (opt.permissive == 0 && ret > 0) {
+ mbedtls_printf(
+ " failed\n ! mbedtls_x509_crt_parse failed to parse %d certificates\n\n",
+ ret);
+ mbedtls_x509_crt_free(&crt);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1.2 Print the certificate(s)
*/
- while( cur != NULL )
- {
- mbedtls_printf( " . Peer certificate information ...\n" );
- ret = mbedtls_x509_crt_info( (char *) buf, sizeof( buf ) - 1, " ",
- cur );
- if( ret == -1 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_info returned %d\n\n", ret );
- mbedtls_x509_crt_free( &crt );
+ while (cur != NULL) {
+ mbedtls_printf(" . Peer certificate information ...\n");
+ ret = mbedtls_x509_crt_info((char *) buf, sizeof(buf) - 1, " ",
+ cur);
+ if (ret == -1) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_info returned %d\n\n", ret);
+ mbedtls_x509_crt_free(&crt);
goto exit;
}
- mbedtls_printf( "%s\n", buf );
+ mbedtls_printf("%s\n", buf);
cur = cur->next;
}
@@ -325,156 +313,143 @@
/*
* 1.3 Verify the certificate
*/
- if( verify )
- {
- mbedtls_printf( " . Verifying X.509 certificate..." );
+ if (verify) {
+ mbedtls_printf(" . Verifying X.509 certificate...");
- if( ( ret = mbedtls_x509_crt_verify( &crt, &cacert, &cacrl, NULL, &flags,
- my_verify, NULL ) ) != 0 )
- {
+ if ((ret = mbedtls_x509_crt_verify(&crt, &cacert, &cacrl, NULL, &flags,
+ my_verify, NULL)) != 0) {
char vrfy_buf[512];
- mbedtls_printf( " failed\n" );
+ mbedtls_printf(" failed\n");
- mbedtls_x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ), " ! ", flags );
+ mbedtls_x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), " ! ", flags);
- mbedtls_printf( "%s\n", vrfy_buf );
+ mbedtls_printf("%s\n", vrfy_buf);
+ } else {
+ mbedtls_printf(" ok\n");
}
- else
- mbedtls_printf( " ok\n" );
}
- mbedtls_x509_crt_free( &crt );
- }
- else if( opt.mode == MODE_SSL )
- {
+ mbedtls_x509_crt_free(&crt);
+ } else if (opt.mode == MODE_SSL) {
/*
* 1. Initialize the RNG and the session data
*/
- mbedtls_printf( "\n . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf("\n . Seeding the random number generator...");
+ fflush(stdout);
- mbedtls_entropy_init( &entropy );
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret );
+ mbedtls_entropy_init(&entropy);
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret);
goto ssl_exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
#if defined(MBEDTLS_DEBUG_C)
- mbedtls_debug_set_threshold( opt.debug_level );
+ mbedtls_debug_set_threshold(opt.debug_level);
#endif
/*
* 2. Start the connection
*/
- mbedtls_printf( " . SSL connection to tcp/%s/%s...", opt.server_name,
- opt.server_port );
- fflush( stdout );
+ mbedtls_printf(" . SSL connection to tcp/%s/%s...", opt.server_name,
+ opt.server_port);
+ fflush(stdout);
- if( ( ret = mbedtls_net_connect( &server_fd, opt.server_name,
- opt.server_port, MBEDTLS_NET_PROTO_TCP ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_net_connect returned %d\n\n", ret );
+ if ((ret = mbedtls_net_connect(&server_fd, opt.server_name,
+ opt.server_port, MBEDTLS_NET_PROTO_TCP)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_net_connect returned %d\n\n", ret);
goto ssl_exit;
}
/*
* 3. Setup stuff
*/
- if( ( ret = mbedtls_ssl_config_defaults( &conf,
- MBEDTLS_SSL_IS_CLIENT,
- MBEDTLS_SSL_TRANSPORT_STREAM,
- MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_config_defaults(&conf,
+ MBEDTLS_SSL_IS_CLIENT,
+ MBEDTLS_SSL_TRANSPORT_STREAM,
+ MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret);
goto exit;
}
- if( verify )
- {
- mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_REQUIRED );
- mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL );
- mbedtls_ssl_conf_verify( &conf, my_verify, NULL );
+ if (verify) {
+ mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_REQUIRED);
+ mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL);
+ mbedtls_ssl_conf_verify(&conf, my_verify, NULL);
+ } else {
+ mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_NONE);
}
- else
- mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_NONE );
- mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg );
- mbedtls_ssl_conf_dbg( &conf, my_debug, stdout );
+ mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg);
+ mbedtls_ssl_conf_dbg(&conf, my_debug, stdout);
- if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned %d\n\n", ret);
goto ssl_exit;
}
- if( ( ret = mbedtls_ssl_set_hostname( &ssl, opt.server_name ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret );
+ if ((ret = mbedtls_ssl_set_hostname(&ssl, opt.server_name)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret);
goto ssl_exit;
}
- mbedtls_ssl_set_bio( &ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL );
+ mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL);
/*
* 4. Handshake
*/
- while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 )
- {
- if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE )
- {
- mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned %d\n\n", ret );
+ while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) {
+ if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
+ mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned %d\n\n", ret);
goto ssl_exit;
}
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 5. Print the certificate
*/
#if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
- mbedtls_printf( " . Peer certificate information ... skipped\n" );
+ mbedtls_printf(" . Peer certificate information ... skipped\n");
#else
- mbedtls_printf( " . Peer certificate information ...\n" );
- ret = mbedtls_x509_crt_info( (char *) buf, sizeof( buf ) - 1, " ",
- mbedtls_ssl_get_peer_cert( &ssl ) );
- if( ret == -1 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_info returned %d\n\n", ret );
+ mbedtls_printf(" . Peer certificate information ...\n");
+ ret = mbedtls_x509_crt_info((char *) buf, sizeof(buf) - 1, " ",
+ mbedtls_ssl_get_peer_cert(&ssl));
+ if (ret == -1) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_info returned %d\n\n", ret);
goto ssl_exit;
}
- mbedtls_printf( "%s\n", buf );
+ mbedtls_printf("%s\n", buf);
#endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */
- mbedtls_ssl_close_notify( &ssl );
+ mbedtls_ssl_close_notify(&ssl);
ssl_exit:
- mbedtls_ssl_free( &ssl );
- mbedtls_ssl_config_free( &conf );
- }
- else
+ mbedtls_ssl_free(&ssl);
+ mbedtls_ssl_config_free(&conf);
+ } else {
goto usage;
+ }
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_net_free( &server_fd );
- mbedtls_x509_crt_free( &cacert );
+ mbedtls_net_free(&server_fd);
+ mbedtls_x509_crt_free(&cacert);
#if defined(MBEDTLS_X509_CRL_PARSE_C)
- mbedtls_x509_crl_free( &cacrl );
+ mbedtls_x509_crl_free(&cacrl);
#endif
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_SSL_TLS_C &&
MBEDTLS_SSL_CLI_C && MBEDTLS_NET_C && MBEDTLS_RSA_C &&
diff --git a/programs/x509/cert_req.c b/programs/x509/cert_req.c
index 4879583..1126e60 100644
--- a/programs/x509/cert_req.c
+++ b/programs/x509/cert_req.c
@@ -25,13 +25,13 @@
!defined(MBEDTLS_PK_PARSE_C) || !defined(MBEDTLS_SHA256_C) || \
!defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_PEM_WRITE_C)
-int main( void )
+int main(void)
{
- mbedtls_printf( "MBEDTLS_X509_CSR_WRITE_C and/or MBEDTLS_FS_IO and/or "
- "MBEDTLS_PK_PARSE_C and/or MBEDTLS_SHA256_C and/or "
- "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C "
- "not defined.\n");
- mbedtls_exit( 0 );
+ mbedtls_printf("MBEDTLS_X509_CSR_WRITE_C and/or MBEDTLS_FS_IO and/or "
+ "MBEDTLS_PK_PARSE_C and/or MBEDTLS_SHA256_C and/or "
+ "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C "
+ "not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -95,8 +95,7 @@
/*
* global options
*/
-struct options
-{
+struct options {
const char *filename; /* filename of the key file */
const char *password; /* password for the key file */
int debug_level; /* level of debugging */
@@ -109,36 +108,37 @@
mbedtls_md_type_t md_alg; /* Hash algorithm used for signature. */
} opt;
-int write_certificate_request( mbedtls_x509write_csr *req, const char *output_file,
- int (*f_rng)(void *, unsigned char *, size_t),
- void *p_rng )
+int write_certificate_request(mbedtls_x509write_csr *req, const char *output_file,
+ int (*f_rng)(void *, unsigned char *, size_t),
+ void *p_rng)
{
int ret;
FILE *f;
unsigned char output_buf[4096];
size_t len = 0;
- memset( output_buf, 0, 4096 );
- if( ( ret = mbedtls_x509write_csr_pem( req, output_buf, 4096, f_rng, p_rng ) ) < 0 )
- return( ret );
-
- len = strlen( (char *) output_buf );
-
- if( ( f = fopen( output_file, "w" ) ) == NULL )
- return( -1 );
-
- if( fwrite( output_buf, 1, len, f ) != len )
- {
- fclose( f );
- return( -1 );
+ memset(output_buf, 0, 4096);
+ if ((ret = mbedtls_x509write_csr_pem(req, output_buf, 4096, f_rng, p_rng)) < 0) {
+ return ret;
}
- fclose( f );
+ len = strlen((char *) output_buf);
- return( 0 );
+ if ((f = fopen(output_file, "w")) == NULL) {
+ return -1;
+ }
+
+ if (fwrite(output_buf, 1, len, f) != len) {
+ fclose(f);
+ return -1;
+ }
+
+ fclose(f);
+
+ return 0;
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -154,15 +154,14 @@
/*
* Set to sane values
*/
- mbedtls_x509write_csr_init( &req );
- mbedtls_pk_init( &key );
- mbedtls_ctr_drbg_init( &ctr_drbg );
- memset( buf, 0, sizeof( buf ) );
+ mbedtls_x509write_csr_init(&req);
+ mbedtls_pk_init(&key);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ memset(buf, 0, sizeof(buf));
- if( argc == 0 )
- {
- usage:
- mbedtls_printf( USAGE );
+ if (argc == 0) {
+usage:
+ mbedtls_printf(USAGE);
goto exit;
}
@@ -177,210 +176,194 @@
opt.force_ns_cert_type = DFL_FORCE_NS_CERT_TYPE;
opt.md_alg = DFL_MD_ALG;
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
+ if ((q = strchr(p, '=')) == NULL) {
goto usage;
+ }
*q++ = '\0';
- if( strcmp( p, "filename" ) == 0 )
+ if (strcmp(p, "filename") == 0) {
opt.filename = q;
- else if( strcmp( p, "password" ) == 0 )
+ } else if (strcmp(p, "password") == 0) {
opt.password = q;
- else if( strcmp( p, "output_file" ) == 0 )
+ } else if (strcmp(p, "output_file") == 0) {
opt.output_file = q;
- else if( strcmp( p, "debug_level" ) == 0 )
- {
- opt.debug_level = atoi( q );
- if( opt.debug_level < 0 || opt.debug_level > 65535 )
- goto usage;
- }
- else if( strcmp( p, "subject_name" ) == 0 )
- {
- opt.subject_name = q;
- }
- else if( strcmp( p, "md" ) == 0 )
- {
- const mbedtls_md_info_t *md_info =
- mbedtls_md_info_from_string( q );
- if( md_info == NULL )
- {
- mbedtls_printf( "Invalid argument for option %s\n", p );
+ } else if (strcmp(p, "debug_level") == 0) {
+ opt.debug_level = atoi(q);
+ if (opt.debug_level < 0 || opt.debug_level > 65535) {
goto usage;
}
- opt.md_alg = mbedtls_md_get_type( md_info );
- }
- else if( strcmp( p, "key_usage" ) == 0 )
- {
- while( q != NULL )
- {
- if( ( r = strchr( q, ',' ) ) != NULL )
+ } else if (strcmp(p, "subject_name") == 0) {
+ opt.subject_name = q;
+ } else if (strcmp(p, "md") == 0) {
+ const mbedtls_md_info_t *md_info =
+ mbedtls_md_info_from_string(q);
+ if (md_info == NULL) {
+ mbedtls_printf("Invalid argument for option %s\n", p);
+ goto usage;
+ }
+ opt.md_alg = mbedtls_md_get_type(md_info);
+ } else if (strcmp(p, "key_usage") == 0) {
+ while (q != NULL) {
+ if ((r = strchr(q, ',')) != NULL) {
*r++ = '\0';
+ }
- if( strcmp( q, "digital_signature" ) == 0 )
+ if (strcmp(q, "digital_signature") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_DIGITAL_SIGNATURE;
- else if( strcmp( q, "non_repudiation" ) == 0 )
+ } else if (strcmp(q, "non_repudiation") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_NON_REPUDIATION;
- else if( strcmp( q, "key_encipherment" ) == 0 )
+ } else if (strcmp(q, "key_encipherment") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_KEY_ENCIPHERMENT;
- else if( strcmp( q, "data_encipherment" ) == 0 )
+ } else if (strcmp(q, "data_encipherment") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_DATA_ENCIPHERMENT;
- else if( strcmp( q, "key_agreement" ) == 0 )
+ } else if (strcmp(q, "key_agreement") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_KEY_AGREEMENT;
- else if( strcmp( q, "key_cert_sign" ) == 0 )
+ } else if (strcmp(q, "key_cert_sign") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_KEY_CERT_SIGN;
- else if( strcmp( q, "crl_sign" ) == 0 )
+ } else if (strcmp(q, "crl_sign") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_CRL_SIGN;
- else
+ } else {
goto usage;
+ }
q = r;
}
- }
- else if( strcmp( p, "force_key_usage" ) == 0 )
- {
- switch( atoi( q ) )
- {
+ } else if (strcmp(p, "force_key_usage") == 0) {
+ switch (atoi(q)) {
case 0: opt.force_key_usage = 0; break;
case 1: opt.force_key_usage = 1; break;
default: goto usage;
}
- }
- else if( strcmp( p, "ns_cert_type" ) == 0 )
- {
- while( q != NULL )
- {
- if( ( r = strchr( q, ',' ) ) != NULL )
+ } else if (strcmp(p, "ns_cert_type") == 0) {
+ while (q != NULL) {
+ if ((r = strchr(q, ',')) != NULL) {
*r++ = '\0';
+ }
- if( strcmp( q, "ssl_client" ) == 0 )
+ if (strcmp(q, "ssl_client") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT;
- else if( strcmp( q, "ssl_server" ) == 0 )
+ } else if (strcmp(q, "ssl_server") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER;
- else if( strcmp( q, "email" ) == 0 )
+ } else if (strcmp(q, "email") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_EMAIL;
- else if( strcmp( q, "object_signing" ) == 0 )
+ } else if (strcmp(q, "object_signing") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING;
- else if( strcmp( q, "ssl_ca" ) == 0 )
+ } else if (strcmp(q, "ssl_ca") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_CA;
- else if( strcmp( q, "email_ca" ) == 0 )
+ } else if (strcmp(q, "email_ca") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_EMAIL_CA;
- else if( strcmp( q, "object_signing_ca" ) == 0 )
+ } else if (strcmp(q, "object_signing_ca") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING_CA;
- else
+ } else {
goto usage;
+ }
q = r;
}
- }
- else if( strcmp( p, "force_ns_cert_type" ) == 0 )
- {
- switch( atoi( q ) )
- {
+ } else if (strcmp(p, "force_ns_cert_type") == 0) {
+ switch (atoi(q)) {
case 0: opt.force_ns_cert_type = 0; break;
case 1: opt.force_ns_cert_type = 1; break;
default: goto usage;
}
- }
- else
+ } else {
goto usage;
+ }
}
- mbedtls_x509write_csr_set_md_alg( &req, opt.md_alg );
+ mbedtls_x509write_csr_set_md_alg(&req, opt.md_alg);
- if( opt.key_usage || opt.force_key_usage == 1 )
- mbedtls_x509write_csr_set_key_usage( &req, opt.key_usage );
+ if (opt.key_usage || opt.force_key_usage == 1) {
+ mbedtls_x509write_csr_set_key_usage(&req, opt.key_usage);
+ }
- if( opt.ns_cert_type || opt.force_ns_cert_type == 1 )
- mbedtls_x509write_csr_set_ns_cert_type( &req, opt.ns_cert_type );
+ if (opt.ns_cert_type || opt.force_ns_cert_type == 1) {
+ mbedtls_x509write_csr_set_ns_cert_type(&req, opt.ns_cert_type);
+ }
/*
* 0. Seed the PRNG
*/
- mbedtls_printf( " . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf(" . Seeding the random number generator...");
+ fflush(stdout);
- mbedtls_entropy_init( &entropy );
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d", ret );
+ mbedtls_entropy_init(&entropy);
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1.0. Check the subject name for validity
*/
- mbedtls_printf( " . Checking subject name..." );
- fflush( stdout );
+ mbedtls_printf(" . Checking subject name...");
+ fflush(stdout);
- if( ( ret = mbedtls_x509write_csr_set_subject_name( &req, opt.subject_name ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509write_csr_set_subject_name returned %d", ret );
+ if ((ret = mbedtls_x509write_csr_set_subject_name(&req, opt.subject_name)) != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509write_csr_set_subject_name returned %d", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1.1. Load the key
*/
- mbedtls_printf( " . Loading the private key ..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the private key ...");
+ fflush(stdout);
- ret = mbedtls_pk_parse_keyfile( &key, opt.filename, opt.password,
- mbedtls_ctr_drbg_random, &ctr_drbg );
+ ret = mbedtls_pk_parse_keyfile(&key, opt.filename, opt.password,
+ mbedtls_ctr_drbg_random, &ctr_drbg);
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile returned %d", ret );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile returned %d", ret);
goto exit;
}
- mbedtls_x509write_csr_set_key( &req, &key );
+ mbedtls_x509write_csr_set_key(&req, &key);
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1.2. Writing the request
*/
- mbedtls_printf( " . Writing the certificate request ..." );
- fflush( stdout );
+ mbedtls_printf(" . Writing the certificate request ...");
+ fflush(stdout);
- if( ( ret = write_certificate_request( &req, opt.output_file,
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_printf( " failed\n ! write_certificate_request %d", ret );
+ if ((ret = write_certificate_request(&req, opt.output_file,
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_printf(" failed\n ! write_certificate_request %d", ret);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- if( exit_code != MBEDTLS_EXIT_SUCCESS )
- {
+ if (exit_code != MBEDTLS_EXIT_SUCCESS) {
#ifdef MBEDTLS_ERROR_C
- mbedtls_strerror( ret, buf, sizeof( buf ) );
- mbedtls_printf( " - %s\n", buf );
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" - %s\n", buf);
#else
mbedtls_printf("\n");
#endif
}
- mbedtls_x509write_csr_free( &req );
- mbedtls_pk_free( &key );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_x509write_csr_free(&req);
+ mbedtls_pk_free(&key);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_X509_CSR_WRITE_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO &&
MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C && MBEDTLS_PEM_WRITE_C */
diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c
index a8910d7..3e134dd 100644
--- a/programs/x509/cert_write.c
+++ b/programs/x509/cert_write.c
@@ -26,13 +26,13 @@
!defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \
!defined(MBEDTLS_ERROR_C) || !defined(MBEDTLS_SHA256_C) || \
!defined(MBEDTLS_PEM_WRITE_C)
-int main( void )
+int main(void)
{
- mbedtls_printf( "MBEDTLS_X509_CRT_WRITE_C and/or MBEDTLS_X509_CRT_PARSE_C and/or "
- "MBEDTLS_FS_IO and/or MBEDTLS_SHA256_C and/or "
- "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
- "MBEDTLS_ERROR_C not defined.\n");
- mbedtls_exit( 0 );
+ mbedtls_printf("MBEDTLS_X509_CRT_WRITE_C and/or MBEDTLS_X509_CRT_PARSE_C and/or "
+ "MBEDTLS_FS_IO and/or MBEDTLS_SHA256_C and/or "
+ "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or "
+ "MBEDTLS_ERROR_C not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -49,7 +49,7 @@
#include <string.h>
#define SET_OID(x, oid) \
- do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char*)oid; } while( 0 )
+ do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char *) oid; } while (0)
#if defined(MBEDTLS_X509_CSR_PARSE_C)
#define USAGE_CSR \
@@ -110,8 +110,8 @@
" issuer_pwd=%%s default: (empty)\n" \
" output_file=%%s default: cert.crt\n" \
" serial=%%s default: 1\n" \
- " not_before=%%s default: 20010101000000\n"\
- " not_after=%%s default: 20301231235959\n"\
+ " not_before=%%s default: 20010101000000\n" \
+ " not_after=%%s default: 20301231235959\n" \
" is_ca=%%d default: 0 (disabled)\n" \
" max_pathlen=%%d default: -1 (none)\n" \
" md=%%s default: SHA256\n" \
@@ -119,16 +119,16 @@
" MD5, RIPEMD160, SHA1,\n" \
" SHA224, SHA256, SHA384, SHA512\n" \
" version=%%d default: 3\n" \
- " Possible values: 1, 2, 3\n"\
+ " Possible values: 1, 2, 3\n" \
" subject_identifier=%%s default: 1\n" \
" Possible values: 0, 1\n" \
- " (Considered for v3 only)\n"\
+ " (Considered for v3 only)\n" \
" authority_identifier=%%s default: 1\n" \
" Possible values: 0, 1\n" \
- " (Considered for v3 only)\n"\
+ " (Considered for v3 only)\n" \
" basic_constraints=%%d default: 1\n" \
" Possible values: 0, 1\n" \
- " (Considered for v3 only)\n"\
+ " (Considered for v3 only)\n" \
" key_usage=%%s default: (empty)\n" \
" Comma-separated-list of values:\n" \
" digital_signature\n" \
@@ -138,7 +138,7 @@
" key_agreement\n" \
" key_cert_sign\n" \
" crl_sign\n" \
- " (Considered for v3 only)\n"\
+ " (Considered for v3 only)\n" \
" ext_key_usage=%%s default: (empty)\n" \
" Comma-separated-list of values:\n" \
" serverAuth\n" \
@@ -163,8 +163,7 @@
/*
* global options
*/
-struct options
-{
+struct options {
const char *issuer_crt; /* filename of the issuer certificate */
const char *request_file; /* filename of the certificate request */
const char *subject_key; /* filename of the subject key file */
@@ -191,9 +190,9 @@
int format; /* format */
} opt;
-int write_certificate( mbedtls_x509write_cert *crt, const char *output_file,
- int (*f_rng)(void *, unsigned char *, size_t),
- void *p_rng )
+int write_certificate(mbedtls_x509write_cert *crt, const char *output_file,
+ int (*f_rng)(void *, unsigned char *, size_t),
+ void *p_rng)
{
int ret;
FILE *f;
@@ -201,48 +200,49 @@
unsigned char *output_start;
size_t len = 0;
- memset( output_buf, 0, 4096 );
- if ( opt.format == FORMAT_DER )
- {
- ret = mbedtls_x509write_crt_der( crt, output_buf, 4096,
- f_rng, p_rng );
- if( ret < 0 )
- return( ret );
+ memset(output_buf, 0, 4096);
+ if (opt.format == FORMAT_DER) {
+ ret = mbedtls_x509write_crt_der(crt, output_buf, 4096,
+ f_rng, p_rng);
+ if (ret < 0) {
+ return ret;
+ }
len = ret;
output_start = output_buf + 4096 - len;
} else {
- ret = mbedtls_x509write_crt_pem( crt, output_buf, 4096,
- f_rng, p_rng );
- if( ret < 0 )
- return( ret );
+ ret = mbedtls_x509write_crt_pem(crt, output_buf, 4096,
+ f_rng, p_rng);
+ if (ret < 0) {
+ return ret;
+ }
- len = strlen( (char *) output_buf );
+ len = strlen((char *) output_buf);
output_start = output_buf;
}
- if( ( f = fopen( output_file, "w" ) ) == NULL )
- return( -1 );
-
- if( fwrite( output_start, 1, len, f ) != len )
- {
- fclose( f );
- return( -1 );
+ if ((f = fopen(output_file, "w")) == NULL) {
+ return -1;
}
- fclose( f );
+ if (fwrite(output_start, 1, len, f) != len) {
+ fclose(f);
+ return -1;
+ }
- return( 0 );
+ fclose(f);
+
+ return 0;
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
mbedtls_x509_crt issuer_crt;
mbedtls_pk_context loaded_issuer_key, loaded_subject_key;
mbedtls_pk_context *issuer_key = &loaded_issuer_key,
- *subject_key = &loaded_subject_key;
+ *subject_key = &loaded_subject_key;
char buf[1024];
char issuer_name[256];
int i;
@@ -261,22 +261,21 @@
/*
* Set to sane values
*/
- mbedtls_x509write_crt_init( &crt );
- mbedtls_pk_init( &loaded_issuer_key );
- mbedtls_pk_init( &loaded_subject_key );
- mbedtls_mpi_init( &serial );
- mbedtls_ctr_drbg_init( &ctr_drbg );
- mbedtls_entropy_init( &entropy );
+ mbedtls_x509write_crt_init(&crt);
+ mbedtls_pk_init(&loaded_issuer_key);
+ mbedtls_pk_init(&loaded_subject_key);
+ mbedtls_mpi_init(&serial);
+ mbedtls_ctr_drbg_init(&ctr_drbg);
+ mbedtls_entropy_init(&entropy);
#if defined(MBEDTLS_X509_CSR_PARSE_C)
- mbedtls_x509_csr_init( &csr );
+ mbedtls_x509_csr_init(&csr);
#endif
- mbedtls_x509_crt_init( &issuer_crt );
- memset( buf, 0, sizeof(buf) );
+ mbedtls_x509_crt_init(&issuer_crt);
+ memset(buf, 0, sizeof(buf));
- if( argc == 0 )
- {
- usage:
- mbedtls_printf( USAGE );
+ if (argc == 0) {
+usage:
+ mbedtls_printf(USAGE);
goto exit;
}
@@ -305,182 +304,143 @@
opt.basic_constraints = DFL_CONSTRAINTS;
opt.format = DFL_FORMAT;
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
+ if ((q = strchr(p, '=')) == NULL) {
goto usage;
+ }
*q++ = '\0';
- if( strcmp( p, "request_file" ) == 0 )
+ if (strcmp(p, "request_file") == 0) {
opt.request_file = q;
- else if( strcmp( p, "subject_key" ) == 0 )
+ } else if (strcmp(p, "subject_key") == 0) {
opt.subject_key = q;
- else if( strcmp( p, "issuer_key" ) == 0 )
+ } else if (strcmp(p, "issuer_key") == 0) {
opt.issuer_key = q;
- else if( strcmp( p, "subject_pwd" ) == 0 )
+ } else if (strcmp(p, "subject_pwd") == 0) {
opt.subject_pwd = q;
- else if( strcmp( p, "issuer_pwd" ) == 0 )
+ } else if (strcmp(p, "issuer_pwd") == 0) {
opt.issuer_pwd = q;
- else if( strcmp( p, "issuer_crt" ) == 0 )
+ } else if (strcmp(p, "issuer_crt") == 0) {
opt.issuer_crt = q;
- else if( strcmp( p, "output_file" ) == 0 )
+ } else if (strcmp(p, "output_file") == 0) {
opt.output_file = q;
- else if( strcmp( p, "subject_name" ) == 0 )
- {
+ } else if (strcmp(p, "subject_name") == 0) {
opt.subject_name = q;
- }
- else if( strcmp( p, "issuer_name" ) == 0 )
- {
+ } else if (strcmp(p, "issuer_name") == 0) {
opt.issuer_name = q;
- }
- else if( strcmp( p, "not_before" ) == 0 )
- {
+ } else if (strcmp(p, "not_before") == 0) {
opt.not_before = q;
- }
- else if( strcmp( p, "not_after" ) == 0 )
- {
+ } else if (strcmp(p, "not_after") == 0) {
opt.not_after = q;
- }
- else if( strcmp( p, "serial" ) == 0 )
- {
+ } else if (strcmp(p, "serial") == 0) {
opt.serial = q;
- }
- else if( strcmp( p, "authority_identifier" ) == 0 )
- {
- opt.authority_identifier = atoi( q );
- if( opt.authority_identifier != 0 &&
- opt.authority_identifier != 1 )
- {
- mbedtls_printf( "Invalid argument for option %s\n", p );
+ } else if (strcmp(p, "authority_identifier") == 0) {
+ opt.authority_identifier = atoi(q);
+ if (opt.authority_identifier != 0 &&
+ opt.authority_identifier != 1) {
+ mbedtls_printf("Invalid argument for option %s\n", p);
goto usage;
}
- }
- else if( strcmp( p, "subject_identifier" ) == 0 )
- {
- opt.subject_identifier = atoi( q );
- if( opt.subject_identifier != 0 &&
- opt.subject_identifier != 1 )
- {
- mbedtls_printf( "Invalid argument for option %s\n", p );
+ } else if (strcmp(p, "subject_identifier") == 0) {
+ opt.subject_identifier = atoi(q);
+ if (opt.subject_identifier != 0 &&
+ opt.subject_identifier != 1) {
+ mbedtls_printf("Invalid argument for option %s\n", p);
goto usage;
}
- }
- else if( strcmp( p, "basic_constraints" ) == 0 )
- {
- opt.basic_constraints = atoi( q );
- if( opt.basic_constraints != 0 &&
- opt.basic_constraints != 1 )
- {
- mbedtls_printf( "Invalid argument for option %s\n", p );
+ } else if (strcmp(p, "basic_constraints") == 0) {
+ opt.basic_constraints = atoi(q);
+ if (opt.basic_constraints != 0 &&
+ opt.basic_constraints != 1) {
+ mbedtls_printf("Invalid argument for option %s\n", p);
goto usage;
}
- }
- else if( strcmp( p, "md" ) == 0 )
- {
+ } else if (strcmp(p, "md") == 0) {
const mbedtls_md_info_t *md_info =
- mbedtls_md_info_from_string( q );
- if( md_info == NULL )
- {
- mbedtls_printf( "Invalid argument for option %s\n", p );
+ mbedtls_md_info_from_string(q);
+ if (md_info == NULL) {
+ mbedtls_printf("Invalid argument for option %s\n", p);
goto usage;
}
- opt.md = mbedtls_md_get_type( md_info );
- }
- else if( strcmp( p, "version" ) == 0 )
- {
- opt.version = atoi( q );
- if( opt.version < 1 || opt.version > 3 )
- {
- mbedtls_printf( "Invalid argument for option %s\n", p );
+ opt.md = mbedtls_md_get_type(md_info);
+ } else if (strcmp(p, "version") == 0) {
+ opt.version = atoi(q);
+ if (opt.version < 1 || opt.version > 3) {
+ mbedtls_printf("Invalid argument for option %s\n", p);
goto usage;
}
opt.version--;
- }
- else if( strcmp( p, "selfsign" ) == 0 )
- {
- opt.selfsign = atoi( q );
- if( opt.selfsign < 0 || opt.selfsign > 1 )
- {
- mbedtls_printf( "Invalid argument for option %s\n", p );
+ } else if (strcmp(p, "selfsign") == 0) {
+ opt.selfsign = atoi(q);
+ if (opt.selfsign < 0 || opt.selfsign > 1) {
+ mbedtls_printf("Invalid argument for option %s\n", p);
goto usage;
}
- }
- else if( strcmp( p, "is_ca" ) == 0 )
- {
- opt.is_ca = atoi( q );
- if( opt.is_ca < 0 || opt.is_ca > 1 )
- {
- mbedtls_printf( "Invalid argument for option %s\n", p );
+ } else if (strcmp(p, "is_ca") == 0) {
+ opt.is_ca = atoi(q);
+ if (opt.is_ca < 0 || opt.is_ca > 1) {
+ mbedtls_printf("Invalid argument for option %s\n", p);
goto usage;
}
- }
- else if( strcmp( p, "max_pathlen" ) == 0 )
- {
- opt.max_pathlen = atoi( q );
- if( opt.max_pathlen < -1 || opt.max_pathlen > 127 )
- {
- mbedtls_printf( "Invalid argument for option %s\n", p );
+ } else if (strcmp(p, "max_pathlen") == 0) {
+ opt.max_pathlen = atoi(q);
+ if (opt.max_pathlen < -1 || opt.max_pathlen > 127) {
+ mbedtls_printf("Invalid argument for option %s\n", p);
goto usage;
}
- }
- else if( strcmp( p, "key_usage" ) == 0 )
- {
- while( q != NULL )
- {
- if( ( r = strchr( q, ',' ) ) != NULL )
+ } else if (strcmp(p, "key_usage") == 0) {
+ while (q != NULL) {
+ if ((r = strchr(q, ',')) != NULL) {
*r++ = '\0';
+ }
- if( strcmp( q, "digital_signature" ) == 0 )
+ if (strcmp(q, "digital_signature") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_DIGITAL_SIGNATURE;
- else if( strcmp( q, "non_repudiation" ) == 0 )
+ } else if (strcmp(q, "non_repudiation") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_NON_REPUDIATION;
- else if( strcmp( q, "key_encipherment" ) == 0 )
+ } else if (strcmp(q, "key_encipherment") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_KEY_ENCIPHERMENT;
- else if( strcmp( q, "data_encipherment" ) == 0 )
+ } else if (strcmp(q, "data_encipherment") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_DATA_ENCIPHERMENT;
- else if( strcmp( q, "key_agreement" ) == 0 )
+ } else if (strcmp(q, "key_agreement") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_KEY_AGREEMENT;
- else if( strcmp( q, "key_cert_sign" ) == 0 )
+ } else if (strcmp(q, "key_cert_sign") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_KEY_CERT_SIGN;
- else if( strcmp( q, "crl_sign" ) == 0 )
+ } else if (strcmp(q, "crl_sign") == 0) {
opt.key_usage |= MBEDTLS_X509_KU_CRL_SIGN;
- else
- {
- mbedtls_printf( "Invalid argument for option %s\n", p );
+ } else {
+ mbedtls_printf("Invalid argument for option %s\n", p);
goto usage;
}
q = r;
}
- }
- else if( strcmp( p, "ext_key_usage" ) == 0 )
- {
+ } else if (strcmp(p, "ext_key_usage") == 0) {
mbedtls_asn1_sequence **tail = &opt.ext_key_usage;
- while( q != NULL )
- {
- if( ( r = strchr( q, ',' ) ) != NULL )
+ while (q != NULL) {
+ if ((r = strchr(q, ',')) != NULL) {
*r++ = '\0';
+ }
- ext_key_usage = mbedtls_calloc( 1, sizeof(mbedtls_asn1_sequence) );
+ ext_key_usage = mbedtls_calloc(1, sizeof(mbedtls_asn1_sequence));
ext_key_usage->buf.tag = MBEDTLS_ASN1_OID;
- if( strcmp( q, "serverAuth" ) == 0 )
- SET_OID( ext_key_usage->buf, MBEDTLS_OID_SERVER_AUTH );
- else if( strcmp( q, "clientAuth" ) == 0 )
- SET_OID( ext_key_usage->buf, MBEDTLS_OID_CLIENT_AUTH );
- else if( strcmp( q, "codeSigning" ) == 0 )
- SET_OID( ext_key_usage->buf, MBEDTLS_OID_CODE_SIGNING );
- else if( strcmp( q, "emailProtection" ) == 0 )
- SET_OID( ext_key_usage->buf, MBEDTLS_OID_EMAIL_PROTECTION );
- else if( strcmp( q, "timeStamping" ) == 0 )
- SET_OID( ext_key_usage->buf, MBEDTLS_OID_TIME_STAMPING );
- else if( strcmp( q, "OCSPSigning" ) == 0 )
- SET_OID( ext_key_usage->buf, MBEDTLS_OID_OCSP_SIGNING );
- else
- {
- mbedtls_printf( "Invalid argument for option %s\n", p );
+ if (strcmp(q, "serverAuth") == 0) {
+ SET_OID(ext_key_usage->buf, MBEDTLS_OID_SERVER_AUTH);
+ } else if (strcmp(q, "clientAuth") == 0) {
+ SET_OID(ext_key_usage->buf, MBEDTLS_OID_CLIENT_AUTH);
+ } else if (strcmp(q, "codeSigning") == 0) {
+ SET_OID(ext_key_usage->buf, MBEDTLS_OID_CODE_SIGNING);
+ } else if (strcmp(q, "emailProtection") == 0) {
+ SET_OID(ext_key_usage->buf, MBEDTLS_OID_EMAIL_PROTECTION);
+ } else if (strcmp(q, "timeStamping") == 0) {
+ SET_OID(ext_key_usage->buf, MBEDTLS_OID_TIME_STAMPING);
+ } else if (strcmp(q, "OCSPSigning") == 0) {
+ SET_OID(ext_key_usage->buf, MBEDTLS_OID_OCSP_SIGNING);
+ } else {
+ mbedtls_printf("Invalid argument for option %s\n", p);
goto usage;
}
@@ -489,49 +449,45 @@
q = r;
}
- }
- else if( strcmp( p, "ns_cert_type" ) == 0 )
- {
- while( q != NULL )
- {
- if( ( r = strchr( q, ',' ) ) != NULL )
+ } else if (strcmp(p, "ns_cert_type") == 0) {
+ while (q != NULL) {
+ if ((r = strchr(q, ',')) != NULL) {
*r++ = '\0';
+ }
- if( strcmp( q, "ssl_client" ) == 0 )
+ if (strcmp(q, "ssl_client") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT;
- else if( strcmp( q, "ssl_server" ) == 0 )
+ } else if (strcmp(q, "ssl_server") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER;
- else if( strcmp( q, "email" ) == 0 )
+ } else if (strcmp(q, "email") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_EMAIL;
- else if( strcmp( q, "object_signing" ) == 0 )
+ } else if (strcmp(q, "object_signing") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING;
- else if( strcmp( q, "ssl_ca" ) == 0 )
+ } else if (strcmp(q, "ssl_ca") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_CA;
- else if( strcmp( q, "email_ca" ) == 0 )
+ } else if (strcmp(q, "email_ca") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_EMAIL_CA;
- else if( strcmp( q, "object_signing_ca" ) == 0 )
+ } else if (strcmp(q, "object_signing_ca") == 0) {
opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING_CA;
- else
- {
- mbedtls_printf( "Invalid argument for option %s\n", p );
+ } else {
+ mbedtls_printf("Invalid argument for option %s\n", p);
goto usage;
}
q = r;
}
- }
- else if( strcmp( p, "format" ) == 0 )
- {
- if ( strcmp(q, "der" ) == 0 ) opt.format = FORMAT_DER;
- else if ( strcmp(q, "pem" ) == 0 ) opt.format = FORMAT_PEM;
- else
- {
- mbedtls_printf( "Invalid argument for option %s\n", p );
+ } else if (strcmp(p, "format") == 0) {
+ if (strcmp(q, "der") == 0) {
+ opt.format = FORMAT_DER;
+ } else if (strcmp(q, "pem") == 0) {
+ opt.format = FORMAT_PEM;
+ } else {
+ mbedtls_printf("Invalid argument for option %s\n", p);
goto usage;
}
- }
- else
+ } else {
goto usage;
+ }
}
mbedtls_printf("\n");
@@ -539,351 +495,323 @@
/*
* 0. Seed the PRNG
*/
- mbedtls_printf( " . Seeding the random number generator..." );
- fflush( stdout );
+ mbedtls_printf(" . Seeding the random number generator...");
+ fflush(stdout);
- if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy,
- (const unsigned char *) pers,
- strlen( pers ) ) ) != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d - %s\n",
- ret, buf );
+ if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
+ (const unsigned char *) pers,
+ strlen(pers))) != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d - %s\n",
+ ret, buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
// Parse serial to MPI
//
- mbedtls_printf( " . Reading serial number..." );
- fflush( stdout );
+ mbedtls_printf(" . Reading serial number...");
+ fflush(stdout);
- if( ( ret = mbedtls_mpi_read_string( &serial, 10, opt.serial ) ) != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_mpi_read_string "
- "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf );
+ if ((ret = mbedtls_mpi_read_string(&serial, 10, opt.serial)) != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_mpi_read_string "
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
// Parse issuer certificate if present
//
- if( !opt.selfsign && strlen( opt.issuer_crt ) )
- {
+ if (!opt.selfsign && strlen(opt.issuer_crt)) {
/*
* 1.0.a. Load the certificates
*/
- mbedtls_printf( " . Loading the issuer certificate ..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the issuer certificate ...");
+ fflush(stdout);
- if( ( ret = mbedtls_x509_crt_parse_file( &issuer_crt, opt.issuer_crt ) ) != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_file "
- "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf );
+ if ((ret = mbedtls_x509_crt_parse_file(&issuer_crt, opt.issuer_crt)) != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse_file "
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
- ret = mbedtls_x509_dn_gets( issuer_name, sizeof(issuer_name),
- &issuer_crt.subject );
- if( ret < 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_x509_dn_gets "
- "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf );
+ ret = mbedtls_x509_dn_gets(issuer_name, sizeof(issuer_name),
+ &issuer_crt.subject);
+ if (ret < 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_x509_dn_gets "
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
opt.issuer_name = issuer_name;
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
#if defined(MBEDTLS_X509_CSR_PARSE_C)
// Parse certificate request if present
//
- if( !opt.selfsign && strlen( opt.request_file ) )
- {
+ if (!opt.selfsign && strlen(opt.request_file)) {
/*
* 1.0.b. Load the CSR
*/
- mbedtls_printf( " . Loading the certificate request ..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the certificate request ...");
+ fflush(stdout);
- if( ( ret = mbedtls_x509_csr_parse_file( &csr, opt.request_file ) ) != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_x509_csr_parse_file "
- "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf );
+ if ((ret = mbedtls_x509_csr_parse_file(&csr, opt.request_file)) != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_x509_csr_parse_file "
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
- ret = mbedtls_x509_dn_gets( subject_name, sizeof(subject_name),
- &csr.subject );
- if( ret < 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_x509_dn_gets "
- "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf );
+ ret = mbedtls_x509_dn_gets(subject_name, sizeof(subject_name),
+ &csr.subject);
+ if (ret < 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_x509_dn_gets "
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
opt.subject_name = subject_name;
subject_key = &csr.pk;
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
#endif /* MBEDTLS_X509_CSR_PARSE_C */
/*
* 1.1. Load the keys
*/
- if( !opt.selfsign && !strlen( opt.request_file ) )
- {
- mbedtls_printf( " . Loading the subject key ..." );
- fflush( stdout );
+ if (!opt.selfsign && !strlen(opt.request_file)) {
+ mbedtls_printf(" . Loading the subject key ...");
+ fflush(stdout);
- ret = mbedtls_pk_parse_keyfile( &loaded_subject_key, opt.subject_key,
- opt.subject_pwd, mbedtls_ctr_drbg_random, &ctr_drbg );
- if( ret != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile "
- "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf );
+ ret = mbedtls_pk_parse_keyfile(&loaded_subject_key, opt.subject_key,
+ opt.subject_pwd, mbedtls_ctr_drbg_random, &ctr_drbg);
+ if (ret != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile "
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
- mbedtls_printf( " . Loading the issuer key ..." );
- fflush( stdout );
+ mbedtls_printf(" . Loading the issuer key ...");
+ fflush(stdout);
- ret = mbedtls_pk_parse_keyfile( &loaded_issuer_key, opt.issuer_key,
- opt.issuer_pwd, mbedtls_ctr_drbg_random, &ctr_drbg );
- if( ret != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile "
- "returned -x%02x - %s\n\n", (unsigned int) -ret, buf );
+ ret = mbedtls_pk_parse_keyfile(&loaded_issuer_key, opt.issuer_key,
+ opt.issuer_pwd, mbedtls_ctr_drbg_random, &ctr_drbg);
+ if (ret != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile "
+ "returned -x%02x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
// Check if key and issuer certificate match
//
- if( strlen( opt.issuer_crt ) )
- {
- if( mbedtls_pk_check_pair( &issuer_crt.pk, issuer_key,
- mbedtls_ctr_drbg_random, &ctr_drbg ) != 0 )
- {
- mbedtls_printf( " failed\n ! issuer_key does not match "
- "issuer certificate\n\n" );
+ if (strlen(opt.issuer_crt)) {
+ if (mbedtls_pk_check_pair(&issuer_crt.pk, issuer_key,
+ mbedtls_ctr_drbg_random, &ctr_drbg) != 0) {
+ mbedtls_printf(" failed\n ! issuer_key does not match "
+ "issuer certificate\n\n");
goto exit;
}
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
- if( opt.selfsign )
- {
+ if (opt.selfsign) {
opt.subject_name = opt.issuer_name;
subject_key = issuer_key;
}
- mbedtls_x509write_crt_set_subject_key( &crt, subject_key );
- mbedtls_x509write_crt_set_issuer_key( &crt, issuer_key );
+ mbedtls_x509write_crt_set_subject_key(&crt, subject_key);
+ mbedtls_x509write_crt_set_issuer_key(&crt, issuer_key);
/*
* 1.0. Check the names for validity
*/
- if( ( ret = mbedtls_x509write_crt_set_subject_name( &crt, opt.subject_name ) ) != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_subject_name "
- "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf );
+ if ((ret = mbedtls_x509write_crt_set_subject_name(&crt, opt.subject_name)) != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_subject_name "
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
- if( ( ret = mbedtls_x509write_crt_set_issuer_name( &crt, opt.issuer_name ) ) != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_issuer_name "
- "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf );
+ if ((ret = mbedtls_x509write_crt_set_issuer_name(&crt, opt.issuer_name)) != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_issuer_name "
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
- mbedtls_printf( " . Setting certificate values ..." );
- fflush( stdout );
+ mbedtls_printf(" . Setting certificate values ...");
+ fflush(stdout);
- mbedtls_x509write_crt_set_version( &crt, opt.version );
- mbedtls_x509write_crt_set_md_alg( &crt, opt.md );
+ mbedtls_x509write_crt_set_version(&crt, opt.version);
+ mbedtls_x509write_crt_set_md_alg(&crt, opt.md);
- ret = mbedtls_x509write_crt_set_serial( &crt, &serial );
- if( ret != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_serial "
- "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf );
+ ret = mbedtls_x509write_crt_set_serial(&crt, &serial);
+ if (ret != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_serial "
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
- ret = mbedtls_x509write_crt_set_validity( &crt, opt.not_before, opt.not_after );
- if( ret != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_validity "
- "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf );
+ ret = mbedtls_x509write_crt_set_validity(&crt, opt.not_before, opt.not_after);
+ if (ret != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_validity "
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
- if( opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
- opt.basic_constraints != 0 )
- {
- mbedtls_printf( " . Adding the Basic Constraints extension ..." );
- fflush( stdout );
+ if (opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
+ opt.basic_constraints != 0) {
+ mbedtls_printf(" . Adding the Basic Constraints extension ...");
+ fflush(stdout);
- ret = mbedtls_x509write_crt_set_basic_constraints( &crt, opt.is_ca,
- opt.max_pathlen );
- if( ret != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! x509write_crt_set_basic_constraints "
- "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf );
+ ret = mbedtls_x509write_crt_set_basic_constraints(&crt, opt.is_ca,
+ opt.max_pathlen);
+ if (ret != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! x509write_crt_set_basic_constraints "
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
#if defined(MBEDTLS_SHA1_C)
- if( opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
- opt.subject_identifier != 0 )
- {
- mbedtls_printf( " . Adding the Subject Key Identifier ..." );
- fflush( stdout );
+ if (opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
+ opt.subject_identifier != 0) {
+ mbedtls_printf(" . Adding the Subject Key Identifier ...");
+ fflush(stdout);
- ret = mbedtls_x509write_crt_set_subject_key_identifier( &crt );
- if( ret != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_subject"
- "_key_identifier returned -0x%04x - %s\n\n",
- (unsigned int) -ret, buf );
+ ret = mbedtls_x509write_crt_set_subject_key_identifier(&crt);
+ if (ret != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_subject"
+ "_key_identifier returned -0x%04x - %s\n\n",
+ (unsigned int) -ret, buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
- if( opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
- opt.authority_identifier != 0 )
- {
- mbedtls_printf( " . Adding the Authority Key Identifier ..." );
- fflush( stdout );
+ if (opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
+ opt.authority_identifier != 0) {
+ mbedtls_printf(" . Adding the Authority Key Identifier ...");
+ fflush(stdout);
- ret = mbedtls_x509write_crt_set_authority_key_identifier( &crt );
- if( ret != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_authority_"
- "key_identifier returned -0x%04x - %s\n\n",
- (unsigned int) -ret, buf );
+ ret = mbedtls_x509write_crt_set_authority_key_identifier(&crt);
+ if (ret != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_authority_"
+ "key_identifier returned -0x%04x - %s\n\n",
+ (unsigned int) -ret, buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
#endif /* MBEDTLS_SHA1_C */
- if( opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
- opt.key_usage != 0 )
- {
- mbedtls_printf( " . Adding the Key Usage extension ..." );
- fflush( stdout );
+ if (opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
+ opt.key_usage != 0) {
+ mbedtls_printf(" . Adding the Key Usage extension ...");
+ fflush(stdout);
- ret = mbedtls_x509write_crt_set_key_usage( &crt, opt.key_usage );
- if( ret != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_key_usage "
- "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf );
+ ret = mbedtls_x509write_crt_set_key_usage(&crt, opt.key_usage);
+ if (ret != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_key_usage "
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
- if( opt.ext_key_usage )
- {
- mbedtls_printf( " . Adding the Extended Key Usage extension ..." );
- fflush( stdout );
+ if (opt.ext_key_usage) {
+ mbedtls_printf(" . Adding the Extended Key Usage extension ...");
+ fflush(stdout);
- ret = mbedtls_x509write_crt_set_ext_key_usage( &crt, opt.ext_key_usage );
- if( ret != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ext_key_usage returned -0x%02x - %s\n\n", (unsigned int) -ret, buf );
+ ret = mbedtls_x509write_crt_set_ext_key_usage(&crt, opt.ext_key_usage);
+ if (ret != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(
+ " failed\n ! mbedtls_x509write_crt_set_ext_key_usage returned -0x%02x - %s\n\n",
+ (unsigned int) -ret,
+ buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
- if( opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
- opt.ns_cert_type != 0 )
- {
- mbedtls_printf( " . Adding the NS Cert Type extension ..." );
- fflush( stdout );
+ if (opt.version == MBEDTLS_X509_CRT_VERSION_3 &&
+ opt.ns_cert_type != 0) {
+ mbedtls_printf(" . Adding the NS Cert Type extension ...");
+ fflush(stdout);
- ret = mbedtls_x509write_crt_set_ns_cert_type( &crt, opt.ns_cert_type );
- if( ret != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ns_cert_type "
- "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf );
+ ret = mbedtls_x509write_crt_set_ns_cert_type(&crt, opt.ns_cert_type);
+ if (ret != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_ns_cert_type "
+ "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
}
/*
* 1.2. Writing the certificate
*/
- mbedtls_printf( " . Writing the certificate..." );
- fflush( stdout );
+ mbedtls_printf(" . Writing the certificate...");
+ fflush(stdout);
- if( ( ret = write_certificate( &crt, opt.output_file,
- mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
- {
- mbedtls_strerror( ret, buf, sizeof(buf) );
- mbedtls_printf( " failed\n ! write_certificate -0x%04x - %s\n\n",
- (unsigned int) -ret, buf );
+ if ((ret = write_certificate(&crt, opt.output_file,
+ mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) {
+ mbedtls_strerror(ret, buf, sizeof(buf));
+ mbedtls_printf(" failed\n ! write_certificate -0x%04x - %s\n\n",
+ (unsigned int) -ret, buf);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
#if defined(MBEDTLS_X509_CSR_PARSE_C)
- mbedtls_x509_csr_free( &csr );
+ mbedtls_x509_csr_free(&csr);
#endif /* MBEDTLS_X509_CSR_PARSE_C */
- mbedtls_x509_crt_free( &issuer_crt );
- mbedtls_x509write_crt_free( &crt );
- mbedtls_pk_free( &loaded_subject_key );
- mbedtls_pk_free( &loaded_issuer_key );
- mbedtls_mpi_free( &serial );
- mbedtls_ctr_drbg_free( &ctr_drbg );
- mbedtls_entropy_free( &entropy );
+ mbedtls_x509_crt_free(&issuer_crt);
+ mbedtls_x509write_crt_free(&crt);
+ mbedtls_pk_free(&loaded_subject_key);
+ mbedtls_pk_free(&loaded_issuer_key);
+ mbedtls_mpi_free(&serial);
+ mbedtls_ctr_drbg_free(&ctr_drbg);
+ mbedtls_entropy_free(&entropy);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_X509_CRT_WRITE_C && MBEDTLS_X509_CRT_PARSE_C &&
MBEDTLS_FS_IO && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C &&
diff --git a/programs/x509/crl_app.c b/programs/x509/crl_app.c
index 28cb99e..f06987c 100644
--- a/programs/x509/crl_app.c
+++ b/programs/x509/crl_app.c
@@ -24,12 +24,12 @@
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_X509_CRL_PARSE_C) || !defined(MBEDTLS_FS_IO) || \
defined(MBEDTLS_X509_REMOVE_INFO)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_X509_CRL_PARSE_C and/or MBEDTLS_FS_IO not defined and/or "
- "MBEDTLS_X509_REMOVE_INFO defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_X509_CRL_PARSE_C and/or MBEDTLS_FS_IO not defined and/or "
+ "MBEDTLS_X509_REMOVE_INFO defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -52,12 +52,11 @@
/*
* global options
*/
-struct options
-{
+struct options {
const char *filename; /* filename of the certificate file */
} opt;
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -69,67 +68,65 @@
/*
* Set to sane values
*/
- mbedtls_x509_crl_init( &crl );
+ mbedtls_x509_crl_init(&crl);
- if( argc == 0 )
- {
- usage:
- mbedtls_printf( USAGE );
+ if (argc == 0) {
+usage:
+ mbedtls_printf(USAGE);
goto exit;
}
opt.filename = DFL_FILENAME;
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
+ if ((q = strchr(p, '=')) == NULL) {
goto usage;
+ }
*q++ = '\0';
- if( strcmp( p, "filename" ) == 0 )
+ if (strcmp(p, "filename") == 0) {
opt.filename = q;
- else
+ } else {
goto usage;
+ }
}
/*
* 1.1. Load the CRL
*/
- mbedtls_printf( "\n . Loading the CRL ..." );
- fflush( stdout );
+ mbedtls_printf("\n . Loading the CRL ...");
+ fflush(stdout);
- ret = mbedtls_x509_crl_parse_file( &crl, opt.filename );
+ ret = mbedtls_x509_crl_parse_file(&crl, opt.filename);
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crl_parse_file returned %d\n\n", ret );
- mbedtls_x509_crl_free( &crl );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crl_parse_file returned %d\n\n", ret);
+ mbedtls_x509_crl_free(&crl);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1.2 Print the CRL
*/
- mbedtls_printf( " . CRL information ...\n" );
- ret = mbedtls_x509_crl_info( (char *) buf, sizeof( buf ) - 1, " ", &crl );
- if( ret == -1 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_crl_info returned %d\n\n", ret );
- mbedtls_x509_crl_free( &crl );
+ mbedtls_printf(" . CRL information ...\n");
+ ret = mbedtls_x509_crl_info((char *) buf, sizeof(buf) - 1, " ", &crl);
+ if (ret == -1) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_crl_info returned %d\n\n", ret);
+ mbedtls_x509_crl_free(&crl);
goto exit;
}
- mbedtls_printf( "%s\n", buf );
+ mbedtls_printf("%s\n", buf);
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_x509_crl_free( &crl );
+ mbedtls_x509_crl_free(&crl);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_X509_CRL_PARSE_C &&
MBEDTLS_FS_IO */
diff --git a/programs/x509/load_roots.c b/programs/x509/load_roots.c
index b8b0ecd..237bd7c 100644
--- a/programs/x509/load_roots.c
+++ b/programs/x509/load_roots.c
@@ -50,11 +50,11 @@
#if !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_FS_IO) || \
!defined(MBEDTLS_TIMING_C)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_FS_IO and/or "
- "MBEDTLS_TIMING_C not defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_TIMING_C not defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -80,55 +80,51 @@
/*
* global options
*/
-struct options
-{
+struct options {
const char **filenames; /* NULL-terminated list of file names */
unsigned iterations; /* Number of iterations to time */
int prime_cache; /* Prime the disk read cache? */
} opt;
-int read_certificates( const char *const *filenames )
+int read_certificates(const char *const *filenames)
{
mbedtls_x509_crt cas;
int ret = 0;
const char *const *cur;
- mbedtls_x509_crt_init( &cas );
+ mbedtls_x509_crt_init(&cas);
- for( cur = filenames; *cur != NULL; cur++ )
- {
- ret = mbedtls_x509_crt_parse_file( &cas, *cur );
- if( ret != 0 )
- {
+ for (cur = filenames; *cur != NULL; cur++) {
+ ret = mbedtls_x509_crt_parse_file(&cas, *cur);
+ if (ret != 0) {
#if defined(MBEDTLS_ERROR_C) || defined(MBEDTLS_ERROR_STRERROR_DUMMY)
char error_message[200];
- mbedtls_strerror( ret, error_message, sizeof( error_message ) );
- printf( "\n%s: -0x%04x (%s)\n",
- *cur, (unsigned) -ret, error_message );
+ mbedtls_strerror(ret, error_message, sizeof(error_message));
+ printf("\n%s: -0x%04x (%s)\n",
+ *cur, (unsigned) -ret, error_message);
#else
- printf( "\n%s: -0x%04x\n",
- *cur, (unsigned) -ret );
+ printf("\n%s: -0x%04x\n",
+ *cur, (unsigned) -ret);
#endif
goto exit;
}
}
exit:
- mbedtls_x509_crt_free( &cas );
- return( ret == 0 );
+ mbedtls_x509_crt_free(&cas);
+ return ret == 0;
}
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int exit_code = MBEDTLS_EXIT_FAILURE;
unsigned i, j;
struct mbedtls_timing_hr_time timer;
unsigned long ms;
- if( argc <= 1 )
- {
- mbedtls_printf( USAGE );
+ if (argc <= 1) {
+ mbedtls_printf(USAGE);
goto exit;
}
@@ -136,66 +132,61 @@
opt.iterations = DFL_ITERATIONS;
opt.prime_cache = DFL_PRIME_CACHE;
- for( i = 1; i < (unsigned) argc; i++ )
- {
+ for (i = 1; i < (unsigned) argc; i++) {
char *p = argv[i];
char *q = NULL;
- if( strcmp( p, "--" ) == 0 )
+ if (strcmp(p, "--") == 0) {
break;
- if( ( q = strchr( p, '=' ) ) == NULL )
+ }
+ if ((q = strchr(p, '=')) == NULL) {
break;
+ }
*q++ = '\0';
- for( j = 0; p + j < q; j++ )
- {
- if( argv[i][j] >= 'A' && argv[i][j] <= 'Z' )
+ for (j = 0; p + j < q; j++) {
+ if (argv[i][j] >= 'A' && argv[i][j] <= 'Z') {
argv[i][j] |= 0x20;
+ }
}
- if( strcmp( p, "iterations" ) == 0 )
- {
- opt.iterations = atoi( q );
- }
- else if( strcmp( p, "prime" ) == 0 )
- {
- opt.iterations = atoi( q ) != 0;
- }
- else
- {
- mbedtls_printf( "Unknown option: %s\n", p );
- mbedtls_printf( USAGE );
+ if (strcmp(p, "iterations") == 0) {
+ opt.iterations = atoi(q);
+ } else if (strcmp(p, "prime") == 0) {
+ opt.iterations = atoi(q) != 0;
+ } else {
+ mbedtls_printf("Unknown option: %s\n", p);
+ mbedtls_printf(USAGE);
goto exit;
}
}
- opt.filenames = (const char**) argv + i;
- if( *opt.filenames == 0 )
- {
- mbedtls_printf( "Missing list of certificate files to parse\n" );
+ opt.filenames = (const char **) argv + i;
+ if (*opt.filenames == 0) {
+ mbedtls_printf("Missing list of certificate files to parse\n");
goto exit;
}
- mbedtls_printf( "Parsing %u certificates", argc - i );
- if( opt.prime_cache )
- {
- if( ! read_certificates( opt.filenames ) )
+ mbedtls_printf("Parsing %u certificates", argc - i);
+ if (opt.prime_cache) {
+ if (!read_certificates(opt.filenames)) {
goto exit;
- mbedtls_printf( " " );
+ }
+ mbedtls_printf(" ");
}
- (void) mbedtls_timing_get_timer( &timer, 1 );
- for( i = 1; i <= opt.iterations; i++ )
- {
- if( ! read_certificates( opt.filenames ) )
+ (void) mbedtls_timing_get_timer(&timer, 1);
+ for (i = 1; i <= opt.iterations; i++) {
+ if (!read_certificates(opt.filenames)) {
goto exit;
- mbedtls_printf( "." );
+ }
+ mbedtls_printf(".");
}
- ms = mbedtls_timing_get_timer( &timer, 0 );
- mbedtls_printf( "\n%u iterations -> %lu ms\n", opt.iterations, ms );
+ ms = mbedtls_timing_get_timer(&timer, 0);
+ mbedtls_printf("\n%u iterations -> %lu ms\n", opt.iterations, ms);
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* necessary configuration */
diff --git a/programs/x509/req_app.c b/programs/x509/req_app.c
index dda14e1..8cfe4a4 100644
--- a/programs/x509/req_app.c
+++ b/programs/x509/req_app.c
@@ -24,12 +24,12 @@
#if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \
!defined(MBEDTLS_X509_CSR_PARSE_C) || !defined(MBEDTLS_FS_IO) || \
defined(MBEDTLS_X509_REMOVE_INFO)
-int main( void )
+int main(void)
{
mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_RSA_C and/or "
- "MBEDTLS_X509_CSR_PARSE_C and/or MBEDTLS_FS_IO not defined and/or "
- "MBEDTLS_X509_REMOVE_INFO defined.\n");
- mbedtls_exit( 0 );
+ "MBEDTLS_X509_CSR_PARSE_C and/or MBEDTLS_FS_IO not defined and/or "
+ "MBEDTLS_X509_REMOVE_INFO defined.\n");
+ mbedtls_exit(0);
}
#else
@@ -52,12 +52,11 @@
/*
* global options
*/
-struct options
-{
+struct options {
const char *filename; /* filename of the certificate request */
} opt;
-int main( int argc, char *argv[] )
+int main(int argc, char *argv[])
{
int ret = 1;
int exit_code = MBEDTLS_EXIT_FAILURE;
@@ -69,67 +68,65 @@
/*
* Set to sane values
*/
- mbedtls_x509_csr_init( &csr );
+ mbedtls_x509_csr_init(&csr);
- if( argc == 0 )
- {
- usage:
- mbedtls_printf( USAGE );
+ if (argc == 0) {
+usage:
+ mbedtls_printf(USAGE);
goto exit;
}
opt.filename = DFL_FILENAME;
- for( i = 1; i < argc; i++ )
- {
+ for (i = 1; i < argc; i++) {
p = argv[i];
- if( ( q = strchr( p, '=' ) ) == NULL )
+ if ((q = strchr(p, '=')) == NULL) {
goto usage;
+ }
*q++ = '\0';
- if( strcmp( p, "filename" ) == 0 )
+ if (strcmp(p, "filename") == 0) {
opt.filename = q;
- else
+ } else {
goto usage;
+ }
}
/*
* 1.1. Load the CSR
*/
- mbedtls_printf( "\n . Loading the CSR ..." );
- fflush( stdout );
+ mbedtls_printf("\n . Loading the CSR ...");
+ fflush(stdout);
- ret = mbedtls_x509_csr_parse_file( &csr, opt.filename );
+ ret = mbedtls_x509_csr_parse_file(&csr, opt.filename);
- if( ret != 0 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_csr_parse_file returned %d\n\n", ret );
- mbedtls_x509_csr_free( &csr );
+ if (ret != 0) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_csr_parse_file returned %d\n\n", ret);
+ mbedtls_x509_csr_free(&csr);
goto exit;
}
- mbedtls_printf( " ok\n" );
+ mbedtls_printf(" ok\n");
/*
* 1.2 Print the CSR
*/
- mbedtls_printf( " . CSR information ...\n" );
- ret = mbedtls_x509_csr_info( (char *) buf, sizeof( buf ) - 1, " ", &csr );
- if( ret == -1 )
- {
- mbedtls_printf( " failed\n ! mbedtls_x509_csr_info returned %d\n\n", ret );
- mbedtls_x509_csr_free( &csr );
+ mbedtls_printf(" . CSR information ...\n");
+ ret = mbedtls_x509_csr_info((char *) buf, sizeof(buf) - 1, " ", &csr);
+ if (ret == -1) {
+ mbedtls_printf(" failed\n ! mbedtls_x509_csr_info returned %d\n\n", ret);
+ mbedtls_x509_csr_free(&csr);
goto exit;
}
- mbedtls_printf( "%s\n", buf );
+ mbedtls_printf("%s\n", buf);
exit_code = MBEDTLS_EXIT_SUCCESS;
exit:
- mbedtls_x509_csr_free( &csr );
+ mbedtls_x509_csr_free(&csr);
- mbedtls_exit( exit_code );
+ mbedtls_exit(exit_code);
}
#endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_X509_CSR_PARSE_C &&
MBEDTLS_FS_IO */