Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.4:ARM
libica.16467
libica-sles15sp2-Zeroize-local-variables.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File libica-sles15sp2-Zeroize-local-variables.patch of Package libica.16467
From 47a98c0f37af62783d59699b5e10830385817ec2 Mon Sep 17 00:00:00 2001 From: Joerg Schmidbauer <jschmidb@de.ibm.com> Date: Fri, 21 Aug 2020 11:29:11 +0200 Subject: [PATCH] Zeroize local variables Some internal variables used to store sensitive information (keys) were not zeroized before returning to the calling application. Signed-off-by: Joerg Schmidbauer <jschmidb@de.ibm.com> --- src/ica_api.c | 8 ++++++++ src/include/s390_aes.h | 4 ++++ src/include/s390_des.h | 8 ++++++++ 3 files changed, 20 insertions(+) diff --git a/src/ica_api.c b/src/ica_api.c index eb6b154..5bdf24e 100644 --- a/src/ica_api.c +++ b/src/ica_api.c @@ -1034,6 +1034,8 @@ unsigned int ica_rsa_mod_expo(ica_adapter_handle_t adapter_handle, if (rc == 0) stats_increment(ICA_STATS_RSA_ME, hardware, ENCRYPT); + OPENSSL_cleanse(&rb, sizeof(rb)); + return rc; } @@ -1089,6 +1091,10 @@ unsigned int ica_rsa_crt_key_check(ica_rsa_key_crt_t *rsa_key) free(tmp_buf); + BN_clear_free(bn_p); + BN_clear_free(bn_q); + BN_clear_free(bn_invq); + return 1; } return 0; @@ -1147,6 +1153,8 @@ unsigned int ica_rsa_crt(ica_adapter_handle_t adapter_handle, if (rc == 0) stats_increment(ICA_STATS_RSA_CRT, hardware, ENCRYPT); + OPENSSL_cleanse(&rb, sizeof(rb)); + return rc; } diff --git a/src/include/s390_aes.h b/src/include/s390_aes.h index 2e2f325..4a02a4c 100644 --- a/src/include/s390_aes.h +++ b/src/include/s390_aes.h @@ -327,6 +327,8 @@ static inline int s390_aes_ecb_sw(unsigned int function_code, &aes_key, direction); } + OPENSSL_cleanse(&aes_key, sizeof(aes_key)); + return 0; } @@ -388,6 +390,8 @@ static inline int s390_aes_cbc_sw(unsigned int function_code, AES_cbc_encrypt(input_data, output_data, input_length, &aes_key, (unsigned char *) iv, direction); + OPENSSL_cleanse(&aes_key, sizeof(aes_key)); + return 0; } diff --git a/src/include/s390_des.h b/src/include/s390_des.h index 811de4d..81d8ed0 100644 --- a/src/include/s390_des.h +++ b/src/include/s390_des.h @@ -112,6 +112,10 @@ static inline int s390_des_ecb_sw(unsigned int function_code, unsigned long inpu break; } + OPENSSL_cleanse(&key_schedule1, sizeof(key_schedule1)); + OPENSSL_cleanse(&key_schedule2, sizeof(key_schedule2)); + OPENSSL_cleanse(&key_schedule2, sizeof(key_schedule3)); + return 0; } @@ -193,6 +197,10 @@ static inline int s390_des_cbc_sw(unsigned int function_code, break; }; + OPENSSL_cleanse(&key_schedule1, sizeof(key_schedule1)); + OPENSSL_cleanse(&key_schedule2, sizeof(key_schedule2)); + OPENSSL_cleanse(&key_schedule2, sizeof(key_schedule3)); + return 0; } -- 2.26.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor