X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fauths%2Fcram_md5.c;h=a60db56e4dee71363cbf7581e921bbb57315c4ff;hb=81a559c80ccd6a0354b5485720c0205a69289fb5;hp=b9607b194b816c267ced020175d685eb887e7f7f;hpb=8768d5483a5894400ae1f70cda1beb44ed9b087c;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/auths/cram_md5.c b/src/src/auths/cram_md5.c index b9607b194..a60db56e4 100644 --- a/src/src/auths/cram_md5.c +++ b/src/src/auths/cram_md5.c @@ -52,8 +52,8 @@ auth_cram_md5_options_block auth_cram_md5_option_defaults = { /* Dummy values */ void auth_cram_md5_init(auth_instance *ablock) {} int auth_cram_md5_server(auth_instance *ablock, uschar *data) {return 0;} -int auth_cram_md5_client(auth_instance *ablock, smtp_inblock *inblock, - smtp_outblock *outblock, int timeout, uschar *buffer, int buffsize) {return 0;} +int auth_cram_md5_client(auth_instance *ablock, void *sx, int timeout, + uschar *buffer, int buffsize) {return 0;} #else /*!MACRO_PREDEF*/ @@ -109,7 +109,6 @@ static void compute_cram_md5(uschar *secret, uschar *challenge, uschar *digestptr) { md5 base; -int i; int len = Ustrlen(secret); uschar isecret[64]; uschar osecret[64]; @@ -133,7 +132,7 @@ memcpy(isecret, secret, len); memset(isecret+len, 0, 64-len); memcpy(osecret, isecret, 64); -for (i = 0; i < 64; i++) +for (int i = 0; i < 64; i++) { isecret[i] ^= 0x36; osecret[i] ^= 0x5c; @@ -227,7 +226,7 @@ HDEBUG(D_auth) debug_printf("CRAM-MD5: user name = %s\n", auth_vars[0]); debug_printf(" challenge = %s\n", challenge); debug_printf(" received = %s\n", clear); - Ustrcpy(buff," digest = "); + Ustrcpy(buff, US" digest = "); for (i = 0; i < 16; i++) sprintf(CS buff+22+2*i, "%02x", digest[i]); debug_printf("%.54s\n", buff); } @@ -259,8 +258,7 @@ return auth_check_serv_cond(ablock); int auth_cram_md5_client( auth_instance *ablock, /* authenticator block */ - smtp_inblock *inblock, /* input connection */ - smtp_outblock *outblock, /* output connection */ + void * sx, /* smtp connextion */ int timeout, /* command timeout */ uschar *buffer, /* for reading response */ int buffsize) /* size of buffer */ @@ -293,10 +291,9 @@ if (!secret || !name) /* Initiate the authentication exchange and read the challenge, which arrives in base 64. */ -if (smtp_write_command(outblock, SCMD_FLUSH, "AUTH %s\r\n", - ablock->public_name) < 0) +if (smtp_write_command(sx, SCMD_FLUSH, "AUTH %s\r\n", ablock->public_name) < 0) return FAIL_SEND; -if (!smtp_read_response(inblock, buffer, buffsize, '3', timeout)) +if (!smtp_read_response(sx, buffer, buffsize, '3', timeout)) return FAIL; if (b64decode(buffer + 4, &challenge) < 0) @@ -324,10 +321,10 @@ in big_buffer, but b64encode() returns its result in working store, so calling smtp_write_command(), which uses big_buffer, is OK. */ buffer[0] = 0; -if (smtp_write_command(outblock, SCMD_FLUSH, "%s\r\n", b64encode(big_buffer, +if (smtp_write_command(sx, SCMD_FLUSH, "%s\r\n", b64encode(CUS big_buffer, p - big_buffer)) < 0) return FAIL_SEND; -return smtp_read_response(inblock, US buffer, buffsize, '2', timeout) +return smtp_read_response(sx, US buffer, buffsize, '2', timeout) ? OK : FAIL; } #endif /* STAND_ALONE */