summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/cmd/auth/factotum/rsa.c10
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;