From 1ffefaca1e13203ca03a439e2513c51d0f755a29 Mon Sep 17 00:00:00 2001 From: Paul Bakker Date: Sat, 28 Sep 2013 15:23:03 +0200 Subject: [PATCH] Introduced entropy_free() --- include/polarssl/entropy.h | 7 +++++++ library/entropy.c | 5 +++++ programs/pkey/dh_client.c | 1 + programs/pkey/dh_genprime.c | 1 + programs/pkey/dh_server.c | 1 + programs/pkey/ecdsa.c | 1 + programs/pkey/gen_key.c | 1 + programs/pkey/pk_decrypt.c | 1 + programs/pkey/pk_encrypt.c | 1 + programs/pkey/pk_sign.c | 1 + programs/pkey/rsa_decrypt.c | 1 + programs/pkey/rsa_encrypt.c | 1 + programs/pkey/rsa_genkey.c | 1 + programs/pkey/rsa_sign_pss.c | 1 + programs/random/gen_entropy.c | 1 + programs/random/gen_random_ctr_drbg.c | 1 + programs/ssl/ssl_client1.c | 1 + programs/ssl/ssl_client2.c | 1 + programs/ssl/ssl_fork_server.c | 1 + programs/ssl/ssl_mail_client.c | 1 + programs/ssl/ssl_server.c | 1 + programs/ssl/ssl_server2.c | 1 + programs/test/o_p_test.c | 1 + programs/test/ssl_test.c | 1 + programs/x509/cert_app.c | 1 + programs/x509/cert_req.c | 1 + programs/x509/cert_write.c | 1 + tests/suites/test_suite_rsa.function | 1 + 28 files changed, 38 insertions(+) diff --git a/include/polarssl/entropy.h b/include/polarssl/entropy.h index ea27848db3..e334c2247b 100644 --- a/include/polarssl/entropy.h +++ b/include/polarssl/entropy.h @@ -116,6 +116,13 @@ entropy_context; */ void entropy_init( entropy_context *ctx ); +/** + * \brief Free the data in the context + * + * \param ctx Entropy context to free + */ +void entropy_free( entropy_context *ctx ); + /** * \brief Adds an entropy source to poll * diff --git a/library/entropy.c b/library/entropy.c index 2352bcff4d..d43f9833c1 100644 --- a/library/entropy.c +++ b/library/entropy.c @@ -64,6 +64,11 @@ void entropy_init( entropy_context *ctx ) #endif /* POLARSSL_NO_DEFAULT_ENTROPY_SOURCES */ } +void entropy_free( entropy_context *ctx ) +{ + ((void) ctx); +} + int entropy_add_source( entropy_context *ctx, f_source_ptr f_source, void *p_source, size_t threshold ) diff --git a/programs/pkey/dh_client.c b/programs/pkey/dh_client.c index 4410eb6fe5..18027fa651 100644 --- a/programs/pkey/dh_client.c +++ b/programs/pkey/dh_client.c @@ -275,6 +275,7 @@ exit: net_close( server_fd ); rsa_free( &rsa ); dhm_free( &dhm ); + entropy_free( &entropy ); #if defined(_WIN32) printf( " + Press Enter to exit this program.\n" ); diff --git a/programs/pkey/dh_genprime.c b/programs/pkey/dh_genprime.c index f773f1e429..2089fb6320 100644 --- a/programs/pkey/dh_genprime.c +++ b/programs/pkey/dh_genprime.c @@ -143,6 +143,7 @@ int main( int argc, char *argv[] ) exit: mpi_free( &G ); mpi_free( &P ); mpi_free( &Q ); + entropy_free( &entropy ); #if defined(_WIN32) printf( " Press Enter to exit this program.\n" ); diff --git a/programs/pkey/dh_server.c b/programs/pkey/dh_server.c index 584ff08dad..d2b6cc48da 100644 --- a/programs/pkey/dh_server.c +++ b/programs/pkey/dh_server.c @@ -276,6 +276,7 @@ exit: net_close( client_fd ); rsa_free( &rsa ); dhm_free( &dhm ); + entropy_free( &entropy ); #if defined(_WIN32) printf( " + Press Enter to exit this program.\n" ); diff --git a/programs/pkey/ecdsa.c b/programs/pkey/ecdsa.c index efe671616f..add74c6d66 100644 --- a/programs/pkey/ecdsa.c +++ b/programs/pkey/ecdsa.c @@ -179,6 +179,7 @@ exit: ecdsa_free( &ctx_verify ); ecdsa_free( &ctx_sign ); + entropy_free( &entropy ); return( ret ); } diff --git a/programs/pkey/gen_key.c b/programs/pkey/gen_key.c index 3cf682b8af..19f46a4007 100644 --- a/programs/pkey/gen_key.c +++ b/programs/pkey/gen_key.c @@ -269,6 +269,7 @@ exit: } pk_free( &key ); + entropy_free( &entropy ); #if defined(_WIN32) printf( " + Press Enter to exit this program.\n" ); diff --git a/programs/pkey/pk_decrypt.c b/programs/pkey/pk_decrypt.c index a6ae28108d..bf3455dfc3 100644 --- a/programs/pkey/pk_decrypt.c +++ b/programs/pkey/pk_decrypt.c @@ -136,6 +136,7 @@ int main( int argc, char *argv[] ) ret = 0; exit: + entropy_free( &entropy ); #if defined(POLARSSL_ERROR_C) polarssl_strerror( ret, (char *) buf, sizeof(buf) ); diff --git a/programs/pkey/pk_encrypt.c b/programs/pkey/pk_encrypt.c index aa202b00e1..149e7ddfe0 100644 --- a/programs/pkey/pk_encrypt.c +++ b/programs/pkey/pk_encrypt.c @@ -136,6 +136,7 @@ int main( int argc, char *argv[] ) printf( "\n . Done (created \"%s\")\n\n", "result-enc.txt" ); exit: + entropy_free( &entropy ); #if defined(POLARSSL_ERROR_C) polarssl_strerror( ret, (char *) buf, sizeof(buf) ); diff --git a/programs/pkey/pk_sign.c b/programs/pkey/pk_sign.c index 5a874b3368..67ac0b4142 100644 --- a/programs/pkey/pk_sign.c +++ b/programs/pkey/pk_sign.c @@ -149,6 +149,7 @@ int main( int argc, char *argv[] ) exit: pk_free( &pk ); + entropy_free( &entropy ); #if defined(POLARSSL_ERROR_C) polarssl_strerror( ret, (char *) buf, sizeof(buf) ); diff --git a/programs/pkey/rsa_decrypt.c b/programs/pkey/rsa_decrypt.c index 36ac80953a..02d30c8ed1 100644 --- a/programs/pkey/rsa_decrypt.c +++ b/programs/pkey/rsa_decrypt.c @@ -160,6 +160,7 @@ int main( int argc, char *argv[] ) ret = 0; exit: + entropy_free( &entropy ); #if defined(_WIN32) printf( " + Press Enter to exit this program.\n" ); diff --git a/programs/pkey/rsa_encrypt.c b/programs/pkey/rsa_encrypt.c index c444c1afa1..2ed27e23ea 100644 --- a/programs/pkey/rsa_encrypt.c +++ b/programs/pkey/rsa_encrypt.c @@ -148,6 +148,7 @@ int main( int argc, char *argv[] ) printf( "\n . Done (created \"%s\")\n\n", "result-enc.txt" ); exit: + entropy_free( &entropy ); #if defined(_WIN32) printf( " + Press Enter to exit this program.\n" ); diff --git a/programs/pkey/rsa_genkey.c b/programs/pkey/rsa_genkey.c index f92c50b6e9..7711776ef2 100644 --- a/programs/pkey/rsa_genkey.c +++ b/programs/pkey/rsa_genkey.c @@ -150,6 +150,7 @@ exit: fclose( fpriv ); rsa_free( &rsa ); + entropy_free( &entropy ); #if defined(_WIN32) printf( " Press Enter to exit this program.\n" ); diff --git a/programs/pkey/rsa_sign_pss.c b/programs/pkey/rsa_sign_pss.c index 06fc2e07bf..fecfcc26eb 100644 --- a/programs/pkey/rsa_sign_pss.c +++ b/programs/pkey/rsa_sign_pss.c @@ -156,6 +156,7 @@ int main( int argc, char *argv[] ) exit: pk_free( &pk ); + entropy_free( &entropy ); #if defined(_WIN32) printf( " + Press Enter to exit this program.\n" ); diff --git a/programs/random/gen_entropy.c b/programs/random/gen_entropy.c index 38c104c92d..e0cbe528a4 100644 --- a/programs/random/gen_entropy.c +++ b/programs/random/gen_entropy.c @@ -81,6 +81,7 @@ int main( int argc, char *argv[] ) cleanup: fclose( f ); + entropy_free( &entropy ); return( ret ); } diff --git a/programs/random/gen_random_ctr_drbg.c b/programs/random/gen_random_ctr_drbg.c index fcdc2eec18..32b8521d30 100644 --- a/programs/random/gen_random_ctr_drbg.c +++ b/programs/random/gen_random_ctr_drbg.c @@ -111,6 +111,7 @@ cleanup: printf("\n"); fclose( f ); + entropy_free( &entropy ); return( ret ); } diff --git a/programs/ssl/ssl_client1.c b/programs/ssl/ssl_client1.c index 2c6e7c8680..efb210e464 100644 --- a/programs/ssl/ssl_client1.c +++ b/programs/ssl/ssl_client1.c @@ -277,6 +277,7 @@ exit: x509_crt_free( &cacert ); net_close( server_fd ); ssl_free( &ssl ); + entropy_free( &entropy ); memset( &ssl, 0, sizeof( ssl ) ); diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index f518d39f79..2093d1a6a5 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -913,6 +913,7 @@ exit: #endif ssl_session_free( &saved_session ); ssl_free( &ssl ); + entropy_free( &entropy ); memset( &ssl, 0, sizeof( ssl ) ); diff --git a/programs/ssl/ssl_fork_server.c b/programs/ssl/ssl_fork_server.c index 3d4c7d3b30..02de364ba4 100644 --- a/programs/ssl/ssl_fork_server.c +++ b/programs/ssl/ssl_fork_server.c @@ -361,6 +361,7 @@ exit: x509_crt_free( &srvcert ); pk_free( &pkey ); ssl_free( &ssl ); + entropy_free( &entropy ); #if defined(_WIN32) printf( " Press Enter to exit this program.\n" ); diff --git a/programs/ssl/ssl_mail_client.c b/programs/ssl/ssl_mail_client.c index edee85db7c..70ba6221ea 100644 --- a/programs/ssl/ssl_mail_client.c +++ b/programs/ssl/ssl_mail_client.c @@ -791,6 +791,7 @@ exit: x509_crt_free( &cacert ); pk_free( &pkey ); ssl_free( &ssl ); + entropy_free( &entropy ); #if defined(_WIN32) printf( " + Press Enter to exit this program.\n" ); diff --git a/programs/ssl/ssl_server.c b/programs/ssl/ssl_server.c index 2a528cb078..b4883aae73 100644 --- a/programs/ssl/ssl_server.c +++ b/programs/ssl/ssl_server.c @@ -367,6 +367,7 @@ exit: #if defined(POLARSSL_SSL_CACHE_C) ssl_cache_free( &cache ); #endif + entropy_free( &entropy ); #if defined(_WIN32) printf( " Press Enter to exit this program.\n" ); diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 2d81e755e0..a6ff57feab 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -963,6 +963,7 @@ exit: #endif ssl_free( &ssl ); + entropy_free( &entropy ); #if defined(POLARSSL_SSL_CACHE_C) ssl_cache_free( &cache ); diff --git a/programs/test/o_p_test.c b/programs/test/o_p_test.c index bf54752c9c..0665098f60 100644 --- a/programs/test/o_p_test.c +++ b/programs/test/o_p_test.c @@ -252,6 +252,7 @@ int main( int argc, char *argv[] ) printf( "String value (PolarSSL Private Encrypt, OpenSSL Public Decrypt): '%s'\n", o_priv_decrypted ); exit: + entropy_free( &entropy ); #ifdef WIN32 printf( " + Press Enter to exit this program.\n" ); diff --git a/programs/test/ssl_test.c b/programs/test/ssl_test.c index 20907d8db0..debdb073e9 100644 --- a/programs/test/ssl_test.c +++ b/programs/test/ssl_test.c @@ -401,6 +401,7 @@ exit: x509_crt_free( &srvcert ); pk_free( &pkey ); ssl_free( &ssl ); + entropy_free( &entropy ); net_close( client_fd ); return( ret ); diff --git a/programs/x509/cert_app.c b/programs/x509/cert_app.c index dedac9420a..c43e662af3 100644 --- a/programs/x509/cert_app.c +++ b/programs/x509/cert_app.c @@ -449,6 +449,7 @@ exit: x509_crt_free( &cacert ); x509_crt_free( &clicert ); pk_free( &pkey ); + entropy_free( &entropy ); #if defined(_WIN32) printf( " + Press Enter to exit this program.\n" ); diff --git a/programs/x509/cert_req.c b/programs/x509/cert_req.c index c6d7dff72d..dc45f9496f 100644 --- a/programs/x509/cert_req.c +++ b/programs/x509/cert_req.c @@ -329,6 +329,7 @@ exit: x509write_csr_free( &req ); pk_free( &key ); + entropy_free( &entropy ); #if defined(_WIN32) printf( " + Press Enter to exit this program.\n" ); diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index ba00dc3de8..94dfa1ddc1 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -650,6 +650,7 @@ exit: pk_free( &loaded_subject_key ); pk_free( &loaded_issuer_key ); mpi_free( &serial ); + entropy_free( &entropy ); #if defined(_WIN32) printf( " + Press Enter to exit this program.\n" ); diff --git a/tests/suites/test_suite_rsa.function b/tests/suites/test_suite_rsa.function index dfd2c96af8..9bc8a24bf3 100644 --- a/tests/suites/test_suite_rsa.function +++ b/tests/suites/test_suite_rsa.function @@ -528,6 +528,7 @@ void rsa_gen_key( int nrbits, int exponent, int result) } rsa_free( &ctx ); + entropy_free( &entropy ); } /* END_CASE */