All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] perf/genelf: Switch deprecated openssl MD5_* functions to new EVP API
@ 2022-08-25 17:00 Zixuan Tan
  2022-08-25 20:17 ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 7+ messages in thread
From: Zixuan Tan @ 2022-08-25 17:00 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, Ingo Molnar, Mark Rutland, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, Zixuan Tan, linux-perf-users,
	linux-kernel

Switch to the flavored EVP API like in test-libcrypto.c, and remove the
bad gcc #pragma.

Inspired-By: 5b245985a6de ("tools build: Switch to new openssl API for
test-libcrypto")
Signed-off-by: Zixuan Tan <tanzixuan.me@gmail.com>
---
 tools/perf/util/genelf.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/tools/perf/util/genelf.c b/tools/perf/util/genelf.c
index 953338b9e887..ed28a0dbcb7f 100644
--- a/tools/perf/util/genelf.c
+++ b/tools/perf/util/genelf.c
@@ -30,10 +30,6 @@

 #define BUILD_ID_URANDOM /* different uuid for each run */

-// FIXME, remove this and fix the deprecation warnings before its removed and
-// We'll break for good here...
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-
 #ifdef HAVE_LIBCRYPTO_SUPPORT

 #define BUILD_ID_MD5
@@ -45,6 +41,7 @@
 #endif

 #ifdef BUILD_ID_MD5
+#include <openssl/evp.h>
 #include <openssl/md5.h>
 #endif
 #endif
@@ -142,15 +139,20 @@ gen_build_id(struct buildid_note *note,
 static void
 gen_build_id(struct buildid_note *note, unsigned long load_addr,
const void *code, size_t csize)
 {
-       MD5_CTX context;
+       EVP_MD_CTX *mdctx;

        if (sizeof(note->build_id) < 16)
                errx(1, "build_id too small for MD5");

-       MD5_Init(&context);
-       MD5_Update(&context, &load_addr, sizeof(load_addr));
-       MD5_Update(&context, code, csize);
-       MD5_Final((unsigned char *)note->build_id, &context);
+       mdctx = EVP_MD_CTX_new();
+       if (!mdctx)
+               errx(2, "failed to create EVP_MD_CTX");
+
+       EVP_DigestInit_ex(mdctx, EVP_md5(), NULL);
+       EVP_DigestUpdate(mdctx, &load_addr, sizeof(load_addr));
+       EVP_DigestUpdate(mdctx, code, csize);
+       EVP_DigestFinal_ex(mdctx, (unsigned char *)note->build_id, NULL);
+       EVP_MD_CTX_free(mdctx);
 }
 #endif

-- 
2.34.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-09-06 12:38 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-25 17:00 [PATCH] perf/genelf: Switch deprecated openssl MD5_* functions to new EVP API Zixuan Tan
2022-08-25 20:17 ` Arnaldo Carvalho de Melo
2022-08-26 17:21   ` Zixuan Tan
2022-08-26 18:32     ` Namhyung Kim
2022-09-06  9:40       ` Zixuan Tan
2022-09-06 12:33         ` Arnaldo Carvalho de Melo
2022-09-06 12:38           ` Arnaldo Carvalho de Melo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.