Skip to content

Commit c417a1c

Browse files
committed
zero sensitive state before free
1 parent 4a103a1 commit c417a1c

3 files changed

Lines changed: 13 additions & 0 deletions

File tree

wolfcrypt/src/arc4.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,13 @@
2525

2626
#include <wolfssl/wolfcrypt/arc4.h>
2727

28+
#ifdef NO_INLINE
29+
#include <wolfssl/wolfcrypt/misc.h>
30+
#else
31+
#define WOLFSSL_MISC_INCLUDED
32+
#include <wolfcrypt/src/misc.c>
33+
#endif
34+
2835

2936
int wc_Arc4SetKey(Arc4* arc4, const byte* key, word32 length)
3037
{
@@ -137,6 +144,10 @@ void wc_Arc4Free(Arc4* arc4)
137144
#if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_ARC4)
138145
wolfAsync_DevCtxFree(&arc4->asyncDev, WOLFSSL_ASYNC_MARKER_ARC4);
139146
#endif /* WOLFSSL_ASYNC_CRYPT */
147+
148+
ForceZero(arc4->state, sizeof(arc4->state));
149+
arc4->x = 0;
150+
arc4->y = 0;
140151
}
141152

142153
#endif /* NO_RC4 */

wolfcrypt/src/des3.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2002,6 +2002,7 @@ void wc_Des3Free(Des3* des3)
20022002
(defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_3DES))
20032003
ForceZero(des3->devKey, sizeof(des3->devKey));
20042004
#endif
2005+
ForceZero(des3, sizeof(Des3));
20052006
#ifdef WOLFSSL_CHECK_MEM_ZERO
20062007
wc_MemZero_Check(des3, sizeof(Des3));
20072008
#endif

wolfcrypt/src/wc_lms_impl.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2855,6 +2855,7 @@ static int wc_hss_next_subtree_inc(LmsState* state, HssPrivKey* priv_key,
28552855
q64_hi = cq64_hi;
28562856
}
28572857

2858+
ForceZero(tmp_priv, sizeof(tmp_priv));
28582859
return ret;
28592860
}
28602861

0 commit comments

Comments
 (0)