diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-03-12 17:29:17 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-03-12 17:29:17 +0100 |
commit | 757354dac6d55d12f28a3a94c601e625cf89c5ac (patch) | |
tree | 918619b9e05b5369f1df474c1858fe62ac679817 /sys/src/cmd/ip/imap4d/auth.c | |
parent | 7e7cc2c8d78a1e5e61f6c71051f8039365314ec4 (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.c | 12 |
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; |