summaryrefslogtreecommitdiffstats
path: root/usr.bin/ssh/ssh-rsa.c
diff options
context:
space:
mode:
authordjm <djm@openbsd.org>2014-02-02 03:44:31 +0000
committerdjm <djm@openbsd.org>2014-02-02 03:44:31 +0000
commitc671dcf14e079a1b6525a1f57647ad96afd7b3f0 (patch)
tree2c346b9f1e36ecacfa7b237ca21c54a6daf3a369 /usr.bin/ssh/ssh-rsa.c
parentdrm/i915/dp: increase i2c-over-aux retry interval on AUX DEFER (diff)
downloadwireguard-openbsd-c671dcf14e079a1b6525a1f57647ad96afd7b3f0.tar.xz
wireguard-openbsd-c671dcf14e079a1b6525a1f57647ad96afd7b3f0.zip
convert memset of potentially-private data to explicit_bzero()
Diffstat (limited to 'usr.bin/ssh/ssh-rsa.c')
-rw-r--r--usr.bin/ssh/ssh-rsa.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/usr.bin/ssh/ssh-rsa.c b/usr.bin/ssh/ssh-rsa.c
index 27b50808593..eaf9b316fca 100644
--- a/usr.bin/ssh/ssh-rsa.c
+++ b/usr.bin/ssh/ssh-rsa.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ssh-rsa.c,v 1.50 2014/01/09 23:20:00 djm Exp $ */
+/* $OpenBSD: ssh-rsa.c,v 1.51 2014/02/02 03:44:31 djm Exp $ */
/*
* Copyright (c) 2000, 2003 Markus Friedl <markus@openbsd.org>
*
@@ -67,7 +67,7 @@ ssh_rsa_sign(const Key *key, u_char **sigp, u_int *lenp,
sig = xmalloc(slen);
ok = RSA_sign(nid, digest, dlen, sig, &len, key->rsa);
- memset(digest, 'd', sizeof(digest));
+ explicit_bzero(digest, sizeof(digest));
if (ok != 1) {
int ecode = ERR_get_error();
@@ -81,7 +81,7 @@ ssh_rsa_sign(const Key *key, u_char **sigp, u_int *lenp,
u_int diff = slen - len;
debug("slen %u > len %u", slen, len);
memmove(sig + diff, sig, len);
- memset(sig, 0, diff);
+ explicit_bzero(sig, diff);
} else if (len > slen) {
error("%s: slen %u slen2 %u", __func__, slen, len);
free(sig);
@@ -99,7 +99,7 @@ ssh_rsa_sign(const Key *key, u_char **sigp, u_int *lenp,
memcpy(*sigp, buffer_ptr(&b), len);
}
buffer_free(&b);
- memset(sig, 's', slen);
+ explicit_bzero(sig, slen);
free(sig);
return 0;
@@ -158,7 +158,7 @@ ssh_rsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
modlen, len);
sigblob = xrealloc(sigblob, 1, modlen);
memmove(sigblob + diff, sigblob, len);
- memset(sigblob, 0, diff);
+ explicit_bzero(sigblob, diff);
len = modlen;
}
/* hash the data */
@@ -175,8 +175,8 @@ ssh_rsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
ret = openssh_RSA_verify(hash_alg, digest, dlen, sigblob, len,
key->rsa);
- memset(digest, 'd', sizeof(digest));
- memset(sigblob, 's', len);
+ explicit_bzero(digest, sizeof(digest));
+ explicit_bzero(sigblob, len);
free(sigblob);
debug("%s: signature %scorrect", __func__, (ret == 0) ? "in" : "");
return ret;