Changeset: d53f274a122c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/d53f274a122c
Branch: default
Log Message:
Merge with Dec2025 branch.
diffs (63 lines):
diff --git a/gdk/gdk_string.c b/gdk/gdk_string.c
--- a/gdk/gdk_string.c
+++ b/gdk/gdk_string.c
@@ -9872,6 +9872,13 @@ BATasciify(BAT *b, BAT *s)
#include <openssl/evp.h>
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L && OPENSSL_VERSION_NUMBER <
0x30000070L
+#define NEED_LEGACY
+#include <openssl/provider.h>
+static OSSL_PROVIDER *legacy, *default_;
+static MT_Lock ssl_lock = MT_LOCK_INITIALIZER(ssl_lock);
+#endif
+
gdk_return
BATaggrdigest(allocator *ma, BAT **bnp, char **shap, const char *digest,
BAT *b, BAT *g, BAT *e, BAT *s, bool skip_nils)
@@ -9905,8 +9912,19 @@ BATaggrdigest(allocator *ma, BAT **bnp,
allocator *ta = MT_thread_getallocator();
allocator_state ta_state = ma_open(ta);
+#ifdef NEED_LEGACY
+ EVP_MD *md;
+ MT_lock_set(&ssl_lock);
+ if (legacy == NULL) {
+ legacy = OSSL_PROVIDER_load(NULL, "legacy");
+ default_ = OSSL_PROVIDER_load(NULL, "default");
+ }
+ MT_lock_unset(&ssl_lock);
+ md = EVP_MD_fetch(NULL, digest, NULL);
+#else
const EVP_MD *md;
md = EVP_get_digestbyname(digest);
+#endif
EVP_MD_CTX **mdctx = ma_zalloc(ta, ngrp * sizeof(*mdctx));
if (mdctx == NULL)
goto bailout;
@@ -9952,6 +9970,7 @@ BATaggrdigest(allocator *ma, BAT **bnp,
strcpy_len(digestbuf, str_nil, sizeof(digestbuf));
} else {
if (!EVP_DigestFinal_ex(mdctx[gid], md_value, &md_len))
{
+ GDKerror("Could not update digest value.\n");
goto bailout;
}
for (unsigned int x = 0; x < md_len; x++) {
@@ -9971,11 +9990,17 @@ BATaggrdigest(allocator *ma, BAT **bnp,
}
}
}
+#ifdef NEED_LEGACY
+ EVP_MD_free(md);
+#endif
bat_iterator_end(&bi);
ma_close(&ta_state);
return GDK_SUCCEED;
bailout:
+#ifdef NEED_LEGACY
+ EVP_MD_free(md);
+#endif
bat_iterator_end(&bi);
if (mdctx) {
for (gid = 0; gid < ngrp; gid++)
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]