Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 559392 Details for
Bug 592528
dev-libs/cyrus-sasl fails to build with >=dev-libs/openssl-1.1.0
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
0003-Add-OpenSSL-1.1.0-support-in-saslauthd.patch
0003-Add-OpenSSL-1.1.0-support-in-saslauthd.patch (text/plain), 3.59 KB, created by
Kristian
on 2019-01-01 15:44:52 UTC
(
hide
)
Description:
0003-Add-OpenSSL-1.1.0-support-in-saslauthd.patch
Filename:
MIME Type:
Creator:
Kristian
Created:
2019-01-01 15:44:52 UTC
Size:
3.59 KB
patch
obsolete
>From 41c3e7ab8ceb3e9d69fa004f4ccf7a31030c5bdf Mon Sep 17 00:00:00 2001 >From: Jakub Jelen <jjelen@redhat.com> >Date: Mon, 7 Nov 2016 14:27:03 +0100 >Subject: [PATCH] Add OpenSSL 1.1.0 support in saslauthd > >Author: Tomas Mraz >--- > plugins/ntlm.c | 6 ++--- > plugins/otp.c | 12 ++++----- > saslauthd/lak.c | 66 ++++++++++++++++++++++++++++++++++++++++--------- > 3 files changed, 64 insertions(+), 20 deletions(-) > >diff --git a/plugins/ntlm.c b/plugins/ntlm.c >index b5630d8..b2d1ed5 100644 >--- a/plugins/ntlm.c >+++ b/plugins/ntlm.c >@@ -424,8 +424,8 @@ static HMAC_CTX *_plug_HMAC_CTX_new(const sasl_utils_t *utils) > #if OPENSSL_VERSION_NUMBER >= 0x10100000L > return HMAC_CTX_new(); > #else >- return utils->malloc(sizeof(EVP_MD_CTX)); >+ return utils->malloc(sizeof(HMAC_CTX)); > #endif > } > > static void _plug_HMAC_CTX_free(HMAC_CTX *ctx, const sasl_utils_t *utils) >diff --git a/saslauthd/lak.c b/saslauthd/lak.c >index d752f7b..2a2772a 100644 >--- a/saslauthd/lak.c >+++ b/saslauthd/lak.c >@@ -61,6 +61,35 @@ > #include <sasl.h> > #include "lak.h" > >+#if OPENSSL_VERSION_NUMBER < 0x10100000L >+static EVP_MD_CTX *EVP_MD_CTX_new(void) >+{ >+ return EVP_MD_CTX_create(); >+} >+static void EVP_MD_CTX_free(EVP_MD_CTX *ctx) >+{ >+ if (ctx == NULL) >+ return; >+ >+ EVP_MD_CTX_destroy(ctx); >+} >+ >+static EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void) >+{ >+ EVP_ENCODE_CTX *ctx = OPENSSL_malloc(sizeof(*ctx)); >+ >+ if (ctx != NULL) { >+ memset(ctx, 0, sizeof(*ctx)); >+ } >+ return ctx; >+} >+static void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx) >+{ >+ OPENSSL_free(ctx); >+ return; >+} >+#endif >+ > typedef struct lak_auth_method { > int method; > int (*check) (LAK *lak, const char *user, const char *service, const char *realm, const char *password) ; >@@ -1720,20 +1749,28 @@ static int lak_base64_decode( > > int rc, i, tlen = 0; > char *text; >- EVP_ENCODE_CTX EVP_ctx; >+ EVP_ENCODE_CTX *enc_ctx = EVP_ENCODE_CTX_new(); >+ >+ if (enc_ctx == NULL) >+ return LAK_NOMEM; > > text = (char *)malloc(((strlen(src)+3)/4 * 3) + 1); >- if (text == NULL) >+ if (text == NULL) { >+ EVP_ENCODE_CTX_free(enc_ctx); > return LAK_NOMEM; >+ } > >- EVP_DecodeInit(&EVP_ctx); >- rc = EVP_DecodeUpdate(&EVP_ctx, (unsigned char *) text, &i, (const unsigned char *)src, strlen(src)); >+ EVP_DecodeInit(enc_ctx); >+ rc = EVP_DecodeUpdate(enc_ctx, (unsigned char *) text, &i, (const unsigned char *)src, strlen(src)); > if (rc < 0) { >+ EVP_ENCODE_CTX_free(enc_ctx); > free(text); > return LAK_FAIL; > } > tlen += i; >- EVP_DecodeFinal(&EVP_ctx, (unsigned char *) text, &i); >+ EVP_DecodeFinal(enc_ctx, (unsigned char *) text, &i); >+ >+ EVP_ENCODE_CTX_free(enc_ctx); > > *ret = text; > if (rlen != NULL) >@@ -1749,7 +1786,7 @@ static int lak_check_hashed( > { > int rc, clen; > LAK_HASH_ROCK *hrock = (LAK_HASH_ROCK *) rock; >- EVP_MD_CTX mdctx; >+ EVP_MD_CTX *mdctx; > const EVP_MD *md; > unsigned char digest[EVP_MAX_MD_SIZE]; > char *cred; >@@ -1758,17 +1795,24 @@ static int lak_check_hashed( > if (!md) > return LAK_FAIL; > >+ mdctx = EVP_MD_CTX_new(); >+ if (!mdctx) >+ return LAK_NOMEM; >+ > rc = lak_base64_decode(hash, &cred, &clen); >- if (rc != LAK_OK) >+ if (rc != LAK_OK) { >+ EVP_MD_CTX_free(mdctx); > return rc; >+ } > >- EVP_DigestInit(&mdctx, md); >- EVP_DigestUpdate(&mdctx, passwd, strlen(passwd)); >+ EVP_DigestInit(mdctx, md); >+ EVP_DigestUpdate(mdctx, passwd, strlen(passwd)); > if (hrock->salted) { >- EVP_DigestUpdate(&mdctx, &cred[EVP_MD_size(md)], >+ EVP_DigestUpdate(mdctx, &cred[EVP_MD_size(md)], > clen - EVP_MD_size(md)); > } >- EVP_DigestFinal(&mdctx, digest, NULL); >+ EVP_DigestFinal(mdctx, digest, NULL); >+ EVP_MD_CTX_free(mdctx); > > rc = memcmp((char *)cred, (char *)digest, EVP_MD_size(md)); > free(cred); >-- >2.20.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 592528
:
444530
|
517534
|
517538
|
559388
|
559390
| 559392