Re: [PATCH 3/4] git-imap-send: Implement CRAM-MD5 auth method
- From
Erik Faye-Lund <kusmabite@googlemail.com>
- Date
- Feb 9, 2010, 14:22 UTC
- Message-ID
- <40aa078e1002090622vb65027xa53acff95557a183@mail.gmail.com>
- In-Reply-To
- <1265717345-2118-4-git-send-email-mitake@dcl.info.waseda.ac.jp>
On Tue, Feb 9, 2010 at 1:09 PM, Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp> wrote:
Show 21 quoted lines
> +static int auth_cram_md5(struct imap_store *ctx, struct imap_cmd *cmd, const char *prompt)
> +{
> + int ret;
> + char digest[DIGEST_HEX_LEN];
> + char buf[256], base64_out[256];
> +
> + memset(buf, 0, 256);
> + base64_decode(buf, prompt, strlen(prompt));
> +
> + memset(digest, 0, DIGEST_HEX_LEN);
> + md5_hex_hmac(digest, (const unsigned char *)buf, strlen(buf),
> + (const unsigned char *)server.pass, strlen(server.pass));
> +
> + memset(buf, 0, 256);
> + strcpy(buf, server.user);
> + strcpy(buf + strlen(buf), " ");
> + strcpy(buf + strlen(buf), digest);
> + memset(base64_out, 0, 256);
> + base64_encode(base64_out, buf, strlen(buf));
> +
> + ret = socket_write(&ctx->imap->buf.sock, base64_out, strlen(base64_out));Since this is the only location in this function that accesses anything inside ctx, how about just passing the imap_socket itself to the function? That'd make it a bit simpler if, say, I was rewriting send-email in C and wanted to add CRAM-MD5 AUTH support (given that I'd done the work to use imap_socket first)...
-- Erik "kusma" Faye-Lund