diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-12-04 19:34:36 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-12-04 19:34:36 +0100 |
commit | 79bfff6437def01409c373f3e053d092d84ad20e (patch) | |
tree | 6cbf823a66844a7b0dccd28a6ca6a8743adf4b38 /sys/src/cmd/auth | |
parent | c5393d612fd2a0e4ff3f9557dcb6adb2ad27391f (diff) |
factotum: rsa: use mptober() to get right adjusted result instead of mptobe() and memset()
Diffstat (limited to 'sys/src/cmd/auth')
-rw-r--r-- | sys/src/cmd/auth/factotum/rsa.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/sys/src/cmd/auth/factotum/rsa.c b/sys/src/cmd/auth/factotum/rsa.c index 596f19e26..c1d659f39 100644 --- a/sys/src/cmd/auth/factotum/rsa.c +++ b/sys/src/cmd/auth/factotum/rsa.c @@ -131,7 +131,7 @@ rsaread(Fsstate *fss, void *va, uint *n) State *s; mpint *m; Keyinfo ki; - int len, r; + int len; s = fss->ps; switch(fss->phase){ @@ -160,13 +160,9 @@ rsaread(Fsstate *fss, void *va, uint *n) len = (mpsignif(priv->pub.n)+7)/8; if(len > *n) return failure(fss, "signature buffer too short"); - m = rsadecrypt(priv, s->digest, nil); - r = mptobe(m, (uchar*)va, len, nil); - if(r < len){ - memmove((uchar*)va+len-r, va, r); - memset(va, 0, len-r); - } *n = len; + m = rsadecrypt(priv, s->digest, nil); + mptober(m, (uchar*)va, len); mpfree(m); fss->phase = Established; return RpcOk; |