X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/5976eb9983e5f88f22d55f26ddac53c23aeb7f3d..251b9eb4698f569864c35127ddb7c309b92ccecb:/src/src/auths/cram_md5.c diff --git a/src/src/auths/cram_md5.c b/src/src/auths/cram_md5.c index 04d893c97..8e4794ca6 100644 --- a/src/src/auths/cram_md5.c +++ b/src/src/auths/cram_md5.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2016 */ +/* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ @@ -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*/ @@ -121,8 +121,8 @@ and use that. */ if (len > 64) { md5_start(&base); - md5_end(&base, (uschar *)secret, len, md5secret); - secret = (uschar *)md5secret; + md5_end(&base, US secret, len, md5secret); + secret = US md5secret; len = 16; } @@ -143,7 +143,7 @@ for (i = 0; i < 64; i++) md5_start(&base); md5_mid(&base, isecret); -md5_end(&base, (uschar *)challenge, Ustrlen(challenge), md5secret); +md5_end(&base, US challenge, Ustrlen(challenge), md5secret); /* Compute the outer MD5 digest */ @@ -175,7 +175,7 @@ int i, rc, len; /* If we are running in the test harness, always send the same challenge, an example string taken from the RFC. */ -if (running_in_test_harness) +if (f.running_in_test_harness) challenge = US"<1896.697170952@postoffice.reston.mci.net>"; /* No data should have been sent with the AUTH command */ @@ -212,7 +212,7 @@ the given name. */ if (secret == NULL) { - if (expand_string_forcedfail) return FAIL; + if (f.expand_string_forcedfail) return FAIL; auth_defer_msg = expand_string_message; return DEFER; } @@ -259,8 +259,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 */ @@ -278,7 +277,7 @@ or ERROR, as appropriate. */ if (!secret || !name) { - if (expand_string_forcedfail) + if (f.expand_string_forcedfail) { *buffer = 0; /* No message */ return CANCELLED; @@ -293,10 +292,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 +322,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(big_buffer, p - big_buffer)) < 0) return FAIL_SEND; -return smtp_read_response(inblock, (uschar *)buffer, buffsize, '2', timeout) +return smtp_read_response(sx, US buffer, buffsize, '2', timeout) ? OK : FAIL; } #endif /* STAND_ALONE */