Merge branch 'ky/imap-send-openssl-1.1.0'
Upcoming OpenSSL 1.1.0 will break compilation b updating a few APIs we use in imap-send, which has been adjusted for the change. * ky/imap-send-openssl-1.1.0: configure: remove checking for HMAC_CTX_cleanup imap-send: avoid deprecated TLSv1_method() imap-send: check NULL return of SSL_CTX_new() imap-send: use HMAC() function provided by OpenSSL
This commit is contained in:
20
imap-send.c
20
imap-send.c
@ -287,17 +287,20 @@ static int ssl_socket_connect(struct imap_socket *sock, int use_tls_only, int ve
|
||||
SSL_library_init();
|
||||
SSL_load_error_strings();
|
||||
|
||||
if (use_tls_only)
|
||||
meth = TLSv1_method();
|
||||
else
|
||||
meth = SSLv23_method();
|
||||
|
||||
meth = SSLv23_method();
|
||||
if (!meth) {
|
||||
ssl_socket_perror("SSLv23_method");
|
||||
return -1;
|
||||
}
|
||||
|
||||
ctx = SSL_CTX_new(meth);
|
||||
if (!ctx) {
|
||||
ssl_socket_perror("SSL_CTX_new");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (use_tls_only)
|
||||
SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3);
|
||||
|
||||
if (verify)
|
||||
SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);
|
||||
@ -862,7 +865,6 @@ static char hexchar(unsigned int b)
|
||||
static char *cram(const char *challenge_64, const char *user, const char *pass)
|
||||
{
|
||||
int i, resp_len, encoded_len, decoded_len;
|
||||
HMAC_CTX hmac;
|
||||
unsigned char hash[16];
|
||||
char hex[33];
|
||||
char *response, *response_64, *challenge;
|
||||
@ -877,10 +879,8 @@ static char *cram(const char *challenge_64, const char *user, const char *pass)
|
||||
(unsigned char *)challenge_64, encoded_len);
|
||||
if (decoded_len < 0)
|
||||
die("invalid challenge %s", challenge_64);
|
||||
HMAC_Init(&hmac, (unsigned char *)pass, strlen(pass), EVP_md5());
|
||||
HMAC_Update(&hmac, (unsigned char *)challenge, decoded_len);
|
||||
HMAC_Final(&hmac, hash, NULL);
|
||||
HMAC_CTX_cleanup(&hmac);
|
||||
if (!HMAC(EVP_md5(), pass, strlen(pass), (unsigned char *)challenge, decoded_len, hash, NULL))
|
||||
die("HMAC error");
|
||||
|
||||
hex[32] = 0;
|
||||
for (i = 0; i < 16; i++) {
|
||||
|
Reference in New Issue
Block a user