mirror of
https://github.com/openbsd/ports.git
synced 2026-06-17 23:13:55 +02:00
55 lines
1.2 KiB
Plaintext
55 lines
1.2 KiB
Plaintext
Fix build with opaque EVP_MD_CTX in LibreSSL 3.5.
|
|
|
|
Index: src/simlite.c
|
|
--- src/simlite.c.orig
|
|
+++ src/simlite.c
|
|
@@ -35,7 +35,7 @@
|
|
#include <string.h>
|
|
#include <time.h>
|
|
|
|
-#include "libgadu.h"
|
|
+#include <libgadu.h>
|
|
#include "simlite.h"
|
|
|
|
#ifndef PATH_MAX
|
|
@@ -180,12 +180,17 @@ char *sim_key_fingerprint(uint32_t uin)
|
|
RSA *key = sim_key_read(uin);
|
|
unsigned char md_value[EVP_MAX_MD_SIZE], *buf, *newbuf;
|
|
char *result = NULL;
|
|
- EVP_MD_CTX ctx;
|
|
+ EVP_MD_CTX *ctx;
|
|
int md_len, size, i;
|
|
|
|
if (!key)
|
|
return NULL;
|
|
|
|
+ if ((ctx = EVP_MD_CTX_new()) == NULL) {
|
|
+ sim_errno = SIM_ERROR_MEMORY;
|
|
+ goto cleanup;
|
|
+ }
|
|
+
|
|
if (uin)
|
|
size = i2d_RSAPublicKey(key, NULL);
|
|
else
|
|
@@ -201,9 +206,9 @@ char *sim_key_fingerprint(uint32_t uin)
|
|
else
|
|
size = i2d_RSAPrivateKey(key, &newbuf);
|
|
|
|
- EVP_DigestInit(&ctx, EVP_sha1());
|
|
- EVP_DigestUpdate(&ctx, buf, size);
|
|
- EVP_DigestFinal(&ctx, md_value, &md_len);
|
|
+ EVP_DigestInit(ctx, EVP_sha1());
|
|
+ EVP_DigestUpdate(ctx, buf, size);
|
|
+ EVP_DigestFinal(ctx, md_value, &md_len);
|
|
|
|
free(buf);
|
|
|
|
@@ -216,6 +221,7 @@ char *sim_key_fingerprint(uint32_t uin)
|
|
snprintf(result + i * 3, (md_len * 3 - i * 3), (i != md_len - 1) ? "%.2x:" : "%.2x", md_value[i]);
|
|
|
|
cleanup:
|
|
+ EVP_MD_CTX_free(ctx);
|
|
RSA_free(key);
|
|
|
|
return result;
|