summaryrefslogtreecommitdiff
path: root/sys/src/cmd/ip/imap4d/auth.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-03-12 17:29:17 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2015-03-12 17:29:17 +0100
commit757354dac6d55d12f28a3a94c601e625cf89c5ac (patch)
tree918619b9e05b5369f1df474c1858fe62ac679817 /sys/src/cmd/ip/imap4d/auth.c
parent7e7cc2c8d78a1e5e61f6c71051f8039365314ec4 (diff)
imap4d: simplify auth code using encodefmt(), use readn() to get multiple of 3*18 in base64 input buffer
Diffstat (limited to 'sys/src/cmd/ip/imap4d/auth.c')
-rw-r--r--sys/src/cmd/ip/imap4d/auth.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/sys/src/cmd/ip/imap4d/auth.c b/sys/src/cmd/ip/imap4d/auth.c
index b08713732..b8dcd7581 100644
--- a/sys/src/cmd/ip/imap4d/auth.c
+++ b/sys/src/cmd/ip/imap4d/auth.c
@@ -130,17 +130,11 @@ cramauth(void)
AuthInfo *ai;
Chalstate *cs;
char *s, *t;
- int n;
if((cs = auth_challenge("proto=cram role=server")) == nil)
return "couldn't get cram challenge";
- n = cs->nchal;
- s = binalloc(&parseBin, n * 2, 0);
- n = enc64(s, n * 2, (uchar*)cs->chal, n);
- Bprint(&bout, "+ ");
- Bwrite(&bout, s, n);
- Bprint(&bout, "\r\n");
+ Bprint(&bout, "+ %.*[\r\n", cs->nchal, cs->chal);
if(Bflush(&bout) < 0)
writeErr();
@@ -172,7 +166,6 @@ passLogin(char *user, char *secret)
Chalstate *cs;
uchar digest[MD5dlen];
char response[2*MD5dlen+1];
- int i;
if((cs = auth_challenge("proto=cram role=server")) == nil)
return nil;
@@ -180,8 +173,7 @@ passLogin(char *user, char *secret)
hmac_md5((uchar*)cs->chal, strlen(cs->chal),
(uchar*)secret, strlen(secret), digest,
nil);
- for(i = 0; i < MD5dlen; i++)
- snprint(response + 2*i, sizeof(response) - 2*i, "%2.2ux", digest[i]);
+ snprint(response, sizeof(response), "%.*H", MD5dlen, digest);
cs->user = user;
cs->resp = response;