3rdparty: patch BLAKE2 sources to not export anything in static builds
This could cause conflicts with other users of these algorithms, notably libb2 itself. Though if you're using libb2, you shouldn't be using the un-optimized copy inside QtCore... I've updated the SHA1 of the last commit in the repository, but there were no changes to our sources. [ChangeLog][Third-Party Code] Fixed a bug that caused the BLAKE2 symbols to be visible from QtCore in a static build. If you need to use the BLAKE2 hashing algorithm in your own code, either use QCryptographicHash or import libb2 into your build environment. Using libb2 remains the recommended solution for all systems, especially those for which it has optimized (vectorized) implementations. Fixes: QTBUG-132347 Pick-to: 6.8 Change-Id: I48003b58cef0d8bcc720fffdd89b0f151fd102e3 Reviewed-by: Linus Jahn <lnj@kaidan.im> Reviewed-by: Marc Mutz <marc.mutz@qt.io> (cherry picked from commit b884fbf10237547e809745f528978942faf0e5f6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
b79b2edde8
commit
d39c493390
67
src/3rdparty/blake2/0001-mark-the-API-static-so-it-cant-be-exported-from-QtCore.patch
vendored
Normal file
67
src/3rdparty/blake2/0001-mark-the-API-static-so-it-cant-be-exported-from-QtCore.patch
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
From eb08d0a94e6f64c2ba78536c00c654102ed5cc41 Mon Sep 17 00:00:00 2001
|
||||
From: Thiago Macieira <thiago.macieira@intel.com>
|
||||
Date: Thu, 19 Dec 2024 14:02:08 -0300
|
||||
Subject: mark the API static so it can't be exported
|
||||
from QtCore
|
||||
|
||||
This affects static builds, where symbol visibility doesn't apply.
|
||||
---
|
||||
src/3rdparty/blake2/src/blake2.h | 28 ++++++++++++++--------------
|
||||
1 file changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/src/3rdparty/blake2/src/blake2.h b/src/3rdparty/blake2/src/blake2.h
|
||||
index ca390305e60..0a90a9d2294 100644
|
||||
--- a/src/3rdparty/blake2/src/blake2.h
|
||||
+++ b/src/3rdparty/blake2/src/blake2.h
|
||||
@@ -142,17 +142,17 @@ extern "C" {
|
||||
};
|
||||
|
||||
/* Streaming API */
|
||||
- int blake2s_init( blake2s_state *S, size_t outlen );
|
||||
- int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
|
||||
- int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
|
||||
- int blake2s_update( blake2s_state *S, const void *in, size_t inlen );
|
||||
- int blake2s_final( blake2s_state *S, void *out, size_t outlen );
|
||||
-
|
||||
- int blake2b_init( blake2b_state *S, size_t outlen );
|
||||
- int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
|
||||
- int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
|
||||
- int blake2b_update( blake2b_state *S, const void *in, size_t inlen );
|
||||
- int blake2b_final( blake2b_state *S, void *out, size_t outlen );
|
||||
+ static int blake2s_init( blake2s_state *S, size_t outlen );
|
||||
+ static int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
|
||||
+ static int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
|
||||
+ static int blake2s_update( blake2s_state *S, const void *in, size_t inlen );
|
||||
+ static int blake2s_final( blake2s_state *S, void *out, size_t outlen );
|
||||
+
|
||||
+ static int blake2b_init( blake2b_state *S, size_t outlen );
|
||||
+ static int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
|
||||
+ static int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
|
||||
+ static int blake2b_update( blake2b_state *S, const void *in, size_t inlen );
|
||||
+ static int blake2b_final( blake2b_state *S, void *out, size_t outlen );
|
||||
|
||||
int blake2sp_init( blake2sp_state *S, size_t outlen );
|
||||
int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen );
|
||||
@@ -176,8 +176,8 @@ extern "C" {
|
||||
int blake2xb_final(blake2xb_state *S, void *out, size_t outlen);
|
||||
|
||||
/* Simple API */
|
||||
- int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
- int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
+ static int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
+ static int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
|
||||
int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
@@ -186,7 +186,7 @@ extern "C" {
|
||||
int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
|
||||
/* This is simply an alias for blake2b */
|
||||
- int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
+ static int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
--
|
||||
2.47.1
|
||||
|
2
src/3rdparty/blake2/REUSE.toml
vendored
2
src/3rdparty/blake2/REUSE.toml
vendored
@ -1,7 +1,7 @@
|
||||
version = 1
|
||||
|
||||
[[annotations]]
|
||||
path = ["src/blake2b-ref.c", "src/blake2s-ref.c", "src/blake2.h", "src/blake2-impl.h"]
|
||||
path = ["src/blake2b-ref.c", "src/blake2s-ref.c", "src/blake2.h", "src/blake2-impl.h", "0001-mark-the-API-static-so-it-cant-be-exported-from-QtCore.patch"]
|
||||
comment = "Copyright line mixed with other text."
|
||||
precedence = "override"
|
||||
SPDX-FileCopyrightText = "Copyright 2012, Samuel Neves <sneves@dei.uc.pt>"
|
||||
|
6
src/3rdparty/blake2/qt_attribution.json
vendored
6
src/3rdparty/blake2/qt_attribution.json
vendored
@ -7,9 +7,9 @@
|
||||
|
||||
"Description": "BLAKE2 is a cryptographic hash function faster than MD5, SHA-1, SHA-2, and SHA-3, yet is at least as secure as the latest standard SHA-3.",
|
||||
"Homepage": "https://blake2.net/",
|
||||
"Version": "54f4faa4c16ea34bcd59d16e8da46a64b259fc07",
|
||||
"DownloadLocation": "https://github.com/BLAKE2/BLAKE2/tree/54f4faa4c16ea34bcd59d16e8da46a64b259fc07",
|
||||
"PURL": "pkg:github/BLAKE2/BLAKE2@54f4faa4c16ea34bcd59d16e8da46a64b259fc07",
|
||||
"Version": "ed1974ea83433eba7b2d95c5dcd9ac33cb847913",
|
||||
"DownloadLocation": "https://github.com/BLAKE2/BLAKE2/tree/ed1974ea83433eba7b2d95c5dcd9ac33cb847913",
|
||||
"PURL": "pkg:github/BLAKE2/BLAKE2@ed1974ea83433eba7b2d95c5dcd9ac33cb847913",
|
||||
"CPE": "cpe:2.3:a:blake2:blake2:*:*:*:*:*:*:*:*",
|
||||
"License": "Creative Commons Zero v1.0 Universal or Apache License 2.0",
|
||||
"LicenseId": "CC0-1.0 OR Apache-2.0",
|
||||
|
26
src/3rdparty/blake2/src/blake2.h
vendored
26
src/3rdparty/blake2/src/blake2.h
vendored
@ -142,17 +142,17 @@ extern "C" {
|
||||
};
|
||||
|
||||
/* Streaming API */
|
||||
int blake2s_init( blake2s_state *S, size_t outlen );
|
||||
int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
|
||||
int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
|
||||
int blake2s_update( blake2s_state *S, const void *in, size_t inlen );
|
||||
int blake2s_final( blake2s_state *S, void *out, size_t outlen );
|
||||
static int blake2s_init( blake2s_state *S, size_t outlen );
|
||||
static int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
|
||||
static int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
|
||||
static int blake2s_update( blake2s_state *S, const void *in, size_t inlen );
|
||||
static int blake2s_final( blake2s_state *S, void *out, size_t outlen );
|
||||
|
||||
int blake2b_init( blake2b_state *S, size_t outlen );
|
||||
int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
|
||||
int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
|
||||
int blake2b_update( blake2b_state *S, const void *in, size_t inlen );
|
||||
int blake2b_final( blake2b_state *S, void *out, size_t outlen );
|
||||
static int blake2b_init( blake2b_state *S, size_t outlen );
|
||||
static int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
|
||||
static int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
|
||||
static int blake2b_update( blake2b_state *S, const void *in, size_t inlen );
|
||||
static int blake2b_final( blake2b_state *S, void *out, size_t outlen );
|
||||
|
||||
int blake2sp_init( blake2sp_state *S, size_t outlen );
|
||||
int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen );
|
||||
@ -176,8 +176,8 @@ extern "C" {
|
||||
int blake2xb_final(blake2xb_state *S, void *out, size_t outlen);
|
||||
|
||||
/* Simple API */
|
||||
int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
static int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
static int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
|
||||
int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
@ -186,7 +186,7 @@ extern "C" {
|
||||
int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
|
||||
/* This is simply an alias for blake2b */
|
||||
int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
static int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
|
@ -111,8 +111,13 @@ static inline int SHA384_512AddLength(SHA512Context *context, unsigned int lengt
|
||||
#if QT_CONFIG(system_libb2)
|
||||
#include <blake2.h>
|
||||
#else
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_CLANG("-Wunused-function")
|
||||
QT_WARNING_DISABLE_GCC("-Wunused-function")
|
||||
QT_WARNING_DISABLE_MSVC(4505)
|
||||
#include "../../3rdparty/blake2/src/blake2b-ref.c"
|
||||
#include "../../3rdparty/blake2/src/blake2s-ref.c"
|
||||
QT_WARNING_POP
|
||||
#endif
|
||||
#endif // QT_CRYPTOGRAPHICHASH_ONLY_SHA1
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user