Files
rpm-bareos/openssl-3.0-warnings.patch
2022-03-09 13:05:13 +01:00

390 lines
15 KiB
Diff

# Fedora 36+ and EL9+ includes OpenSSL 3.0. This introduces a lot of
# deprecation warnings. Locally mute these warning so that they don't cause
# errors.
diff -Naur bareos-Release-21.0.0.orig/core/src/dird/inc_conf.cc bareos-Release-21.0.0/core/src/dird/inc_conf.cc
--- bareos-Release-21.0.0.orig/core/src/dird/inc_conf.cc 2022-03-09 09:03:32.065233907 +0100
+++ bareos-Release-21.0.0/core/src/dird/inc_conf.cc 2022-03-09 10:03:14.079745445 +0100
@@ -820,7 +820,10 @@
case BCT_QUOTED_STRING: {
FilesetResource* res_fs = GetStaticFilesetResource();
if (res_fs->have_MD5) {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Update(&res_fs->md5c, (unsigned char*)lc->str, lc->str_len);
+#pragma GCC diagnostic pop
}
if (res_incexe->name_list.size() == 0) {
@@ -873,7 +876,10 @@
FilesetResource* res_fs = GetStaticFilesetResource();
if (res_fs->have_MD5) {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Update(&res_fs->md5c, (unsigned char*)lc->str, lc->str_len);
+#pragma GCC diagnostic pop
}
if (res_incexe->plugin_list.size() == 0) {
res_incexe->plugin_list.init(10, true);
@@ -929,7 +935,10 @@
if (pass == 1) { res_incexe = new IncludeExcludeItem; }
if (!res_fs->have_MD5) {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Init(&res_fs->md5c);
+#pragma GCC diagnostic pop
res_fs->have_MD5 = true;
}
res_fs->new_include = true;
diff -Naur bareos-Release-21.0.0.orig/core/src/dird/job.cc bareos-Release-21.0.0/core/src/dird/job.cc
--- bareos-Release-21.0.0.orig/core/src/dird/job.cc 2022-03-09 09:03:32.065233907 +0100
+++ bareos-Release-21.0.0/core/src/dird/job.cc 2022-03-09 10:09:30.636596791 +0100
@@ -1351,7 +1351,10 @@
MD5_CTX md5c;
unsigned char digest[16]; /* MD5 digest length */
memcpy(&md5c, &jcr->impl->res.fileset->md5c, sizeof(md5c));
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Final(digest, &md5c);
+#pragma GCC diagnostic pop
/*
* Keep the flag (last arg) set to false otherwise old FileSets will
* get new MD5 sums and the user will get Full backups on everything
diff -Naur bareos-Release-21.0.0.orig/core/src/droplet/libdroplet/src/backend/s3/reqbuilder.c bareos-Release-21.0.0/core/src/droplet/libdroplet/src/backend/s3/reqbuilder.c
--- bareos-Release-21.0.0.orig/core/src/droplet/libdroplet/src/backend/s3/reqbuilder.c 2022-03-09 09:03:32.069233916 +0100
+++ bareos-Release-21.0.0/core/src/droplet/libdroplet/src/backend/s3/reqbuilder.c 2022-03-09 09:40:31.490561578 +0100
@@ -330,9 +330,12 @@
goto end;
}
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Init(&ctx);
MD5_Update(&ctx, req->data_buf, req->data_len);
MD5_Final(digest, &ctx);
+#pragma GCC diagnostic pop
b64_digest_len
= dpl_base64_encode(digest, MD5_DIGEST_LENGTH, (u_char*)b64_digest);
diff -Naur bareos-Release-21.0.0.orig/core/src/droplet/libdroplet/src/uks.c bareos-Release-21.0.0/core/src/droplet/libdroplet/src/uks.c
--- bareos-Release-21.0.0.orig/core/src/droplet/libdroplet/src/uks.c 2022-03-09 09:03:32.069233916 +0100
+++ bareos-Release-21.0.0/core/src/droplet/libdroplet/src/uks.c 2022-03-09 09:37:41.132118775 +0100
@@ -295,9 +295,12 @@
off += DPL_UKS_OID_NBITS;
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Init(&ctx);
MD5_Update(&ctx, entropy, sizeof(entropy));
MD5_Final(hash, &ctx);
+#pragma GCC diagnostic pop
for (i = 0; i < DPL_UKS_HASH_NBITS; i++) {
if (hash[i / 8] & 1 << (i % 8))
diff -Naur bareos-Release-21.0.0.orig/core/src/droplet/libdroplet/src/utils.c bareos-Release-21.0.0/core/src/droplet/libdroplet/src/utils.c
--- bareos-Release-21.0.0.orig/core/src/droplet/libdroplet/src/utils.c 2022-03-09 09:03:32.069233916 +0100
+++ bareos-Release-21.0.0/core/src/droplet/libdroplet/src/utils.c 2022-03-09 09:35:48.302843481 +0100
@@ -468,7 +468,10 @@
HMAC_CTX ctx;
#else
HMAC_CTX* ctx;
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
ctx = HMAC_CTX_new();
+#pragma GCC diagnostic pop
#endif
u_int digest_len;
@@ -479,9 +482,12 @@
HMAC_Final(&ctx, (u_char*)digest_buf, &digest_len);
HMAC_CTX_cleanup(&ctx);
#else
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
HMAC_Init_ex(ctx, key_buf, key_len, md, NULL);
HMAC_Update(ctx, (u_char*)data_buf, data_len);
HMAC_Final(ctx, (u_char*)digest_buf, &digest_len);
+#pragma GCC diagnostic pop
#endif
return digest_len;
@@ -542,9 +548,12 @@
{
SHA256_CTX ctx;
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
SHA256_Init(&ctx);
SHA256_Update(&ctx, data_buf, data_len);
SHA256_Final(digest_buf, &ctx);
+#pragma GCC diagnostic pop
}
/**/
diff -Naur bareos-Release-21.0.0.orig/core/src/lib/crypto_none.cc bareos-Release-21.0.0/core/src/lib/crypto_none.cc
--- bareos-Release-21.0.0.orig/core/src/lib/crypto_none.cc 2022-03-09 09:03:32.073233925 +0100
+++ bareos-Release-21.0.0/core/src/lib/crypto_none.cc 2022-03-09 10:02:42.859673131 +0100
@@ -57,7 +57,10 @@
switch (type) {
case CRYPTO_DIGEST_MD5:
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Init(&digest->md5);
+#pragma GCC diagnostic pop
break;
case CRYPTO_DIGEST_SHA1:
SHA1Init(&digest->sha1);
@@ -76,7 +79,10 @@
switch (digest->type) {
case CRYPTO_DIGEST_MD5:
/* Doesn't return anything ... */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Update(&digest->md5, (unsigned char*)data, length);
+#pragma GCC diagnostic pop
return true;
case CRYPTO_DIGEST_SHA1:
/* Doesn't return anything ... */
@@ -96,7 +102,10 @@
assert(*length >= CRYPTO_DIGEST_MD5_SIZE);
*length = CRYPTO_DIGEST_MD5_SIZE;
/* Doesn't return anything ... */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Final((unsigned char*)dest, &digest->md5);
+#pragma GCC diagnostic pop
return true;
case CRYPTO_DIGEST_SHA1:
/* Guard against programmer error by either the API client or
diff -Naur bareos-Release-21.0.0.orig/core/src/lib/crypto_nss.cc bareos-Release-21.0.0/core/src/lib/crypto_nss.cc
--- bareos-Release-21.0.0.orig/core/src/lib/crypto_nss.cc 2022-03-09 09:03:32.073233925 +0100
+++ bareos-Release-21.0.0/core/src/lib/crypto_nss.cc 2022-03-09 10:02:07.909592178 +0100
@@ -58,7 +58,10 @@
switch (type) {
case CRYPTO_DIGEST_MD5:
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Init(&digest->md5);
+#pragma GCC diagnostic pop
break;
case CRYPTO_DIGEST_SHA1:
SHA1Init(&digest->sha1);
@@ -77,7 +80,10 @@
switch (digest->type) {
case CRYPTO_DIGEST_MD5:
/* Doesn't return anything ... */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Update(&digest->md5, (unsigned char*)data, length);
+#pragma GCC diagnostic pop
return true;
case CRYPTO_DIGEST_SHA1:
/* Doesn't return anything ... */
@@ -97,7 +103,10 @@
assert(*length >= CRYPTO_DIGEST_MD5_SIZE);
*length = CRYPTO_DIGEST_MD5_SIZE;
/* Doesn't return anything ... */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Final((unsigned char*)dest, &digest->md5);
+#pragma GCC diagnostic pop
return true;
case CRYPTO_DIGEST_SHA1:
/* Guard against programmer error by either the API client or
diff -Naur bareos-Release-21.0.0.orig/core/src/lib/crypto_openssl.cc bareos-Release-21.0.0/core/src/lib/crypto_openssl.cc
--- bareos-Release-21.0.0.orig/core/src/lib/crypto_openssl.cc 2022-03-09 09:03:32.073233925 +0100
+++ bareos-Release-21.0.0/core/src/lib/crypto_openssl.cc 2022-03-09 09:45:32.411339279 +0100
@@ -1188,9 +1188,12 @@
/* Encrypt the session key */
ekey = (unsigned char*)malloc(EVP_PKEY_size(keypair->pubkey));
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
if ((ekey_len = EVP_PKEY_encrypt(ekey, cs->session_key, cs->session_key_len,
keypair->pubkey))
<= 0) {
+#pragma GCC diagnostic pop
/* OpenSSL failure */
RecipientInfo_free(ri);
CryptoSessionFree(cs);
@@ -1314,9 +1317,12 @@
/* Allocate sufficient space for the largest possible decrypted data */
cs->session_key
= (unsigned char*)malloc(EVP_PKEY_size(keypair->privkey));
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
cs->session_key_len = EVP_PKEY_decrypt(
cs->session_key, M_ASN1_STRING_data(ri->encryptedKey),
M_ASN1_STRING_length(ri->encryptedKey), keypair->privkey);
+#pragma GCC diagnostic pop
if (cs->session_key_len <= 0) {
OpensslPostErrors(M_ERROR, _("Failure decrypting the session key"));
@@ -1502,8 +1508,11 @@
ENGINE_load_pk11();
# else
// Load all the builtin engines.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
ENGINE_load_builtin_engines();
ENGINE_register_all_complete();
+#pragma GCC diagnostic pop
# endif
crypto_initialized = true;
diff -Naur bareos-Release-21.0.0.orig/core/src/lib/crypto_wrap.cc bareos-Release-21.0.0/core/src/lib/crypto_wrap.cc
--- bareos-Release-21.0.0.orig/core/src/lib/crypto_wrap.cc 2022-03-09 09:03:32.073233925 +0100
+++ bareos-Release-21.0.0/core/src/lib/crypto_wrap.cc 2022-03-09 09:49:02.654850824 +0100
@@ -70,7 +70,10 @@
memcpy(r, plain, 8 * n);
# ifdef HAVE_OPENSSL
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
AES_set_encrypt_key(kek, 128, &key);
+#pragma GCC diagnostic pop
# endif
/*
@@ -87,7 +90,10 @@
memcpy(b, a, 8);
memcpy(b + 8, r, 8);
# ifdef HAVE_OPENSSL
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
AES_encrypt(b, b, &key);
+#pragma GCC diagnostic pop
# endif
memcpy(a, b, 8);
a[7] ^= n * j + i;
@@ -123,7 +129,10 @@
memcpy(r, cipher + 8, 8 * n);
# ifdef HAVE_OPENSSL
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
AES_set_decrypt_key(kek, 128, &key);
+#pragma GCC diagnostic pop
# endif
/*
@@ -142,7 +151,10 @@
memcpy(b + 8, r, 8);
# ifdef HAVE_OPENSSL
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
AES_decrypt(b, b, &key);
+#pragma GCC diagnostic pop
# endif
memcpy(a, b, 8);
memcpy(r, b + 8, 8);
diff -Naur bareos-Release-21.0.0.orig/core/src/lib/hmac.cc bareos-Release-21.0.0/core/src/lib/hmac.cc
--- bareos-Release-21.0.0.orig/core/src/lib/hmac.cc 2022-03-09 09:03:32.073233925 +0100
+++ bareos-Release-21.0.0/core/src/lib/hmac.cc 2022-03-09 09:51:43.912235436 +0100
@@ -48,9 +48,12 @@
if (key_len > PAD_LEN) {
MD5_CTX md5key;
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Init(&md5key);
MD5_Update(&md5key, key, key_len);
MD5_Final(keysig, &md5key);
+#pragma GCC diagnostic pop
key = keysig;
key_len = SIG_LEN;
@@ -80,16 +83,22 @@
}
/* perform inner MD5 */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Init(&md5c); /* start inner hash */
MD5_Update(&md5c, k_ipad, PAD_LEN); /* hash inner pad */
MD5_Update(&md5c, text, text_len); /* hash text */
MD5_Final(hmac, &md5c); /* store inner hash */
+#pragma GCC diagnostic pop
/* perform outer MD5 */
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Init(&md5c); /* start outer hash */
MD5_Update(&md5c, k_opad, PAD_LEN); /* hash outer pad */
MD5_Update(&md5c, hmac, SIG_LEN); /* hash inner hash */
MD5_Final(hmac, &md5c); /* store results */
+#pragma GCC diagnostic pop
}
/*
Test Vectors (Trailing '\0' of a character string not included in test):
diff -Naur bareos-Release-21.0.0.orig/core/src/lib/res.cc bareos-Release-21.0.0/core/src/lib/res.cc
--- bareos-Release-21.0.0.orig/core/src/lib/res.cc 2022-03-09 09:03:32.079233939 +0100
+++ bareos-Release-21.0.0/core/src/lib/res.cc 2022-03-09 10:00:42.655395825 +0100
@@ -551,9 +551,12 @@
}
}
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Init(&md5c);
MD5_Update(&md5c, (unsigned char*)(lc->str), lc->str_len);
MD5_Final(digest, &md5c);
+#pragma GCC diagnostic pop
for (i = j = 0; i < sizeof(digest); i++) {
sprintf(&sig[j], "%02x", digest[i]);
j += 2;
diff -Naur bareos-Release-21.0.0.orig/core/src/lib/tls_openssl_private.cc bareos-Release-21.0.0/core/src/lib/tls_openssl_private.cc
--- bareos-Release-21.0.0.orig/core/src/lib/tls_openssl_private.cc 2022-03-09 09:03:32.080233942 +0100
+++ bareos-Release-21.0.0/core/src/lib/tls_openssl_private.cc 2022-03-09 09:54:18.069592684 +0100
@@ -217,7 +217,10 @@
OpensslPostErrors(M_FATAL, _("Unable to open DH parameters file"));
return false;
}
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
DH* dh = PEM_read_bio_DHparams(bio, NULL, NULL, NULL);
+#pragma GCC diagnostic pop
BIO_free(bio);
if (!dh) {
OpensslPostErrors(M_FATAL,
@@ -227,7 +230,10 @@
if (!SSL_CTX_set_tmp_dh(openssl_ctx_, dh)) {
OpensslPostErrors(M_FATAL,
_("Failed to set TLS Diffie-Hellman parameters"));
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
DH_free(dh);
+#pragma GCC diagnostic pop
return false;
}
SSL_CTX_set_options(openssl_ctx_, SSL_OP_SINGLE_DH_USE);
diff -Naur bareos-Release-21.0.0.orig/core/src/lib/util.cc bareos-Release-21.0.0/core/src/lib/util.cc
--- bareos-Release-21.0.0.orig/core/src/lib/util.cc 2022-03-09 09:03:32.080233942 +0100
+++ bareos-Release-21.0.0/core/src/lib/util.cc 2022-03-09 09:58:06.378097402 +0100
@@ -819,14 +819,20 @@
Bsnprintf(s + strlen(s), ss, "%lu", (uint32_t)getuid());
Bsnprintf(s + strlen(s), ss, "%lu", (uint32_t)getgid());
#endif
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Init(&md5c);
MD5_Update(&md5c, (uint8_t*)s, strlen(s));
MD5_Final(md5key, &md5c);
+#pragma GCC diagnostic pop
Bsnprintf(s + strlen(s), ss, "%lu",
(uint32_t)((time(NULL) + 65121) ^ 0x375F));
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
MD5_Init(&md5c);
MD5_Update(&md5c, (uint8_t*)s, strlen(s));
MD5_Final(md5key1, &md5c);
+#pragma GCC diagnostic pop
#define nextrand (md5key[j] ^ md5key1[j])
if (mode) {
for (j = k = 0; j < 16; j++) {