X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=sshsh512.c;h=f0f135108142be6594c31f023ac24007e076853a;hb=a8c4e67ff9ebdced0a4fb393f934b22cb5aae02f;hp=cd2b296e63bdf1efed34b2423257f6aa9ef704ed;hpb=d0ca84935e7f1ea686b57f75c13d883c4093e758;p=PuTTY.git diff --git a/sshsh512.c b/sshsh512.c index cd2b296e..f0f13510 100644 --- a/sshsh512.c +++ b/sshsh512.c @@ -306,6 +306,7 @@ void SHA512_Simple(const void *p, int len, unsigned char *output) { SHA512_Init(&s); SHA512_Bytes(&s, p, len); SHA512_Final(&s, output); + smemclr(&s, sizeof(s)); } void SHA384_Simple(const void *p, int len, unsigned char *output) { @@ -314,6 +315,7 @@ void SHA384_Simple(const void *p, int len, unsigned char *output) { SHA384_Init(&s); SHA512_Bytes(&s, p, len); SHA384_Final(&s, output); + smemclr(&s, sizeof(s)); } /* @@ -329,7 +331,7 @@ static void *sha512_init(void) return s; } -static void sha512_bytes(void *handle, void *p, int len) +static void sha512_bytes(void *handle, const void *p, int len) { SHA512_State *s = handle; @@ -341,6 +343,7 @@ static void sha512_final(void *handle, unsigned char *output) SHA512_State *s = handle; SHA512_Final(s, output); + smemclr(s, sizeof(*s)); sfree(s); } @@ -362,6 +365,7 @@ static void sha384_final(void *handle, unsigned char *output) SHA512_State *s = handle; SHA384_Final(s, output); + smemclr(s, sizeof(*s)); sfree(s); }