Control: tags 828469 + patch Control: tags 828469 + pending Dear maintainer,
I've prepared an NMU for openipmi (versioned as 2.0.22-1.1) and uploaded it to DELAYED/2. Please feel free to tell me if I should delay it longer. Regards. Sebastian
diff -Nru openipmi-2.0.22/debian/changelog openipmi-2.0.22/debian/changelog --- openipmi-2.0.22/debian/changelog 2016-07-03 20:09:46.000000000 +0200 +++ openipmi-2.0.22/debian/changelog 2016-12-14 22:19:50.000000000 +0100 @@ -1,3 +1,10 @@ +openipmi (2.0.22-1.1) unstable; urgency=medium + + * Non-maintainer upload. + * Add OpenSSL 1.1.0 support (Closes: #828469). + + -- Sebastian Andrzej Siewior <[email protected]> Wed, 14 Dec 2016 22:19:50 +0100 + openipmi (2.0.22-1) unstable; urgency=medium * new upstream release from 2016-06-01 diff -Nru openipmi-2.0.22/debian/patches/0001-Add-openssl-1.1.0-support.patch openipmi-2.0.22/debian/patches/0001-Add-openssl-1.1.0-support.patch --- openipmi-2.0.22/debian/patches/0001-Add-openssl-1.1.0-support.patch 1970-01-01 01:00:00.000000000 +0100 +++ openipmi-2.0.22/debian/patches/0001-Add-openssl-1.1.0-support.patch 2016-12-14 22:12:49.000000000 +0100 @@ -0,0 +1,184 @@ +From eeacbf0c675b61881fc00539cb365de084950ceb Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior <[email protected]> +Date: Sun, 25 Sep 2016 23:45:12 +0200 +Subject: [PATCH] Add openssl 1.1.0 support + +while keeping work under openssl 1.0.2. + +Signed-off-by: Sebastian Andrzej Siewior <[email protected]> +Signed-off-by: Corey Minyard <[email protected]> +--- + lanserv/lanserv_ipmi.c | 34 +++++++++++++++++++++------------- + lib/aes_cbc.c | 34 +++++++++++++++++++++------------- + 2 files changed, 42 insertions(+), 26 deletions(-) + +diff --git a/lanserv/lanserv_ipmi.c b/lanserv/lanserv_ipmi.c +index b0a2431f1322..67bf74a5e697 100644 +--- a/lanserv/lanserv_ipmi.c ++++ b/lanserv/lanserv_ipmi.c +@@ -2217,7 +2217,7 @@ aes_cbc_encrypt(lanserv_data_t *lan, session_t *session, + unsigned char *d; + unsigned char *iv; + unsigned int i; +- EVP_CIPHER_CTX ctx; ++ EVP_CIPHER_CTX *ctx; + int rv; + int outlen; + int tmplen; +@@ -2264,14 +2264,18 @@ aes_cbc_encrypt(lanserv_data_t *lan, session_t *session, + *data_size += 16; + + /* Ok, we're set to do the crypt operation. */ +- EVP_CIPHER_CTX_init(&ctx); +- EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, a->ckey, iv); +- EVP_CIPHER_CTX_set_padding(&ctx, 0); +- if (!EVP_EncryptUpdate(&ctx, *pos, &outlen, d, l)) { ++ ctx = EVP_CIPHER_CTX_new(); ++ if (!ctx) { ++ rv = ENOMEM; ++ goto out_cleanup; ++ } ++ EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, a->ckey, iv); ++ EVP_CIPHER_CTX_set_padding(ctx, 0); ++ if (!EVP_EncryptUpdate(ctx, *pos, &outlen, d, l)) { + rv = ENOMEM; + goto out_cleanup; + } +- if (!EVP_EncryptFinal_ex(&ctx, (*pos) + outlen, &tmplen)) { ++ if (!EVP_EncryptFinal_ex(ctx, (*pos) + outlen, &tmplen)) { + rv = ENOMEM; /* right? */ + goto out_cleanup; + } +@@ -2281,7 +2285,7 @@ aes_cbc_encrypt(lanserv_data_t *lan, session_t *session, + *data_len = outlen + 16; + + out_cleanup: +- EVP_CIPHER_CTX_cleanup(&ctx); ++ EVP_CIPHER_CTX_free(ctx); + free(d); + return rv; + } +@@ -2292,7 +2296,7 @@ aes_cbc_decrypt(lanserv_data_t *lan, session_t *session, msg_t *msg) + auth_data_t *a = &session->auth_data; + unsigned int l = msg->len; + unsigned char *d; +- EVP_CIPHER_CTX ctx; ++ EVP_CIPHER_CTX *ctx; + int outlen; + unsigned char *pad; + int padlen; +@@ -2312,10 +2316,14 @@ aes_cbc_decrypt(lanserv_data_t *lan, session_t *session, msg_t *msg) + memcpy(d, msg->data+16, l); + + /* Ok, we're set to do the decrypt operation. */ +- EVP_CIPHER_CTX_init(&ctx); +- EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, a->k2, msg->data); +- EVP_CIPHER_CTX_set_padding(&ctx, 0); +- if (!EVP_DecryptUpdate(&ctx, msg->data+16, &outlen, d, l)) { ++ ctx = EVP_CIPHER_CTX_new(); ++ if (!ctx) { ++ rv = ENOMEM; ++ goto out_cleanup; ++ } ++ EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, a->k2, msg->data); ++ EVP_CIPHER_CTX_set_padding(ctx, 0); ++ if (!EVP_DecryptUpdate(ctx, msg->data+16, &outlen, d, l)) { + rv = EINVAL; + goto out_cleanup; + } +@@ -2348,7 +2356,7 @@ aes_cbc_decrypt(lanserv_data_t *lan, session_t *session, msg_t *msg) + msg->len = outlen; + + out_cleanup: +- EVP_CIPHER_CTX_cleanup(&ctx); ++ EVP_CIPHER_CTX_free(ctx); + free(d); + return rv; + } +diff --git a/lib/aes_cbc.c b/lib/aes_cbc.c +index 483cdfbc521b..f20d69b8b1b3 100644 +--- a/lib/aes_cbc.c ++++ b/lib/aes_cbc.c +@@ -86,7 +86,7 @@ aes_cbc_encrypt(ipmi_con_t *ipmi, + unsigned int l = *payload_len; + unsigned int i; + unsigned char *d; +- EVP_CIPHER_CTX ctx; ++ EVP_CIPHER_CTX *ctx; + int rv; + int outlen; + int tmplen; +@@ -133,15 +133,19 @@ aes_cbc_encrypt(ipmi_con_t *ipmi, + *header_len -= 16; + *max_payload_len += 16; + ++ ctx = EVP_CIPHER_CTX_new(); ++ if (!ctx) { ++ rv = ENOMEM; ++ goto out_cleanup; ++ } + /* Ok, we're set to do the crypt operation. */ +- EVP_CIPHER_CTX_init(&ctx); +- EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, info->k2, iv); +- EVP_CIPHER_CTX_set_padding(&ctx, 0); +- if (!EVP_EncryptUpdate(&ctx, *payload, &outlen, d, l)) { ++ EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, info->k2, iv); ++ EVP_CIPHER_CTX_set_padding(ctx, 0); ++ if (!EVP_EncryptUpdate(ctx, *payload, &outlen, d, l)) { + rv = ENOMEM; /* right? */ + goto out_cleanup; + } +- if (!EVP_EncryptFinal_ex(&ctx, (*payload) + outlen, &tmplen)) { ++ if (!EVP_EncryptFinal_ex(ctx, (*payload) + outlen, &tmplen)) { + rv = ENOMEM; /* right? */ + goto out_cleanup; + } +@@ -154,7 +158,7 @@ aes_cbc_encrypt(ipmi_con_t *ipmi, + *payload_len = outlen + 16; + + out_cleanup: +- EVP_CIPHER_CTX_cleanup(&ctx); ++ EVP_CIPHER_CTX_free(ctx); + ipmi_mem_free(d); + + return rv; +@@ -170,7 +174,7 @@ aes_cbc_decrypt(ipmi_con_t *ipmi, + unsigned int l = *payload_len; + unsigned char *d; + unsigned char *p; +- EVP_CIPHER_CTX ctx; ++ EVP_CIPHER_CTX *ctx; + int outlen; + int rv = 0; + unsigned char *pad; +@@ -195,10 +199,14 @@ aes_cbc_decrypt(ipmi_con_t *ipmi, + memcpy(d, p, l); + + /* Ok, we're set to do the decrypt operation. */ +- EVP_CIPHER_CTX_init(&ctx); +- EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, info->k2, *payload); +- EVP_CIPHER_CTX_set_padding(&ctx, 0); +- if (!EVP_DecryptUpdate(&ctx, p, &outlen, d, l)) { ++ ctx = EVP_CIPHER_CTX_new(); ++ if (!ctx) { ++ rv = ENOMEM; ++ goto out_cleanup; ++ } ++ EVP_DecryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, info->k2, *payload); ++ EVP_CIPHER_CTX_set_padding(ctx, 0); ++ if (!EVP_DecryptUpdate(ctx, p, &outlen, d, l)) { + rv = EINVAL; + goto out_cleanup; + } +@@ -231,7 +239,7 @@ aes_cbc_decrypt(ipmi_con_t *ipmi, + *payload_len = outlen; + + out_cleanup: +- EVP_CIPHER_CTX_cleanup(&ctx); ++ EVP_CIPHER_CTX_free(ctx); + ipmi_mem_free(d); + return rv; + } +-- +2.11.0 + diff -Nru openipmi-2.0.22/debian/patches/series openipmi-2.0.22/debian/patches/series --- openipmi-2.0.22/debian/patches/series 2016-07-03 19:08:45.000000000 +0200 +++ openipmi-2.0.22/debian/patches/series 2016-12-14 22:13:51.000000000 +0100 @@ -0,0 +1 @@ +0001-Add-openssl-1.1.0-support.patch

