Merge remote-tracking branch 'rich/platform' into development
* rich/platform:
modify library/memory_buffer_alloc.c, benchmark.c and the tests main code to use polarssl_exit
modify programs/*.c to use polarssl_snprintf
diff --git a/.travis.yml b/.travis.yml
index 7f100c3..0a51e7e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,7 +3,7 @@
- clang
- gcc
before_install: sudo apt-get update
-install: sudo apt-get install gnutls-bin valgrind perl
+install: sudo apt-get install valgrind perl
script:
- cmake -D CMAKE_BUILD_TYPE:String="Check" .
- make
diff --git a/ChangeLog b/ChangeLog
index 5d44eb1..790126c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,11 +9,15 @@
the platform layer.
* Add an option to use macros instead of function pointers in the platform
layer (helps get rid of unwanted references).
+ * Improved Makefiles for Windows targets by fixing library targets and making
+ cross-compilation easier (thanks to Alon Bar-Lev).
Bugfix
* Fix hardclock() (only used in the benchmarking program) with some
versions of mingw64 (found by kxjhlele).
* Fix warnings from mingw64 in timing.c (found by kxjklele).
+ * Fix potential unintended sign extension in asn1_get_len() on 64-bit
+ platforms.
Changes
* Move from SHA-1 to SHA-256 in example programs using signatures
@@ -22,9 +26,6 @@
"minimize" others (eg use stddef.h if only size_t is needed).
* Change #include lines in test files to use double quotes instead of angle
brackets for uniformity with the rest of the code.
- * Building with 'make' on windows now requires Unix utilities in the PATH
- as well as a Unix shell. This enables more features such as the 'check'
- target.
* Remove dependency on sscanf() in X.509 parsing modules.
= mbed TLS 1.3.10 released 2015-02-09
diff --git a/README.rst b/README.rst
index 5275e1b..14f725d 100644
--- a/README.rst
+++ b/README.rst
@@ -35,11 +35,7 @@
make check
-If you're building on windows using mingw, msys, or some similar environment, you should define the WINDOWS variable (and possibly the CC variable too), eg::
-
- make CC=gcc WINDOWS=1
-
-You need to make sure the usual Unix utilities such as `ln` and `rm` are in your PATH and that make has access to a Unix shell.
+In order to build for a Windows platform, you should use WINDOWS_BUILD=1 if the target is Windows but the build environment is Unix-like (eg when cross-compiling, or compiling from an MSYS shell), and WINDOWS=1 if the build environment is a Windows shell.
Depending on your platform, you might run into some issues. Please check the Makefiles in *library/*, *programs/* and *tests/* for options to manually add or remove for specific platforms. You can also check `the mbed TLS Knowledge Base <https://polarssl.org/kb>`_ for articles on your platform or issue.
diff --git a/library/Makefile b/library/Makefile
index f2e553f..1580bad 100644
--- a/library/Makefile
+++ b/library/Makefile
@@ -25,14 +25,22 @@
endif
endif
-SOVERSION=8
+SOEXT=so.8
-DLEXT=so.$(SOVERSION)
+DLEXT=so
# OSX shared library extension:
# DLEXT=dylib
-# Windows shared library extension:
+#
+# if we running on Windows build
+# for Windows
+#
ifdef WINDOWS
+WINDOWS_BUILD=1
+endif
+
+# Windows shared library extension:
+ifdef WINDOWS_BUILD
DLEXT=dll
LDFLAGS += -lws2_32
endif
@@ -76,11 +84,15 @@
static: libpolarssl.a
-shared: libpolarssl.so
+shared: libpolarssl.$(DLEXT)
libpolarssl.a: libmbedtls.a
echo " LN $@ -> $?"
+ifndef WINDOWS
ln -sf $? $@
+else
+ copy /y /b $? $@
+endif
libmbedtls.a: $(OBJS)
echo " AR $@"
@@ -88,29 +100,45 @@
echo " RL $@"
$(AR) s $@
-libpolarssl.so: libmbedtls.so
+libpolarssl.$(DLEXT): libmbedtls.$(DLEXT)
echo " LN $@ -> $?"
+ifndef WINDOWS
ln -sf $? $@
+else
+ copy /y /b $? $@
+endif
+ifdef WINDOWS_BUILD
+ifndef WINDOWS
+ ln -sf $?.a $@.a
+else
+ copy /y /b $?.a $@.a
+endif
+endif
-libmbedtls.so: libmbedtls.${DLEXT}
- echo " LN $@ -> libmbedtls.${DLEXT}"
- ln -sf libmbedtls.${DLEXT} $@
-
-libmbedtls.so.$(SOVERSION): $(OBJS)
+libmbedtls.$(SOEXT): $(OBJS)
echo " LD $@"
$(CC) ${LDFLAGS} -shared -Wl,-soname,$@ -o $@ $(OBJS)
+libmbedtls.so: libmbedtls.$(SOEXT)
+ echo " LN $@ -> libmbedtls.$(SOEXT)"
+ ln -sf libmbedtls.$(SOEXT) $@
+
libmbedtls.dylib: $(OBJS)
echo " LD $@"
$(CC) ${LDFLAGS} -dynamiclib -o $@ $(OBJS)
libmbedtls.dll: $(OBJS)
echo " LD $@"
- $(CC) -shared -Wl,-soname,$@ -o $@ $(OBJS) -lws2_32 -lwinmm -lgdi32
+ $(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS) -lws2_32 -lwinmm -lgdi32
.c.o:
echo " CC $<"
$(CC) $(CFLAGS) $(OFLAGS) -c $<
clean:
+ifndef WINDOWS
rm -f *.o libpolarssl.* libmbedtls.*
+endif
+ifdef WINDOWS
+ del /Q /F *.o libpolarssl.* libmbedtls.*
+endif
diff --git a/library/asn1parse.c b/library/asn1parse.c
index 6782140..2cfd129 100644
--- a/library/asn1parse.c
+++ b/library/asn1parse.c
@@ -77,7 +77,7 @@
if( ( end - *p ) < 3 )
return( POLARSSL_ERR_ASN1_OUT_OF_DATA );
- *len = ( (*p)[1] << 8 ) | (*p)[2];
+ *len = ( (size_t)(*p)[1] << 8 ) | (*p)[2];
(*p) += 3;
break;
@@ -85,7 +85,8 @@
if( ( end - *p ) < 4 )
return( POLARSSL_ERR_ASN1_OUT_OF_DATA );
- *len = ( (*p)[1] << 16 ) | ( (*p)[2] << 8 ) | (*p)[3];
+ *len = ( (size_t)(*p)[1] << 16 ) |
+ ( (size_t)(*p)[2] << 8 ) | (*p)[3];
(*p) += 4;
break;
@@ -93,8 +94,8 @@
if( ( end - *p ) < 5 )
return( POLARSSL_ERR_ASN1_OUT_OF_DATA );
- *len = ( (*p)[1] << 24 ) | ( (*p)[2] << 16 ) | ( (*p)[3] << 8 ) |
- (*p)[4];
+ *len = ( (size_t)(*p)[1] << 24 ) | ( (size_t)(*p)[2] << 16 ) |
+ ( (size_t)(*p)[3] << 8 ) | (*p)[4];
(*p) += 5;
break;
@@ -269,8 +270,7 @@
/* Allocate and assign next pointer */
if( *p < end )
{
- cur->next = (asn1_sequence *) polarssl_malloc(
- sizeof( asn1_sequence ) );
+ cur->next = polarssl_malloc( sizeof( asn1_sequence ) );
if( cur->next == NULL )
return( POLARSSL_ERR_ASN1_MALLOC_FAILED );
diff --git a/library/bignum.c b/library/bignum.c
index e2cb92e..91c7963 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -109,7 +109,7 @@
if( X->n < nblimbs )
{
- if( ( p = (t_uint *) polarssl_malloc( nblimbs * ciL ) ) == NULL )
+ if( ( p = polarssl_malloc( nblimbs * ciL ) ) == NULL )
return( POLARSSL_ERR_MPI_MALLOC_FAILED );
memset( p, 0, nblimbs * ciL );
@@ -149,7 +149,7 @@
if( i < nblimbs )
i = nblimbs;
- if( ( p = (t_uint *) polarssl_malloc( i * ciL ) ) == NULL )
+ if( ( p = polarssl_malloc( i * ciL ) ) == NULL )
return( POLARSSL_ERR_MPI_MALLOC_FAILED );
memset( p, 0, i * ciL );
diff --git a/library/cipher_wrap.c b/library/cipher_wrap.c
index 736c292..c958cf6 100644
--- a/library/cipher_wrap.c
+++ b/library/cipher_wrap.c
@@ -182,7 +182,7 @@
static void * aes_ctx_alloc( void )
{
- aes_context *aes = (aes_context *) polarssl_malloc( sizeof( aes_context ) );
+ aes_context *aes = polarssl_malloc( sizeof( aes_context ) );
if( aes == NULL )
return( NULL );
@@ -544,7 +544,7 @@
static void * camellia_ctx_alloc( void )
{
camellia_context *ctx;
- ctx = (camellia_context *) polarssl_malloc( sizeof( camellia_context ) );
+ ctx = polarssl_malloc( sizeof( camellia_context ) );
if( ctx == NULL )
return( NULL );
@@ -925,7 +925,7 @@
static void * des_ctx_alloc( void )
{
- des_context *des = (des_context *) polarssl_malloc( sizeof( des_context ) );
+ des_context *des = polarssl_malloc( sizeof( des_context ) );
if( des == NULL )
return( NULL );
@@ -944,7 +944,7 @@
static void * des3_ctx_alloc( void )
{
des3_context *des3;
- des3 = (des3_context *) polarssl_malloc( sizeof( des3_context ) );
+ des3 = polarssl_malloc( sizeof( des3_context ) );
if( des3 == NULL )
return( NULL );
@@ -1148,7 +1148,7 @@
static void * blowfish_ctx_alloc( void )
{
blowfish_context *ctx;
- ctx = (blowfish_context *) polarssl_malloc( sizeof( blowfish_context ) );
+ ctx = polarssl_malloc( sizeof( blowfish_context ) );
if( ctx == NULL )
return( NULL );
@@ -1250,7 +1250,7 @@
static void * arc4_ctx_alloc( void )
{
arc4_context *ctx;
- ctx = (arc4_context *) polarssl_malloc( sizeof( arc4_context ) );
+ ctx = polarssl_malloc( sizeof( arc4_context ) );
if( ctx == NULL )
return( NULL );
diff --git a/library/dhm.c b/library/dhm.c
index 5861f94..a7b275f 100644
--- a/library/dhm.c
+++ b/library/dhm.c
@@ -507,7 +507,7 @@
*n = (size_t) size;
if( *n + 1 == 0 ||
- ( *buf = (unsigned char *) polarssl_malloc( *n + 1 ) ) == NULL )
+ ( *buf = polarssl_malloc( *n + 1 ) ) == NULL )
{
fclose( f );
return( POLARSSL_ERR_DHM_MALLOC_FAILED );
diff --git a/library/ecp.c b/library/ecp.c
index 1bb8dfe..298c964 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -813,7 +813,7 @@
if( t_len < 2 )
return( ecp_normalize_jac( grp, *T ) );
- if( ( c = (mpi *) polarssl_malloc( t_len * sizeof( mpi ) ) ) == NULL )
+ if( ( c = polarssl_malloc( t_len * sizeof( mpi ) ) ) == NULL )
return( POLARSSL_ERR_ECP_MALLOC_FAILED );
mpi_init( &u ); mpi_init( &Zi ); mpi_init( &ZZi );
@@ -1416,7 +1416,7 @@
if( T == NULL )
{
- T = (ecp_point *) polarssl_malloc( pre_len * sizeof( ecp_point ) );
+ T = polarssl_malloc( pre_len * sizeof( ecp_point ) );
if( T == NULL )
{
ret = POLARSSL_ERR_ECP_MALLOC_FAILED;
diff --git a/library/gcm.c b/library/gcm.c
index 39cb189..522a8b1 100644
--- a/library/gcm.c
+++ b/library/gcm.c
@@ -136,7 +136,7 @@
ctx->HH[i] = vh;
}
- for( i = 2; i < 16; i <<= 1 )
+ for( i = 2; i <= 8; i *= 2 )
{
uint64_t *HiL = ctx->HL + i, *HiH = ctx->HH + i;
vh = *HiH;
diff --git a/library/md5.c b/library/md5.c
index 9c5d73a..b68bd4b 100644
--- a/library/md5.c
+++ b/library/md5.c
@@ -580,7 +580,7 @@
if( i == 5 || i == 6 )
{
- memset( buf, '\xAA', buflen = 80 );
+ memset( buf, 0xAA, buflen = 80 );
md5_hmac_starts( &ctx, buf, buflen );
}
else
diff --git a/library/md_wrap.c b/library/md_wrap.c
index 9554373..ed5a63e 100644
--- a/library/md_wrap.c
+++ b/library/md_wrap.c
@@ -395,7 +395,7 @@
static void * ripemd160_ctx_alloc( void )
{
ripemd160_context *ctx;
- ctx = (ripemd160_context *) polarssl_malloc( sizeof( ripemd160_context ) );
+ ctx = polarssl_malloc( sizeof( ripemd160_context ) );
if( ctx == NULL )
return( NULL );
@@ -491,7 +491,7 @@
static void * sha1_ctx_alloc( void )
{
sha1_context *ctx;
- ctx = (sha1_context *) polarssl_malloc( sizeof( sha1_context ) );
+ ctx = polarssl_malloc( sizeof( sha1_context ) );
if( ctx == NULL )
return( NULL );
@@ -700,7 +700,7 @@
static void * sha256_ctx_alloc( void )
{
sha256_context *ctx;
- ctx = (sha256_context *) polarssl_malloc( sizeof( sha256_context ) );
+ ctx = polarssl_malloc( sizeof( sha256_context ) );
if( ctx == NULL )
return( NULL );
@@ -906,7 +906,7 @@
static void * sha512_ctx_alloc( void )
{
sha512_context *ctx;
- ctx = (sha512_context *) polarssl_malloc( sizeof( sha512_context ) );
+ ctx = polarssl_malloc( sizeof( sha512_context ) );
if( ctx == NULL )
return( NULL );
diff --git a/library/pem.c b/library/pem.c
index b5e8eee..d850d40 100644
--- a/library/pem.c
+++ b/library/pem.c
@@ -321,7 +321,7 @@
if( ret == POLARSSL_ERR_BASE64_INVALID_CHARACTER )
return( POLARSSL_ERR_PEM_INVALID_DATA + ret );
- if( ( buf = (unsigned char *) polarssl_malloc( len ) ) == NULL )
+ if( ( buf = polarssl_malloc( len ) ) == NULL )
return( POLARSSL_ERR_PEM_MALLOC_FAILED );
if( ( ret = base64_decode( buf, &len, s1, s2 - s1 ) ) != 0 )
diff --git a/library/pkparse.c b/library/pkparse.c
index 4ca359a..d8ee64a 100644
--- a/library/pkparse.c
+++ b/library/pkparse.c
@@ -89,7 +89,7 @@
*n = (size_t) size;
if( *n + 1 == 0 ||
- ( *buf = (unsigned char *) polarssl_malloc( *n + 1 ) ) == NULL )
+ ( *buf = polarssl_malloc( *n + 1 ) ) == NULL )
{
fclose( f );
return( POLARSSL_ERR_PK_MALLOC_FAILED );
diff --git a/library/sha1.c b/library/sha1.c
index c477e9a..604f8ee 100644
--- a/library/sha1.c
+++ b/library/sha1.c
@@ -622,7 +622,7 @@
if( i == 5 || i == 6 )
{
- memset( buf, '\xAA', buflen = 80 );
+ memset( buf, 0xAA, buflen = 80 );
sha1_hmac_starts( &ctx, buf, buflen );
}
else
diff --git a/library/sha256.c b/library/sha256.c
index dedc6b8..39444bc 100644
--- a/library/sha256.c
+++ b/library/sha256.c
@@ -703,7 +703,7 @@
if( j == 5 || j == 6 )
{
- memset( buf, '\xAA', buflen = 131 );
+ memset( buf, 0xAA, buflen = 131 );
sha256_hmac_starts( &ctx, buf, buflen, k );
}
else
diff --git a/library/sha512.c b/library/sha512.c
index ed044ed..5decc8f 100644
--- a/library/sha512.c
+++ b/library/sha512.c
@@ -757,7 +757,7 @@
if( j == 5 || j == 6 )
{
- memset( buf, '\xAA', buflen = 131 );
+ memset( buf, 0xAA, buflen = 131 );
sha512_hmac_starts( &ctx, buf, buflen, k );
}
else
diff --git a/library/ssl_cache.c b/library/ssl_cache.c
index 30da95a..7fb3089 100644
--- a/library/ssl_cache.c
+++ b/library/ssl_cache.c
@@ -103,7 +103,7 @@
*/
if( entry->peer_cert.p != NULL )
{
- if( ( session->peer_cert = (x509_crt *) polarssl_malloc(
+ if( ( session->peer_cert = polarssl_malloc(
sizeof(x509_crt) ) ) == NULL )
{
ret = 1;
@@ -222,7 +222,7 @@
/*
* max_entries not reached, create new entry
*/
- cur = (ssl_cache_entry *) polarssl_malloc( sizeof(ssl_cache_entry) );
+ cur = polarssl_malloc( sizeof(ssl_cache_entry) );
if( cur == NULL )
{
ret = 1;
@@ -259,8 +259,7 @@
*/
if( session->peer_cert != NULL )
{
- cur->peer_cert.p = (unsigned char *) polarssl_malloc(
- session->peer_cert->raw.len );
+ cur->peer_cert.p = polarssl_malloc( session->peer_cert->raw.len );
if( cur->peer_cert.p == NULL )
{
ret = 1;
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 2df8134..c0fc3a2 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -93,7 +93,7 @@
{
int ret;
- dst->peer_cert = (x509_crt *) polarssl_malloc( sizeof(x509_crt) );
+ dst->peer_cert = polarssl_malloc( sizeof(x509_crt) );
if( dst->peer_cert == NULL )
return( POLARSSL_ERR_SSL_MALLOC_FAILED );
@@ -112,7 +112,7 @@
#if defined(POLARSSL_SSL_SESSION_TICKETS)
if( src->ticket != NULL )
{
- dst->ticket = (unsigned char *) polarssl_malloc( src->ticket_len );
+ dst->ticket = polarssl_malloc( src->ticket_len );
if( dst->ticket == NULL )
return( POLARSSL_ERR_SSL_MALLOC_FAILED );
@@ -2748,7 +2748,7 @@
polarssl_free( ssl->session_negotiate->peer_cert );
}
- if( ( ssl->session_negotiate->peer_cert = (x509_crt *) polarssl_malloc(
+ if( ( ssl->session_negotiate->peer_cert = polarssl_malloc(
sizeof( x509_crt ) ) ) == NULL )
{
SSL_DEBUG_MSG( 1, ( "malloc(%d bytes) failed",
@@ -3545,20 +3545,17 @@
*/
if( ssl->transform_negotiate == NULL )
{
- ssl->transform_negotiate = (ssl_transform *) polarssl_malloc(
- sizeof(ssl_transform) );
+ ssl->transform_negotiate = polarssl_malloc( sizeof(ssl_transform) );
}
if( ssl->session_negotiate == NULL )
{
- ssl->session_negotiate = (ssl_session *) polarssl_malloc(
- sizeof(ssl_session) );
+ ssl->session_negotiate = polarssl_malloc( sizeof(ssl_session) );
}
if( ssl->handshake == NULL )
{
- ssl->handshake = (ssl_handshake_params *)
- polarssl_malloc( sizeof(ssl_handshake_params) );
+ ssl->handshake = polarssl_malloc( sizeof(ssl_handshake_params) );
}
/* All pointers should exist and can be directly freed without issue */
@@ -3631,7 +3628,7 @@
/*
* Prepare base structures
*/
- ssl->in_ctr = (unsigned char *) polarssl_malloc( len );
+ ssl->in_ctr = polarssl_malloc( len );
ssl->in_hdr = ssl->in_ctr + 8;
ssl->in_iv = ssl->in_ctr + 13;
ssl->in_msg = ssl->in_ctr + 13;
@@ -3642,7 +3639,7 @@
return( POLARSSL_ERR_SSL_MALLOC_FAILED );
}
- ssl->out_ctr = (unsigned char *) polarssl_malloc( len );
+ ssl->out_ctr = polarssl_malloc( len );
ssl->out_hdr = ssl->out_ctr + 8;
ssl->out_iv = ssl->out_ctr + 13;
ssl->out_msg = ssl->out_ctr + 13;
@@ -3783,7 +3780,7 @@
if( ssl->ticket_keys != NULL )
return( 0 );
- tkeys = (ssl_ticket_keys *) polarssl_malloc( sizeof(ssl_ticket_keys) );
+ tkeys = polarssl_malloc( sizeof(ssl_ticket_keys) );
if( tkeys == NULL )
return( POLARSSL_ERR_SSL_MALLOC_FAILED );
@@ -3940,7 +3937,7 @@
{
ssl_key_cert *key_cert, *last;
- key_cert = (ssl_key_cert *) polarssl_malloc( sizeof(ssl_key_cert) );
+ key_cert = polarssl_malloc( sizeof(ssl_key_cert) );
if( key_cert == NULL )
return( NULL );
@@ -3996,7 +3993,7 @@
if( key_cert == NULL )
return( POLARSSL_ERR_SSL_MALLOC_FAILED );
- key_cert->key = (pk_context *) polarssl_malloc( sizeof(pk_context) );
+ key_cert->key = polarssl_malloc( sizeof(pk_context) );
if( key_cert->key == NULL )
return( POLARSSL_ERR_SSL_MALLOC_FAILED );
@@ -4028,7 +4025,7 @@
if( key_cert == NULL )
return( POLARSSL_ERR_SSL_MALLOC_FAILED );
- key_cert->key = (pk_context *) polarssl_malloc( sizeof(pk_context) );
+ key_cert->key = polarssl_malloc( sizeof(pk_context) );
if( key_cert->key == NULL )
return( POLARSSL_ERR_SSL_MALLOC_FAILED );
@@ -4064,9 +4061,8 @@
ssl->psk_len = psk_len;
ssl->psk_identity_len = psk_identity_len;
- ssl->psk = (unsigned char *) polarssl_malloc( ssl->psk_len );
- ssl->psk_identity = (unsigned char *)
- polarssl_malloc( ssl->psk_identity_len );
+ ssl->psk = polarssl_malloc( ssl->psk_len );
+ ssl->psk_identity = polarssl_malloc( ssl->psk_identity_len );
if( ssl->psk == NULL || ssl->psk_identity == NULL )
return( POLARSSL_ERR_SSL_MALLOC_FAILED );
@@ -4148,7 +4144,7 @@
if( ssl->hostname_len + 1 == 0 )
return( POLARSSL_ERR_SSL_BAD_INPUT_DATA );
- ssl->hostname = (unsigned char *) polarssl_malloc( ssl->hostname_len + 1 );
+ ssl->hostname = polarssl_malloc( ssl->hostname_len + 1 );
if( ssl->hostname == NULL )
return( POLARSSL_ERR_SSL_MALLOC_FAILED );
diff --git a/library/x509.c b/library/x509.c
index 955d349..3818c3f 100644
--- a/library/x509.c
+++ b/library/x509.c
@@ -451,7 +451,7 @@
/* Mark this item as being only one in a set */
cur->next_merged = 1;
- cur->next = (x509_name *) polarssl_malloc( sizeof( x509_name ) );
+ cur->next = polarssl_malloc( sizeof( x509_name ) );
if( cur->next == NULL )
return( POLARSSL_ERR_X509_MALLOC_FAILED );
@@ -467,7 +467,7 @@
if( *p == end )
return( 0 );
- cur->next = (x509_name *) polarssl_malloc( sizeof( x509_name ) );
+ cur->next = polarssl_malloc( sizeof( x509_name ) );
if( cur->next == NULL )
return( POLARSSL_ERR_X509_MALLOC_FAILED );
diff --git a/library/x509_crl.c b/library/x509_crl.c
index ce6df6e..78b925c 100644
--- a/library/x509_crl.c
+++ b/library/x509_crl.c
@@ -279,7 +279,7 @@
if( crl->version != 0 && crl->next == NULL )
{
- crl->next = (x509_crl *) polarssl_malloc( sizeof( x509_crl ) );
+ crl->next = polarssl_malloc( sizeof( x509_crl ) );
if( crl->next == NULL )
{
diff --git a/library/x509_crt.c b/library/x509_crt.c
index 565435c..d9f5fac 100644
--- a/library/x509_crt.c
+++ b/library/x509_crt.c
@@ -359,8 +359,7 @@
if( cur->next != NULL )
return( POLARSSL_ERR_X509_INVALID_EXTENSIONS );
- cur->next = (asn1_sequence *) polarssl_malloc(
- sizeof( asn1_sequence ) );
+ cur->next = polarssl_malloc( sizeof( asn1_sequence ) );
if( cur->next == NULL )
return( POLARSSL_ERR_X509_INVALID_EXTENSIONS +
@@ -553,7 +552,7 @@
if( crt == NULL || buf == NULL )
return( POLARSSL_ERR_X509_BAD_INPUT_DATA );
- p = (unsigned char *) polarssl_malloc( len = buflen );
+ p = polarssl_malloc( len = buflen );
if( p == NULL )
return( POLARSSL_ERR_X509_MALLOC_FAILED );
@@ -810,7 +809,7 @@
*/
if( crt->version != 0 && crt->next == NULL )
{
- crt->next = (x509_crt *) polarssl_malloc( sizeof( x509_crt ) );
+ crt->next = polarssl_malloc( sizeof( x509_crt ) );
if( crt->next == NULL )
return( POLARSSL_ERR_X509_MALLOC_FAILED );
diff --git a/library/x509_csr.c b/library/x509_csr.c
index a5c9693..ad49abc 100644
--- a/library/x509_csr.c
+++ b/library/x509_csr.c
@@ -112,7 +112,7 @@
/*
* first copy the raw DER data
*/
- p = (unsigned char *) polarssl_malloc( len = buflen );
+ p = polarssl_malloc( len = buflen );
if( p == NULL )
return( POLARSSL_ERR_X509_MALLOC_FAILED );
diff --git a/programs/Makefile b/programs/Makefile
index 802e73c..cda68e5 100644
--- a/programs/Makefile
+++ b/programs/Makefile
@@ -5,14 +5,27 @@
CFLAGS += -I../include -D_FILE_OFFSET_BITS=64 -Wall -W -Wdeclaration-after-statement
OFLAGS = -O2
-LDFLAGS += -L../library -lmbedtls $(SYS_LDFLAGS)
+LDFLAGS += -L../library -lmbedtls$(SHARED_SUFFIX) $(SYS_LDFLAGS)
ifdef DEBUG
CFLAGS += -g3
endif
+#
+# if we running on Windows build
+# for Windows
+#
ifdef WINDOWS
+WINDOWS_BUILD=1
+endif
+
+ifdef WINDOWS_BUILD
+DLEXT=dll
+EXEXT=.exe
LDFLAGS += -lws2_32
+ifdef SHARED
+SHARED_SUFFIX=.$(DLEXT)
+endif
endif
# Zlib shared library extensions:
@@ -20,30 +33,30 @@
LDFLAGS += -lz
endif
-APPS = aes/aescrypt2 aes/crypt_and_hash \
- hash/hello hash/generic_sum \
- hash/md5sum hash/sha1sum \
- hash/sha2sum pkey/dh_client \
- pkey/dh_genprime pkey/dh_server \
- pkey/gen_key \
- pkey/key_app pkey/key_app_writer \
- pkey/mpi_demo pkey/pk_decrypt \
- pkey/pk_encrypt pkey/pk_sign \
- pkey/pk_verify pkey/rsa_genkey \
- pkey/rsa_decrypt pkey/rsa_encrypt \
- pkey/rsa_sign pkey/rsa_verify \
- pkey/rsa_sign_pss pkey/rsa_verify_pss \
- ssl/ssl_client1 ssl/ssl_client2 \
- ssl/ssl_server ssl/ssl_server2 \
- ssl/ssl_fork_server \
- ssl/ssl_mail_client random/gen_entropy \
- random/gen_random_havege \
- random/gen_random_ctr_drbg \
- test/ssl_cert_test test/benchmark \
- test/selftest test/ssl_test \
- util/pem2der util/strerror \
- x509/cert_app x509/crl_app \
- x509/cert_req
+APPS = aes/aescrypt2$(EXEXT) aes/crypt_and_hash$(EXEXT) \
+ hash/hello$(EXEXT) hash/generic_sum$(EXEXT) \
+ hash/md5sum$(EXEXT) hash/sha1sum$(EXEXT) \
+ hash/sha2sum$(EXEXT) pkey/dh_client$(EXEXT) \
+ pkey/dh_genprime$(EXEXT) pkey/dh_server$(EXEXT) \
+ pkey/gen_key$(EXEXT) \
+ pkey/key_app$(EXEXT) pkey/key_app_writer$(EXEXT) \
+ pkey/mpi_demo$(EXEXT) pkey/pk_decrypt$(EXEXT) \
+ pkey/pk_encrypt$(EXEXT) pkey/pk_sign$(EXEXT) \
+ pkey/pk_verify$(EXEXT) pkey/rsa_genkey$(EXEXT) \
+ pkey/rsa_decrypt$(EXEXT) pkey/rsa_encrypt$(EXEXT) \
+ pkey/rsa_sign$(EXEXT) pkey/rsa_verify$(EXEXT) \
+ pkey/rsa_sign_pss$(EXEXT) pkey/rsa_verify_pss$(EXEXT) \
+ ssl/ssl_client1$(EXEXT) ssl/ssl_client2$(EXEXT) \
+ ssl/ssl_server$(EXEXT) ssl/ssl_server2$(EXEXT) \
+ ssl/ssl_fork_server$(EXEXT) \
+ ssl/ssl_mail_client$(EXEXT) random/gen_entropy$(EXEXT) \
+ random/gen_random_havege$(EXEXT) \
+ random/gen_random_ctr_drbg$(EXEXT) \
+ test/ssl_cert_test$(EXEXT) test/benchmark$(EXEXT) \
+ test/selftest$(EXEXT) test/ssl_test$(EXEXT) \
+ util/pem2der$(EXEXT) util/strerror$(EXEXT) \
+ x509/cert_app$(EXEXT) x509/crl_app$(EXEXT) \
+ x509/cert_req$(EXEXT)
ifdef OPENSSL
APPS += test/o_p_test
@@ -57,192 +70,197 @@
all: $(APPS)
-aes/aescrypt2: aes/aescrypt2.c ../library/libmbedtls.a
+aes/aescrypt2$(EXEXT): aes/aescrypt2.c ../library/libmbedtls.a
echo " CC aes/aescrypt2.c"
$(CC) $(CFLAGS) $(OFLAGS) aes/aescrypt2.c $(LDFLAGS) -o $@
-aes/crypt_and_hash: aes/crypt_and_hash.c ../library/libmbedtls.a
+aes/crypt_and_hash$(EXEXT): aes/crypt_and_hash.c ../library/libmbedtls.a
echo " CC aes/crypt_and_hash.c"
$(CC) $(CFLAGS) $(OFLAGS) aes/crypt_and_hash.c $(LDFLAGS) -o $@
-hash/hello: hash/hello.c ../library/libmbedtls.a
+hash/hello$(EXEXT): hash/hello.c ../library/libmbedtls.a
echo " CC hash/hello.c"
$(CC) $(CFLAGS) $(OFLAGS) hash/hello.c $(LDFLAGS) -o $@
-hash/generic_sum: hash/generic_sum.c ../library/libmbedtls.a
+hash/generic_sum$(EXEXT): hash/generic_sum.c ../library/libmbedtls.a
echo " CC hash/generic_sum.c"
$(CC) $(CFLAGS) $(OFLAGS) hash/generic_sum.c $(LDFLAGS) -o $@
-hash/md5sum: hash/md5sum.c ../library/libmbedtls.a
+hash/md5sum$(EXEXT): hash/md5sum.c ../library/libmbedtls.a
echo " CC hash/md5sum.c"
$(CC) $(CFLAGS) $(OFLAGS) hash/md5sum.c $(LDFLAGS) -o $@
-hash/sha1sum: hash/sha1sum.c ../library/libmbedtls.a
+hash/sha1sum$(EXEXT): hash/sha1sum.c ../library/libmbedtls.a
echo " CC hash/sha1sum.c"
$(CC) $(CFLAGS) $(OFLAGS) hash/sha1sum.c $(LDFLAGS) -o $@
-hash/sha2sum: hash/sha2sum.c ../library/libmbedtls.a
+hash/sha2sum$(EXEXT): hash/sha2sum.c ../library/libmbedtls.a
echo " CC hash/sha2sum.c"
$(CC) $(CFLAGS) $(OFLAGS) hash/sha2sum.c $(LDFLAGS) -o $@
-pkey/dh_client: pkey/dh_client.c ../library/libmbedtls.a
+pkey/dh_client$(EXEXT): pkey/dh_client.c ../library/libmbedtls.a
echo " CC pkey/dh_client.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/dh_client.c $(LDFLAGS) -o $@
-pkey/dh_genprime: pkey/dh_genprime.c ../library/libmbedtls.a
+pkey/dh_genprime$(EXEXT): pkey/dh_genprime.c ../library/libmbedtls.a
echo " CC pkey/dh_genprime.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/dh_genprime.c $(LDFLAGS) -o $@
-pkey/dh_server: pkey/dh_server.c ../library/libmbedtls.a
+pkey/dh_server$(EXEXT): pkey/dh_server.c ../library/libmbedtls.a
echo " CC pkey/dh_server.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/dh_server.c $(LDFLAGS) -o $@
-pkey/ecdsa: pkey/ecdsa.c ../library/libmbedtls.a
+pkey/ecdsa$(EXEXT): pkey/ecdsa.c ../library/libmbedtls.a
echo " CC pkey/ecdsa.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/ecdsa.c $(LDFLAGS) -o $@
-pkey/gen_key: pkey/gen_key.c ../library/libmbedtls.a
+pkey/gen_key$(EXEXT): pkey/gen_key.c ../library/libmbedtls.a
echo " CC pkey/gen_key.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/gen_key.c $(LDFLAGS) -o $@
-pkey/key_app: pkey/key_app.c ../library/libmbedtls.a
+pkey/key_app$(EXEXT): pkey/key_app.c ../library/libmbedtls.a
echo " CC pkey/key_app.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/key_app.c $(LDFLAGS) -o $@
-pkey/key_app_writer: pkey/key_app_writer.c ../library/libmbedtls.a
+pkey/key_app_writer$(EXEXT): pkey/key_app_writer.c ../library/libmbedtls.a
echo " CC pkey/key_app_writer.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/key_app_writer.c $(LDFLAGS) -o $@
-pkey/mpi_demo: pkey/mpi_demo.c ../library/libmbedtls.a
+pkey/mpi_demo$(EXEXT): pkey/mpi_demo.c ../library/libmbedtls.a
echo " CC pkey/mpi_demo.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/mpi_demo.c $(LDFLAGS) -o $@
-pkey/pk_decrypt: pkey/pk_decrypt.c ../library/libmbedtls.a
+pkey/pk_decrypt$(EXEXT): pkey/pk_decrypt.c ../library/libmbedtls.a
echo " CC pkey/pk_decrypt.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/pk_decrypt.c $(LDFLAGS) -o $@
-pkey/pk_encrypt: pkey/pk_encrypt.c ../library/libmbedtls.a
+pkey/pk_encrypt$(EXEXT): pkey/pk_encrypt.c ../library/libmbedtls.a
echo " CC pkey/pk_encrypt.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/pk_encrypt.c $(LDFLAGS) -o $@
-pkey/pk_sign: pkey/pk_sign.c ../library/libmbedtls.a
+pkey/pk_sign$(EXEXT): pkey/pk_sign.c ../library/libmbedtls.a
echo " CC pkey/pk_sign.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/pk_sign.c $(LDFLAGS) -o $@
-pkey/pk_verify: pkey/pk_verify.c ../library/libmbedtls.a
+pkey/pk_verify$(EXEXT): pkey/pk_verify.c ../library/libmbedtls.a
echo " CC pkey/pk_verify.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/pk_verify.c $(LDFLAGS) -o $@
-pkey/rsa_genkey: pkey/rsa_genkey.c ../library/libmbedtls.a
+pkey/rsa_genkey$(EXEXT): pkey/rsa_genkey.c ../library/libmbedtls.a
echo " CC pkey/rsa_genkey.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/rsa_genkey.c $(LDFLAGS) -o $@
-pkey/rsa_sign: pkey/rsa_sign.c ../library/libmbedtls.a
+pkey/rsa_sign$(EXEXT): pkey/rsa_sign.c ../library/libmbedtls.a
echo " CC pkey/rsa_sign.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/rsa_sign.c $(LDFLAGS) -o $@
-pkey/rsa_verify: pkey/rsa_verify.c ../library/libmbedtls.a
+pkey/rsa_verify$(EXEXT): pkey/rsa_verify.c ../library/libmbedtls.a
echo " CC pkey/rsa_verify.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/rsa_verify.c $(LDFLAGS) -o $@
-pkey/rsa_sign_pss: pkey/rsa_sign_pss.c ../library/libmbedtls.a
+pkey/rsa_sign_pss$(EXEXT): pkey/rsa_sign_pss.c ../library/libmbedtls.a
echo " CC pkey/rsa_sign_pss.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/rsa_sign_pss.c $(LDFLAGS) -o $@
-pkey/rsa_verify_pss: pkey/rsa_verify_pss.c ../library/libmbedtls.a
+pkey/rsa_verify_pss$(EXEXT): pkey/rsa_verify_pss.c ../library/libmbedtls.a
echo " CC pkey/rsa_verify_pss.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/rsa_verify_pss.c $(LDFLAGS) -o $@
-pkey/rsa_decrypt: pkey/rsa_decrypt.c ../library/libmbedtls.a
+pkey/rsa_decrypt$(EXEXT): pkey/rsa_decrypt.c ../library/libmbedtls.a
echo " CC pkey/rsa_decrypt.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/rsa_decrypt.c $(LDFLAGS) -o $@
-pkey/rsa_encrypt: pkey/rsa_encrypt.c ../library/libmbedtls.a
+pkey/rsa_encrypt$(EXEXT): pkey/rsa_encrypt.c ../library/libmbedtls.a
echo " CC pkey/rsa_encrypt.c"
$(CC) $(CFLAGS) $(OFLAGS) pkey/rsa_encrypt.c $(LDFLAGS) -o $@
-random/gen_entropy: random/gen_entropy.c ../library/libmbedtls.a
+random/gen_entropy$(EXEXT): random/gen_entropy.c ../library/libmbedtls.a
echo " CC random/gen_entropy.c"
$(CC) $(CFLAGS) $(OFLAGS) random/gen_entropy.c $(LDFLAGS) -o $@
-random/gen_random_havege: random/gen_random_havege.c ../library/libmbedtls.a
+random/gen_random_havege$(EXEXT): random/gen_random_havege.c ../library/libmbedtls.a
echo " CC random/gen_random_havege.c"
$(CC) $(CFLAGS) $(OFLAGS) random/gen_random_havege.c $(LDFLAGS) -o $@
-random/gen_random_ctr_drbg: random/gen_random_ctr_drbg.c ../library/libmbedtls.a
+random/gen_random_ctr_drbg$(EXEXT): random/gen_random_ctr_drbg.c ../library/libmbedtls.a
echo " CC random/gen_random_ctr_drbg.c"
$(CC) $(CFLAGS) $(OFLAGS) random/gen_random_ctr_drbg.c $(LDFLAGS) -o $@
-ssl/ssl_client1: ssl/ssl_client1.c ../library/libmbedtls.a
+ssl/ssl_client1$(EXEXT): ssl/ssl_client1.c ../library/libmbedtls.a
echo " CC ssl/ssl_client1.c"
$(CC) $(CFLAGS) $(OFLAGS) ssl/ssl_client1.c $(LDFLAGS) -o $@
-ssl/ssl_client2: ssl/ssl_client2.c ../library/libmbedtls.a
+ssl/ssl_client2$(EXEXT): ssl/ssl_client2.c ../library/libmbedtls.a
echo " CC ssl/ssl_client2.c"
$(CC) $(CFLAGS) $(OFLAGS) ssl/ssl_client2.c $(LDFLAGS) -o $@
-ssl/ssl_server: ssl/ssl_server.c ../library/libmbedtls.a
+ssl/ssl_server$(EXEXT): ssl/ssl_server.c ../library/libmbedtls.a
echo " CC ssl/ssl_server.c"
$(CC) $(CFLAGS) $(OFLAGS) ssl/ssl_server.c $(LDFLAGS) -o $@
-ssl/ssl_server2: ssl/ssl_server2.c ../library/libmbedtls.a
+ssl/ssl_server2$(EXEXT): ssl/ssl_server2.c ../library/libmbedtls.a
echo " CC ssl/ssl_server2.c"
$(CC) $(CFLAGS) $(OFLAGS) ssl/ssl_server2.c $(LDFLAGS) -o $@
-ssl/ssl_fork_server: ssl/ssl_fork_server.c ../library/libmbedtls.a
+ssl/ssl_fork_server$(EXEXT): ssl/ssl_fork_server.c ../library/libmbedtls.a
echo " CC ssl/ssl_fork_server.c"
$(CC) $(CFLAGS) $(OFLAGS) ssl/ssl_fork_server.c $(LDFLAGS) -o $@
-ssl/ssl_pthread_server: ssl/ssl_pthread_server.c ../library/libmbedtls.a
+ssl/ssl_pthread_server$(EXEXT): ssl/ssl_pthread_server.c ../library/libmbedtls.a
echo " CC ssl/ssl_pthread_server.c"
$(CC) $(CFLAGS) $(OFLAGS) ssl/ssl_pthread_server.c $(LDFLAGS) -o $@ -lpthread
-ssl/ssl_mail_client: ssl/ssl_mail_client.c ../library/libmbedtls.a
+ssl/ssl_mail_client$(EXEXT): ssl/ssl_mail_client.c ../library/libmbedtls.a
echo " CC ssl/ssl_mail_client.c"
$(CC) $(CFLAGS) $(OFLAGS) ssl/ssl_mail_client.c $(LDFLAGS) -o $@
-test/ssl_cert_test: test/ssl_cert_test.c ../library/libmbedtls.a
+test/ssl_cert_test$(EXEXT): test/ssl_cert_test.c ../library/libmbedtls.a
echo " CC test/ssl_cert_test.c"
$(CC) $(CFLAGS) $(OFLAGS) test/ssl_cert_test.c $(LDFLAGS) -o $@
-test/benchmark: test/benchmark.c ../library/libmbedtls.a
+test/benchmark$(EXEXT): test/benchmark.c ../library/libmbedtls.a
echo " CC test/benchmark.c"
$(CC) $(CFLAGS) $(OFLAGS) test/benchmark.c $(LDFLAGS) -o $@
-test/selftest: test/selftest.c ../library/libmbedtls.a
+test/selftest$(EXEXT): test/selftest.c ../library/libmbedtls.a
echo " CC test/selftest.c"
$(CC) $(CFLAGS) $(OFLAGS) test/selftest.c $(LDFLAGS) -o $@
-test/ssl_test: test/ssl_test.c ../library/libmbedtls.a
+test/ssl_test$(EXEXT): test/ssl_test.c ../library/libmbedtls.a
echo " CC test/ssl_test.c"
$(CC) $(CFLAGS) $(OFLAGS) test/ssl_test.c $(LDFLAGS) -o $@
-test/o_p_test: test/o_p_test.c ../library/libmbedtls.a
+test/o_p_test$(EXEXT): test/o_p_test.c ../library/libmbedtls.a
echo " CC test/o_p_test.c"
$(CC) $(CFLAGS) $(OFLAGS) test/o_p_test.c $(LDFLAGS) -o $@ -lssl -lcrypto
-util/pem2der: util/pem2der.c ../library/libmbedtls.a
+util/pem2der$(EXEXT): util/pem2der.c ../library/libmbedtls.a
echo " CC util/pem2der.c"
$(CC) $(CFLAGS) $(OFLAGS) util/pem2der.c $(LDFLAGS) -o $@
-util/strerror: util/strerror.c ../library/libmbedtls.a
+util/strerror$(EXEXT): util/strerror.c ../library/libmbedtls.a
echo " CC util/strerror.c"
$(CC) $(CFLAGS) $(OFLAGS) util/strerror.c $(LDFLAGS) -o $@
-x509/cert_app: x509/cert_app.c ../library/libmbedtls.a
+x509/cert_app$(EXEXT): x509/cert_app.c ../library/libmbedtls.a
echo " CC x509/cert_app.c"
$(CC) $(CFLAGS) $(OFLAGS) x509/cert_app.c $(LDFLAGS) -o $@
-x509/crl_app: x509/crl_app.c ../library/libmbedtls.a
+x509/crl_app$(EXEXT): x509/crl_app.c ../library/libmbedtls.a
echo " CC x509/crl_app.c"
$(CC) $(CFLAGS) $(OFLAGS) x509/crl_app.c $(LDFLAGS) -o $@
-x509/cert_req: x509/cert_req.c ../library/libmbedtls.a
+x509/cert_req$(EXEXT): x509/cert_req.c ../library/libmbedtls.a
echo " CC x509/cert_req.c"
$(CC) $(CFLAGS) $(OFLAGS) x509/cert_req.c $(LDFLAGS) -o $@
clean:
+ifndef WINDOWS
rm -f $(APPS)
+endif
+ifdef WINDOWS
+ del /S /Q /F *.o *.exe
+endif
list:
echo $(APPS)
diff --git a/programs/pkey/mpi_demo.c b/programs/pkey/mpi_demo.c
index 3b7c085..7281c3a 100644
--- a/programs/pkey/mpi_demo.c
+++ b/programs/pkey/mpi_demo.c
@@ -48,55 +48,63 @@
#else
int main( void )
{
+ int ret;
mpi E, P, Q, N, H, D, X, Y, Z;
mpi_init( &E ); mpi_init( &P ); mpi_init( &Q ); mpi_init( &N );
mpi_init( &H ); mpi_init( &D ); mpi_init( &X ); mpi_init( &Y );
mpi_init( &Z );
- mpi_read_string( &P, 10, "2789" );
- mpi_read_string( &Q, 10, "3203" );
- mpi_read_string( &E, 10, "257" );
- mpi_mul_mpi( &N, &P, &Q );
+ MPI_CHK( mpi_read_string( &P, 10, "2789" ) );
+ MPI_CHK( mpi_read_string( &Q, 10, "3203" ) );
+ MPI_CHK( mpi_read_string( &E, 10, "257" ) );
+ MPI_CHK( mpi_mul_mpi( &N, &P, &Q ) );
polarssl_printf( "\n Public key:\n\n" );
- mpi_write_file( " N = ", &N, 10, NULL );
- mpi_write_file( " E = ", &E, 10, NULL );
+ MPI_CHK( mpi_write_file( " N = ", &N, 10, NULL ) );
+ MPI_CHK( mpi_write_file( " E = ", &E, 10, NULL ) );
polarssl_printf( "\n Private key:\n\n" );
- mpi_write_file( " P = ", &P, 10, NULL );
- mpi_write_file( " Q = ", &Q, 10, NULL );
+ MPI_CHK( mpi_write_file( " P = ", &P, 10, NULL ) );
+ MPI_CHK( mpi_write_file( " Q = ", &Q, 10, NULL ) );
#if defined(POLARSSL_GENPRIME)
- mpi_sub_int( &P, &P, 1 );
- mpi_sub_int( &Q, &Q, 1 );
- mpi_mul_mpi( &H, &P, &Q );
- mpi_inv_mod( &D, &E, &H );
+ MPI_CHK( mpi_sub_int( &P, &P, 1 ) );
+ MPI_CHK( mpi_sub_int( &Q, &Q, 1 ) );
+ MPI_CHK( mpi_mul_mpi( &H, &P, &Q ) );
+ MPI_CHK( mpi_inv_mod( &D, &E, &H ) );
mpi_write_file( " D = E^-1 mod (P-1)*(Q-1) = ",
&D, 10, NULL );
#else
polarssl_printf("\nTest skipped (POLARSSL_GENPRIME not defined).\n\n");
#endif
- mpi_read_string( &X, 10, "55555" );
- mpi_exp_mod( &Y, &X, &E, &N, NULL );
- mpi_exp_mod( &Z, &Y, &D, &N, NULL );
+ MPI_CHK( mpi_read_string( &X, 10, "55555" ) );
+ MPI_CHK( mpi_exp_mod( &Y, &X, &E, &N, NULL ) );
+ MPI_CHK( mpi_exp_mod( &Z, &Y, &D, &N, NULL ) );
polarssl_printf( "\n RSA operation:\n\n" );
- mpi_write_file( " X (plaintext) = ", &X, 10, NULL );
- mpi_write_file( " Y (ciphertext) = X^E mod N = ", &Y, 10, NULL );
- mpi_write_file( " Z (decrypted) = Y^D mod N = ", &Z, 10, NULL );
+ MPI_CHK( mpi_write_file( " X (plaintext) = ", &X, 10, NULL ) );
+ MPI_CHK( mpi_write_file( " Y (ciphertext) = X^E mod N = ", &Y, 10, NULL ) );
+ MPI_CHK( mpi_write_file( " Z (decrypted) = Y^D mod N = ", &Z, 10, NULL ) );
polarssl_printf( "\n" );
+cleanup:
mpi_free( &E ); mpi_free( &P ); mpi_free( &Q ); mpi_free( &N );
mpi_free( &H ); mpi_free( &D ); mpi_free( &X ); mpi_free( &Y );
mpi_free( &Z );
+ if( ret != 0 )
+ {
+ polarssl_printf( "\nAn error occured.\n" );
+ ret = 1;
+ }
+
#if defined(_WIN32)
polarssl_printf( " Press Enter to exit this program.\n" );
fflush( stdout ); getchar();
#endif
- return( 0 );
+ return( ret );
}
#endif /* POLARSSL_BIGNUM_C && POLARSSL_FS_IO */
diff --git a/programs/ssl/ssl_fork_server.c b/programs/ssl/ssl_fork_server.c
index 3f3c6ad..42bba72 100644
--- a/programs/ssl/ssl_fork_server.c
+++ b/programs/ssl/ssl_fork_server.c
@@ -342,8 +342,11 @@
len = ret;
polarssl_printf( " %d bytes read\n\n%s", len, (char *) buf );
+
+ if( ret > 0 )
+ break;
}
- while( 0 );
+ while( 1 );
/*
* 7. Write the 200 Response
diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index bf90c10..d1b76ac 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -386,7 +386,7 @@
dst = p; \
while( *p != ',' ) \
if( ++p > end ) \
- return( NULL ); \
+ goto error; \
*p++ = '\0';
#if defined(POLARSSL_SNI)
@@ -399,53 +399,6 @@
sni_entry *next;
};
-/*
- * Parse a string of triplets name1,crt1,key1[,name2,crt2,key2[,...]]
- * into a usable sni_entry list.
- *
- * Modifies the input string! This is not production quality!
- * (leaks memory if parsing fails, no error reporting, ...)
- */
-sni_entry *sni_parse( char *sni_string )
-{
- sni_entry *cur = NULL, *new = NULL;
- char *p = sni_string;
- char *end = p;
- char *crt_file, *key_file;
-
- while( *end != '\0' )
- ++end;
- *end = ',';
-
- while( p <= end )
- {
- if( ( new = polarssl_malloc( sizeof( sni_entry ) ) ) == NULL )
- return( NULL );
-
- memset( new, 0, sizeof( sni_entry ) );
-
- if( ( new->cert = polarssl_malloc( sizeof( x509_crt ) ) ) == NULL ||
- ( new->key = polarssl_malloc( sizeof( pk_context ) ) ) == NULL )
- return( NULL );
-
- x509_crt_init( new->cert );
- pk_init( new->key );
-
- GET_ITEM( new->name );
- GET_ITEM( crt_file );
- GET_ITEM( key_file );
-
- if( x509_crt_parse_file( new->cert, crt_file ) != 0 ||
- pk_parse_keyfile( new->key, key_file, "" ) != 0 )
- return( NULL );
-
- new->next = cur;
- cur = new;
- }
-
- return( cur );
-}
-
void sni_free( sni_entry *head )
{
sni_entry *cur = head, *next;
@@ -465,6 +418,67 @@
}
/*
+ * Parse a string of triplets name1,crt1,key1[,name2,crt2,key2[,...]]
+ * into a usable sni_entry list.
+ *
+ * Modifies the input string! This is not production quality!
+ */
+sni_entry *sni_parse( char *sni_string )
+{
+ sni_entry *cur = NULL, *new = NULL;
+ char *p = sni_string;
+ char *end = p;
+ char *crt_file, *key_file;
+
+ while( *end != '\0' )
+ ++end;
+ *end = ',';
+
+ while( p <= end )
+ {
+ if( ( new = polarssl_malloc( sizeof( sni_entry ) ) ) == NULL )
+ {
+ sni_free( cur );
+ return( NULL );
+ }
+
+ memset( new, 0, sizeof( sni_entry ) );
+
+ if( ( new->cert = polarssl_malloc( sizeof( x509_crt ) ) ) == NULL ||
+ ( new->key = polarssl_malloc( sizeof( pk_context ) ) ) == NULL )
+ {
+ polarssl_free( new->cert );
+ polarssl_free( new );
+ sni_free( cur );
+ return( NULL );
+ }
+
+ x509_crt_init( new->cert );
+ pk_init( new->key );
+
+ GET_ITEM( new->name );
+ GET_ITEM( crt_file );
+ GET_ITEM( key_file );
+
+ if( x509_crt_parse_file( new->cert, crt_file ) != 0 ||
+ pk_parse_keyfile( new->key, key_file, "" ) != 0 )
+ {
+ goto error;
+ }
+
+ new->next = cur;
+ cur = new;
+ }
+
+ return( cur );
+
+error:
+ sni_free( new );
+ sni_free( cur );
+ return( NULL );
+}
+
+/*
* SNI callback.
*/
int sni_callback( void *p_info, ssl_context *ssl,
@@ -539,11 +553,25 @@
};
/*
+ * Free a list of psk_entry's
+ */
+void psk_free( psk_entry *head )
+{
+ psk_entry *next;
+
+ while( head != NULL )
+ {
+ next = head->next;
+ polarssl_free( head );
+ head = next;
+ }
+}
+
+/*
* Parse a string of pairs name1,key1[,name2,key2[,...]]
* into a usable psk_entry list.
*
* Modifies the input string! This is not production quality!
- * (leaks memory if parsing fails, no error reporting, ...)
*/
psk_entry *psk_parse( char *psk_string )
{
@@ -567,28 +595,18 @@
GET_ITEM( key_hex );
if( unhexify( new->key, key_hex, &new->key_len ) != 0 )
- return( NULL );
+ goto error;
new->next = cur;
cur = new;
}
return( cur );
-}
-/*
- * Free a list of psk_entry's
- */
-void psk_free( psk_entry *head )
-{
- psk_entry *next;
-
- while( head != NULL )
- {
- next = head->next;
- polarssl_free( head );
- head = next;
- }
+error:
+ psk_free( new );
+ psk_free( cur );
+ return( 0 );
}
/*
diff --git a/programs/test/ssl_test.c b/programs/test/ssl_test.c
index 5860683..4e89eac 100644
--- a/programs/test/ssl_test.c
+++ b/programs/test/ssl_test.c
@@ -299,8 +299,8 @@
}
}
- read_buf = (unsigned char *) polarssl_malloc( opt->buffer_size );
- write_buf = (unsigned char *) polarssl_malloc( opt->buffer_size );
+ read_buf = polarssl_malloc( opt->buffer_size );
+ write_buf = polarssl_malloc( opt->buffer_size );
if( read_buf == NULL || write_buf == NULL )
{
diff --git a/programs/util/pem2der.c b/programs/util/pem2der.c
index 670daea..2c0e585 100644
--- a/programs/util/pem2der.c
+++ b/programs/util/pem2der.c
@@ -136,7 +136,7 @@
*n = (size_t) size;
if( *n + 1 == 0 ||
- ( *buf = (unsigned char *) polarssl_malloc( *n + 1 ) ) == NULL )
+ ( *buf = polarssl_malloc( *n + 1 ) ) == NULL )
{
fclose( f );
return( -1 );
diff --git a/programs/x509/cert_app.c b/programs/x509/cert_app.c
index dc541d3..c97fa04 100644
--- a/programs/x509/cert_app.c
+++ b/programs/x509/cert_app.c
@@ -351,6 +351,8 @@
cur = cur->next;
}
+ ret = 0;
+
/*
* 1.3 Verify the certificate
*/
diff --git a/scripts/bump_version.sh b/scripts/bump_version.sh
index 3ff5b60..64af2dc 100755
--- a/scripts/bump_version.sh
+++ b/scripts/bump_version.sh
@@ -56,7 +56,7 @@
mv tmp library/CMakeLists.txt
[ $VERBOSE ] && echo "Bumping SOVERSION in library/Makefile"
- sed -e "s/SOVERSION=[0-9]\+/SOVERSION=$SOVERSION/g" < library/Makefile > tmp
+ sed -e "s/SOEXT=so.[0-9]\+/SOEXT=so.$SOVERSION/g" < library/Makefile > tmp
mv tmp library/Makefile
fi
diff --git a/scripts/rm-malloc-cast.cocci b/scripts/rm-malloc-cast.cocci
new file mode 100644
index 0000000..04893d9
--- /dev/null
+++ b/scripts/rm-malloc-cast.cocci
@@ -0,0 +1,7 @@
+@rm_malloc_cast@
+expression x, n;
+type T;
+@@
+ x =
+- (T *)
+ polarssl_malloc(n)
diff --git a/tests/Makefile b/tests/Makefile
index b64eaff..f83d186 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -7,22 +7,36 @@
-Wno-unused-function -Wno-unused-value
OFLAGS = -O2
-LDFLAGS += -L../library -lmbedtls $(SYS_LDFLAGS)
+LDFLAGS += -L../library -lmbedtls$(SHARED_SUFFIX) $(SYS_LDFLAGS)
+DLEXT=so
ifndef SHARED
DEP=../library/libmbedtls.a
CHECK_PRELOAD=
else
-DEP=../library/libmbedtls.so
-CHECK_PRELOAD= LD_PRELOAD=../library/libmbedtls.so
+DEP=../library/libmbedtls.$(DLEXT)
+CHECK_PRELOAD= LD_PRELOAD=../library/libmbedtls.$(DLEXT)
endif
ifdef DEBUG
CFLAGS += -g3
endif
+#
+# if we running on Windows build
+# for Windows
+#
ifdef WINDOWS
+WINDOWS_BUILD=1
+endif
+
+ifdef WINDOWS_BUILD
+DLEXT=dll
+EXEXT=.exe
LDFLAGS += -lws2_32
+ifdef SHARED
+SHARED_SUFFIX=.$(DLEXT)
+endif
endif
# Zlib shared library extensions:
@@ -30,44 +44,44 @@
LDFLAGS += -lz
endif
-APPS = test_suite_aes.ecb test_suite_aes.cbc \
- test_suite_aes.cfb test_suite_aes.rest \
- test_suite_arc4 test_suite_asn1write \
- test_suite_base64 test_suite_blowfish \
- test_suite_camellia test_suite_ccm \
- test_suite_cipher.aes \
- test_suite_cipher.arc4 test_suite_cipher.ccm \
- test_suite_cipher.gcm \
- test_suite_cipher.blowfish \
- test_suite_cipher.camellia \
- test_suite_cipher.des test_suite_cipher.null \
- test_suite_cipher.padding \
- test_suite_ctr_drbg test_suite_debug \
- test_suite_des test_suite_dhm \
- test_suite_ecdh test_suite_ecdsa \
- test_suite_ecp \
- test_suite_error test_suite_entropy \
- test_suite_gcm.aes128_de \
- test_suite_gcm.aes192_de \
- test_suite_gcm.aes256_de \
- test_suite_gcm.aes128_en \
- test_suite_gcm.aes192_en \
- test_suite_gcm.aes256_en \
- test_suite_gcm.camellia test_suite_hmac_shax \
- test_suite_hmac_drbg.misc \
- test_suite_hmac_drbg.no_reseed \
- test_suite_hmac_drbg.nopr \
- test_suite_hmac_drbg.pr \
- test_suite_md test_suite_mdx \
- test_suite_memory_buffer_alloc \
- test_suite_mpi test_suite_pbkdf2 \
- test_suite_pem \
- test_suite_pkcs1_v21 test_suite_pkcs5 \
- test_suite_pkparse test_suite_pkwrite \
- test_suite_pk \
- test_suite_rsa test_suite_shax \
- test_suite_x509parse test_suite_x509write \
- test_suite_xtea test_suite_version
+APPS = test_suite_aes.ecb$(EXEXT) test_suite_aes.cbc$(EXEXT) \
+ test_suite_aes.cfb$(EXEXT) test_suite_aes.rest$(EXEXT) \
+ test_suite_arc4$(EXEXT) test_suite_asn1write$(EXEXT) \
+ test_suite_base64$(EXEXT) test_suite_blowfish$(EXEXT) \
+ test_suite_camellia$(EXEXT) test_suite_ccm$(EXEXT) \
+ test_suite_cipher.aes$(EXEXT) \
+ test_suite_cipher.arc4$(EXEXT) test_suite_cipher.ccm$(EXEXT) \
+ test_suite_cipher.gcm$(EXEXT) \
+ test_suite_cipher.blowfish$(EXEXT) \
+ test_suite_cipher.camellia$(EXEXT) \
+ test_suite_cipher.des$(EXEXT) test_suite_cipher.null$(EXEXT) \
+ test_suite_cipher.padding$(EXEXT) \
+ test_suite_ctr_drbg$(EXEXT) test_suite_debug$(EXEXT) \
+ test_suite_des$(EXEXT) test_suite_dhm$(EXEXT) \
+ test_suite_ecdh$(EXEXT) test_suite_ecdsa$(EXEXT) \
+ test_suite_ecp$(EXEXT) \
+ test_suite_error$(EXEXT) test_suite_entropy$(EXEXT) \
+ test_suite_gcm.aes128_de$(EXEXT) \
+ test_suite_gcm.aes192_de$(EXEXT) \
+ test_suite_gcm.aes256_de$(EXEXT) \
+ test_suite_gcm.aes128_en$(EXEXT) \
+ test_suite_gcm.aes192_en$(EXEXT) \
+ test_suite_gcm.aes256_en$(EXEXT) \
+ test_suite_gcm.camellia$(EXEXT) test_suite_hmac_shax$(EXEXT) \
+ test_suite_hmac_drbg.misc$(EXEXT) \
+ test_suite_hmac_drbg.no_reseed$(EXEXT) \
+ test_suite_hmac_drbg.nopr$(EXEXT) \
+ test_suite_hmac_drbg.pr$(EXEXT) \
+ test_suite_md$(EXEXT) test_suite_mdx$(EXEXT) \
+ test_suite_memory_buffer_alloc$(EXEXT) \
+ test_suite_mpi$(EXEXT) test_suite_pbkdf2$(EXEXT) \
+ test_suite_pem$(EXEXT) \
+ test_suite_pkcs1_v21$(EXEXT) test_suite_pkcs5$(EXEXT) \
+ test_suite_pkparse$(EXEXT) test_suite_pkwrite$(EXEXT) \
+ test_suite_pk$(EXEXT) \
+ test_suite_rsa$(EXEXT) test_suite_shax$(EXEXT) \
+ test_suite_x509parse$(EXEXT) test_suite_x509write$(EXEXT) \
+ test_suite_xtea$(EXEXT) test_suite_version$(EXEXT)
.SILENT:
@@ -173,238 +187,244 @@
echo " Generate $@"
scripts/generate_code.pl suites $* $*
-test_suite_aes.ecb: test_suite_aes.ecb.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_aes.ecb$(EXEXT): test_suite_aes.ecb.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_aes.cbc: test_suite_aes.cbc.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_aes.cbc$(EXEXT): test_suite_aes.cbc.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_aes.cfb: test_suite_aes.cfb.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_aes.cfb$(EXEXT): test_suite_aes.cfb.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_aes.rest: test_suite_aes.rest.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_aes.rest$(EXEXT): test_suite_aes.rest.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_arc4: test_suite_arc4.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_arc4$(EXEXT): test_suite_arc4.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_asn1write: test_suite_asn1write.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_asn1write$(EXEXT): test_suite_asn1write.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_base64: test_suite_base64.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_base64$(EXEXT): test_suite_base64.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_blowfish: test_suite_blowfish.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_blowfish$(EXEXT): test_suite_blowfish.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_camellia: test_suite_camellia.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_camellia$(EXEXT): test_suite_camellia.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_ccm: test_suite_ccm.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_ccm$(EXEXT): test_suite_ccm.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_cipher.aes: test_suite_cipher.aes.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_cipher.aes$(EXEXT): test_suite_cipher.aes.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_cipher.arc4: test_suite_cipher.arc4.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_cipher.arc4$(EXEXT): test_suite_cipher.arc4.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_cipher.ccm: test_suite_cipher.ccm.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_cipher.ccm$(EXEXT): test_suite_cipher.ccm.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_cipher.gcm: test_suite_cipher.gcm.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_cipher.gcm$(EXEXT): test_suite_cipher.gcm.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_cipher.blowfish: test_suite_cipher.blowfish.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_cipher.blowfish$(EXEXT): test_suite_cipher.blowfish.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_cipher.camellia: test_suite_cipher.camellia.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_cipher.camellia$(EXEXT): test_suite_cipher.camellia.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_cipher.des: test_suite_cipher.des.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_cipher.des$(EXEXT): test_suite_cipher.des.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_cipher.null: test_suite_cipher.null.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_cipher.null$(EXEXT): test_suite_cipher.null.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_cipher.padding: test_suite_cipher.padding.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_cipher.padding$(EXEXT): test_suite_cipher.padding.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_ctr_drbg: test_suite_ctr_drbg.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_ctr_drbg$(EXEXT): test_suite_ctr_drbg.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_des: test_suite_des.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_des$(EXEXT): test_suite_des.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_dhm: test_suite_dhm.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_dhm$(EXEXT): test_suite_dhm.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_ecdh: test_suite_ecdh.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_ecdh$(EXEXT): test_suite_ecdh.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_ecdsa: test_suite_ecdsa.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_ecdsa$(EXEXT): test_suite_ecdsa.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_ecp: test_suite_ecp.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_ecp$(EXEXT): test_suite_ecp.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_entropy: test_suite_entropy.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_entropy$(EXEXT): test_suite_entropy.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_error: test_suite_error.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_error$(EXEXT): test_suite_error.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_gcm.aes128_de: test_suite_gcm.aes128_de.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_gcm.aes128_de$(EXEXT): test_suite_gcm.aes128_de.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_gcm.aes192_de: test_suite_gcm.aes192_de.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_gcm.aes192_de$(EXEXT): test_suite_gcm.aes192_de.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_gcm.aes256_de: test_suite_gcm.aes256_de.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_gcm.aes256_de$(EXEXT): test_suite_gcm.aes256_de.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_gcm.aes128_en: test_suite_gcm.aes128_en.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_gcm.aes128_en$(EXEXT): test_suite_gcm.aes128_en.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_gcm.aes192_en: test_suite_gcm.aes192_en.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_gcm.aes192_en$(EXEXT): test_suite_gcm.aes192_en.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_gcm.aes256_en: test_suite_gcm.aes256_en.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_gcm.aes256_en$(EXEXT): test_suite_gcm.aes256_en.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_gcm.camellia: test_suite_gcm.camellia.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_gcm.camellia$(EXEXT): test_suite_gcm.camellia.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_hmac_drbg.misc: test_suite_hmac_drbg.misc.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_hmac_drbg.misc$(EXEXT): test_suite_hmac_drbg.misc.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_hmac_drbg.no_reseed: test_suite_hmac_drbg.no_reseed.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_hmac_drbg.no_reseed$(EXEXT): test_suite_hmac_drbg.no_reseed.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_hmac_drbg.nopr: test_suite_hmac_drbg.nopr.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_hmac_drbg.nopr$(EXEXT): test_suite_hmac_drbg.nopr.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_hmac_drbg.pr: test_suite_hmac_drbg.pr.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_hmac_drbg.pr$(EXEXT): test_suite_hmac_drbg.pr.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_hmac_shax: test_suite_hmac_shax.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_hmac_shax$(EXEXT): test_suite_hmac_shax.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_md: test_suite_md.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_md$(EXEXT): test_suite_md.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_mdx: test_suite_mdx.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_mdx$(EXEXT): test_suite_mdx.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_memory_buffer_alloc: test_suite_memory_buffer_alloc.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_memory_buffer_alloc$(EXEXT): test_suite_memory_buffer_alloc.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_mpi: test_suite_mpi.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_mpi$(EXEXT): test_suite_mpi.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_pbkdf2: test_suite_pbkdf2.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_pbkdf2$(EXEXT): test_suite_pbkdf2.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_pem: test_suite_pem.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_pem$(EXEXT): test_suite_pem.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_pkcs1_v21: test_suite_pkcs1_v21.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_pkcs1_v21$(EXEXT): test_suite_pkcs1_v21.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_pkcs5: test_suite_pkcs5.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_pkcs5$(EXEXT): test_suite_pkcs5.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_pkparse: test_suite_pkparse.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_pkparse$(EXEXT): test_suite_pkparse.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_pkwrite: test_suite_pkwrite.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_pkwrite$(EXEXT): test_suite_pkwrite.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_pk: test_suite_pk.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_pk$(EXEXT): test_suite_pk.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_rsa: test_suite_rsa.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_rsa$(EXEXT): test_suite_rsa.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_shax: test_suite_shax.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_shax$(EXEXT): test_suite_shax.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_x509parse: test_suite_x509parse.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_x509parse$(EXEXT): test_suite_x509parse.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_x509write: test_suite_x509write.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_x509write$(EXEXT): test_suite_x509write.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_xtea: test_suite_xtea.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_xtea$(EXEXT): test_suite_xtea.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_debug: test_suite_debug.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_debug$(EXEXT): test_suite_debug.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
-test_suite_version: test_suite_version.c $(DEP)
- echo " CC $@.c"
- $(CC) $(CFLAGS) $(OFLAGS) $@.c $(LDFLAGS) -o $@
+test_suite_version$(EXEXT): test_suite_version.c $(DEP)
+ echo " CC $<"
+ $(CC) $(CFLAGS) $(OFLAGS) $< $(LDFLAGS) -o $@
clean:
+ifndef WINDOWS
rm -f $(APPS) *.c
+endif
+ifdef WINDOWS
+ del /Q /F *.c *.exe
+endif
check: $(APPS)
+ifndef WINDOWS
echo "Running checks (Success if all tests PASSED)"
RETURN=0; \
for i in $(APPS); \
@@ -421,3 +441,4 @@
echo ""; \
done; \
if [ "$$RETURN" -eq 1 ]; then exit 1; fi
+endif
diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function
index 795d2a0..ce1a072 100644
--- a/tests/suites/test_suite_mpi.function
+++ b/tests/suites/test_suite_mpi.function
@@ -97,6 +97,7 @@
unsigned char buf[1000];
size_t buflen;
FILE *file;
+ int ret;
memset( buf, 0x00, 1000 );
memset( str, 0x00, 1000 );
@@ -105,8 +106,9 @@
file = fopen( input_file, "r" );
TEST_ASSERT( file != NULL );
- TEST_ASSERT( mpi_read_file( &X, radix_X, file ) == result );
+ ret = mpi_read_file( &X, radix_X, file );
fclose(file);
+ TEST_ASSERT( ret == result );
if( result == 0 )
{