aboutsummaryrefslogtreecommitdiff
path: root/networking/tls_rsa.h
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-11-25 16:17:26 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-11-25 16:17:26 +0100
commita6192f347fb87289c9cfdc4d57b126d704eba0de (patch)
treea444d7679f2d7d239fa7776fba8b5b578582adee /networking/tls_rsa.h
parenteb53d01be54caf0208e4006c089d7841fe4a0f57 (diff)
downloadbusybox-a6192f347fb87289c9cfdc4d57b126d704eba0de.tar.gz
tls: do not leak RSA key
function old new delta tls_handshake 1957 2059 +102 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking/tls_rsa.h')
-rw-r--r--networking/tls_rsa.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/networking/tls_rsa.h b/networking/tls_rsa.h
index f42923ff5..82bea2a67 100644
--- a/networking/tls_rsa.h
+++ b/networking/tls_rsa.h
@@ -13,6 +13,18 @@ typedef struct {
//bbox psPool_t *pool;
} psRsaKey_t;
+static ALWAYS_INLINE void psRsaKey_clear(psRsaKey_t *key)
+{
+ pstm_clear(&key->N);
+ pstm_clear(&key->e);
+ pstm_clear(&key->d);
+ pstm_clear(&key->p);
+ pstm_clear(&key->q);
+ pstm_clear(&key->dP);
+ pstm_clear(&key->dQ);
+ pstm_clear(&key->qP);
+}
+
#define psRsaEncryptPub(pool, key, in, inlen, out, outlen, data) \
psRsaEncryptPub( key, in, inlen, out, outlen)
int32 psRsaEncryptPub(psPool_t *pool, psRsaKey_t *key,