|
|
cb4c3c9 |
From b71dcdeb2490f4c64a339bada58b7a5f95a53753 Mon Sep 17 00:00:00 2001
|
|
|
cb4c3c9 |
From: Christos Zoulas <christos@zoulas.com>
|
|
|
cb4c3c9 |
Date: Sat, 23 Jun 2018 16:02:14 -0400
|
|
|
cb4c3c9 |
Subject: [PATCH] Adjust for OpenSSL v1.1
|
|
|
cb4c3c9 |
MIME-Version: 1.0
|
|
|
cb4c3c9 |
Content-Type: text/plain; charset=UTF-8
|
|
|
cb4c3c9 |
Content-Transfer-Encoding: 8bit
|
|
|
cb4c3c9 |
|
|
|
cb4c3c9 |
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
|
|
cb4c3c9 |
---
|
|
|
cb4c3c9 |
lib/if_spmd.c | 25 +++++++++++++------------
|
|
|
cb4c3c9 |
1 file changed, 13 insertions(+), 12 deletions(-)
|
|
|
cb4c3c9 |
|
|
|
cb4c3c9 |
diff --git a/lib/if_spmd.c b/lib/if_spmd.c
|
|
|
cb4c3c9 |
index 3666757..4f101e4 100644
|
|
|
cb4c3c9 |
--- a/lib/if_spmd.c
|
|
|
cb4c3c9 |
+++ b/lib/if_spmd.c
|
|
|
cb4c3c9 |
@@ -1100,7 +1100,7 @@ int
|
|
|
cb4c3c9 |
spmd_if_login_response(struct spmd_cid *pci)
|
|
|
cb4c3c9 |
{
|
|
|
cb4c3c9 |
unsigned char md[EVP_MAX_MD_SIZE];
|
|
|
cb4c3c9 |
- EVP_MD_CTX ctx;
|
|
|
cb4c3c9 |
+ EVP_MD_CTX *ctx;
|
|
|
cb4c3c9 |
size_t hash_len;
|
|
|
cb4c3c9 |
unsigned int md_len;
|
|
|
cb4c3c9 |
int error, used, i;
|
|
|
cb4c3c9 |
@@ -1108,28 +1108,33 @@ spmd_if_login_response(struct spmd_cid *pci)
|
|
|
cb4c3c9 |
|
|
|
cb4c3c9 |
error = -1;
|
|
|
cb4c3c9 |
|
|
|
cb4c3c9 |
- EVP_MD_CTX_init(&ctx;;
|
|
|
cb4c3c9 |
- if (!EVP_DigestInit_ex(&ctx, SPMD_DIGEST_ALG, SPMD_EVP_ENGINE)) {
|
|
|
cb4c3c9 |
+ ctx = EVP_MD_CTX_new();
|
|
|
cb4c3c9 |
+ if (ctx == NULL) {
|
|
|
cb4c3c9 |
+ plog(PLOG_INTERR, PLOGLOC, NULL,
|
|
|
cb4c3c9 |
+ "failed to allocate Message Digest context\n");
|
|
|
cb4c3c9 |
+ goto fail_early;
|
|
|
cb4c3c9 |
+ }
|
|
|
cb4c3c9 |
+ if (!EVP_DigestInit_ex(ctx, SPMD_DIGEST_ALG, SPMD_EVP_ENGINE)) {
|
|
|
cb4c3c9 |
plog(PLOG_INTERR, PLOGLOC, NULL,
|
|
|
cb4c3c9 |
"failed to initilize Message Digest function\n");
|
|
|
cb4c3c9 |
goto fail_early;
|
|
|
cb4c3c9 |
}
|
|
|
cb4c3c9 |
- if (!EVP_DigestUpdate(&ctx, pci->challenge, strlen(pci->challenge))) {
|
|
|
cb4c3c9 |
+ if (!EVP_DigestUpdate(ctx, pci->challenge, strlen(pci->challenge))) {
|
|
|
cb4c3c9 |
plog(PLOG_INTERR, PLOGLOC, NULL,
|
|
|
cb4c3c9 |
"failed to hash Challenge\n");
|
|
|
cb4c3c9 |
goto fail;
|
|
|
cb4c3c9 |
}
|
|
|
cb4c3c9 |
- if (!EVP_DigestUpdate(&ctx, pci->password, strlen(pci->password))) {
|
|
|
cb4c3c9 |
+ if (!EVP_DigestUpdate(ctx, pci->password, strlen(pci->password))) {
|
|
|
cb4c3c9 |
plog(PLOG_INTERR, PLOGLOC, NULL,
|
|
|
cb4c3c9 |
"failed to hash Password\n");
|
|
|
cb4c3c9 |
goto fail;
|
|
|
cb4c3c9 |
}
|
|
|
cb4c3c9 |
- if (sizeof(md) < EVP_MD_CTX_size(&ctx)) {
|
|
|
cb4c3c9 |
+ if (sizeof(md) < EVP_MD_CTX_size(ctx)) {
|
|
|
cb4c3c9 |
plog(PLOG_INTERR, PLOGLOC, NULL,
|
|
|
cb4c3c9 |
"Message Digest buffer is not enough\n");
|
|
|
cb4c3c9 |
goto fail;
|
|
|
cb4c3c9 |
}
|
|
|
cb4c3c9 |
- if (!EVP_DigestFinal_ex(&ctx, md, &md_len)) {
|
|
|
cb4c3c9 |
+ if (!EVP_DigestFinal_ex(ctx, md, &md_len)) {
|
|
|
cb4c3c9 |
plog(PLOG_INTERR, PLOGLOC, NULL,
|
|
|
cb4c3c9 |
"failed to get Message Digest value\n");
|
|
|
cb4c3c9 |
goto fail;
|
|
|
cb4c3c9 |
@@ -1154,11 +1159,7 @@ spmd_if_login_response(struct spmd_cid *pci)
|
|
|
cb4c3c9 |
|
|
|
cb4c3c9 |
error = 0;
|
|
|
cb4c3c9 |
fail:
|
|
|
cb4c3c9 |
- if (!EVP_MD_CTX_cleanup(&ctx)) {
|
|
|
cb4c3c9 |
- plog(PLOG_INTERR, PLOGLOC, NULL,
|
|
|
cb4c3c9 |
- "failed to cleanup Message Digest context\n");
|
|
|
cb4c3c9 |
- error = -1; /* error again */
|
|
|
cb4c3c9 |
- }
|
|
|
cb4c3c9 |
+ EVP_MD_CTX_free(ctx);
|
|
|
cb4c3c9 |
fail_early:
|
|
|
cb4c3c9 |
return error;
|
|
|
cb4c3c9 |
}
|
|
|
cb4c3c9 |
--
|
|
|
cb4c3c9 |
2.20.1
|
|
|
cb4c3c9 |
|