Blame SOURCES/0024-CryptoPkg-OpensslLib-list-RHEL8-specific-OpenSSL-fil.patch

0e3eb6
From e0b349962f12a500afa449900a81440a96ca21f4 Mon Sep 17 00:00:00 2001
1dc609
From: Laszlo Ersek <lersek@redhat.com>
1dc609
Date: Sat, 16 Nov 2019 17:11:27 +0100
1dc609
Subject: CryptoPkg/OpensslLib: list RHEL8-specific OpenSSL files in the INFs
1dc609
 (RH)
1dc609
b6c182
Notes about the RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] ->
b6c182
RHEL-8.5/20210520-e1999b264f1f [edk2-stable202105] rebase:
b6c182
b6c182
- Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1938257
b6c182
b6c182
- Recreate the patch based on downstream commits:
b6c182
b6c182
  - 56c4bb81b311 ("CryptoPkg/OpensslLib: list RHEL8-specific OpenSSL files
b6c182
                  in the INFs (RH)", 2020-06-05),
b6c182
  - e81751a1c303 ("CryptoPkg/OpensslLib: Upgrade OpenSSL to 1.1.1g",
b6c182
                  2020-11-23),
b6c182
  - 3e3fe5e62079 ("redhat: bump OpenSSL dist-git submodule to 1.1.1g+ /
b6c182
                  RHEL-8.4", 2020-11-23).
b6c182
b6c182
  (1) At e81751a1c303, downstream edk2 was in sync with upstream edk2
b6c182
      consuming OpenSSL 1.1.1g (upstream edk2 commit 8c30327debb2
b6c182
      ("CryptoPkg/OpensslLib: Upgrade OpenSSL to 1.1.1g", 2020-07-25)).
b6c182
b6c182
      Since commit 8c30327debb2, upstream edk2 modified the OpensslLib INF
b6c182
      files, namely
b6c182
b6c182
      - CryptoPkg/Library/OpensslLib/OpensslLib.inf
b6c182
      - CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
b6c182
b6c182
      in the following commits only:
b6c182
b6c182
      - be01087e0780 ("CryptoPkg/Library: Remove the redundant build
b6c182
        option", 2020-08-12), which did not affect the source file list at
b6c182
        all,
b6c182
b6c182
      - b5701a4c7a0f ("CryptoPkg: OpensslLib: Use RngLib to generate
b6c182
        entropy in rand_pool", 2020-09-18), which replaced some of the
b6c182
        *edk2-specific* "rand_pool_noise" source files with an RngLib
b6c182
        dependency.
b6c182
b6c182
      This means that the list of required, actual OpenSSL source files
b6c182
      has not changed in upstream edk2 since our downstream edk2 commit
b6c182
      e81751a1c303.
b6c182
b6c182
  (2) At commit 3e3fe5e62079 (the direct child of e81751a1c303),
b6c182
      downstream edk2's OpenSSL dependency was satisfied with RHEL-8
b6c182
      OpenSSL at dist-git commit bdd048e929dc ("Two fixes that will be
b6c182
      shipped in RHEL-8.3.0.z", 2020-10-23).
b6c182
b6c182
      Since commit bdd048e929dc, RHEL-8 OpenSSL dist-git advanced
b6c182
      (fast-forwarded) to commit a75722161d20 ("Update to version 1.1.1k",
b6c182
      2021-05-25), which is the current head of the rhel-8.5.0 branch.
b6c182
      (See also <https://bugzilla.redhat.com/show_bug.cgi?id=1938257#c6>.)
b6c182
b6c182
      At both dist-git bdd048e929dc and dist-git a75722161d20, I built the
b6c182
      respective RHEL-8 OpenSSL *source* RPM, and prepped the respective
b6c182
      source tree, with "rpmbuild -bp". Subsequently I compared the
b6c182
      prepped source trees recursively.
b6c182
b6c182
      - The following files disappeared:
b6c182
b6c182
        - 29 backup files created by "patch",
b6c182
b6c182
        - the assembly generator perl script called
b6c182
          "ecp_nistz256-avx2.pl", which is not used during the build.
b6c182
b6c182
      - The following new files appeared:
b6c182
b6c182
        - 18 files directly or indirectly under the "test" subdirectory,
b6c182
          which are not used during the build,
b6c182
b6c182
        - 5 backup files created by "patch",
b6c182
b6c182
        - 2 DCL scripts used when building OpenSSL on OpenVMS.
b6c182
b6c182
      This means that the total list of RHEL-8 OpenSSL source files has
b6c182
      not changed in RHEL-8 OpenSSL dist-git since our downstream edk2
b6c182
      commit 3e3fe5e62079.
b6c182
b6c182
  As a result, copy the "RHEL8-specific OpenSSL file list" sections
b6c182
  verbatim from the INF files, at downstream commit e81751a1c303. (I used
b6c182
  the "git checkout -p e81751a1c303 -- Library/OpensslLib/OpensslLib.inf
b6c182
  CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf" command.)
b6c182
1d2c45
Notes about the RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] ->
1d2c45
RHEL-8.3/20200603-ca407c7246bf [edk2-stable202005] rebase:
1d2c45
1d2c45
- "OpensslLib.inf":
1d2c45
1d2c45
  - Automatic leading context refresh against upstream commit c72ca4666886
1d2c45
    ("CryptoPkg/OpensslLib: Add "sort" keyword to header file parsing
1d2c45
    loop", 2020-03-10).
1d2c45
1d2c45
  - Manual trailing context refresh against upstream commit b49a6c8f80d9
1d2c45
    ("CryptoPkg/OpensslLib: improve INF file consistency", 2019-12-02).
1d2c45
1d2c45
- "OpensslLibCrypto.inf":
1d2c45
1d2c45
  - Automatic leading context refresh against upstream commits
1d2c45
    8906f076de35 ("CryptoPkg/OpensslLib: Add missing header files in INF
1d2c45
    file", 2019-08-16) and 9f4fbd56d430 ("CryptoPkg/OpensslLib: Update
1d2c45
    process_files.pl to generate .h files", 2019-10-30).
1d2c45
1dc609
Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] ->
1dc609
RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase:
1dc609
1dc609
- new patch
1dc609
1dc609
The downstream changes in RHEL8's OpenSSL package, for example in
1dc609
"openssl-1.1.1-evp-kdf.patch", introduce new files, and even move some
1dc609
preexistent code into those new files. In order to avoid undefined
1dc609
references in link editing, we have to list the new files.
1dc609
1dc609
Note: "process_files.pl" is not re-run at this time manually, because
1dc609
1dc609
(a) "process_files.pl" would pollute the file list (and some of the
1dc609
    auto-generated header files) with RHEL8-specific FIPS artifacts, which
1dc609
    are explicitly unwanted in edk2,
1dc609
1dc609
(b) The RHEL OpenSSL maintainer, Tomas Mraz, identified this specific set
1dc609
    of files in <https://bugzilla.redhat.com/show_bug.cgi?id=1749693#c10>,
1dc609
    and will help with future changes too.
1dc609
1dc609
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
1d2c45
(cherry picked from commit 57bd3f146590df8757865d8f2cdd1db3cf3f4d40)
b6c182
(cherry picked from commit 56c4bb81b311dfcee6a34c81d3e4feeda7f88995)
1dc609
---
1dc609
 CryptoPkg/Library/OpensslLib/OpensslLib.inf       | 11 +++++++++++
1dc609
 CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf | 11 +++++++++++
1dc609
 2 files changed, 22 insertions(+)
1dc609
1dc609
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLib.inf b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
0e3eb6
index d84bde056a..19913a4ac6 100644
1dc609
--- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
1dc609
+++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
1d2c45
@@ -570,6 +570,17 @@
1d2c45
   $(OPENSSL_PATH)/ssl/statem/statem.h
b6c182
   $(OPENSSL_PATH)/ssl/statem/statem_local.h
1dc609
 # Autogenerated files list ends here
1dc609
+# RHEL8-specific OpenSSL file list starts here
1dc609
+  $(OPENSSL_PATH)/crypto/evp/kdf_lib.c
1dc609
+  $(OPENSSL_PATH)/crypto/evp/pkey_kdf.c
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/kbkdf.c
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/kdf_local.h
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/kdf_util.c
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/krb5kdf.c
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/pbkdf2.c
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/sshkdf.c
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/sskdf.c
1dc609
+# RHEL8-specific OpenSSL file list ends here
1d2c45
   buildinf.h
1dc609
   ossl_store.c
b6c182
   rand_pool.c
1dc609
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
0e3eb6
index cdeed0d073..5057857e8d 100644
1dc609
--- a/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
1dc609
+++ b/CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
1d2c45
@@ -519,6 +519,17 @@
1d2c45
   $(OPENSSL_PATH)/crypto/x509v3/standard_exts.h
1d2c45
   $(OPENSSL_PATH)/crypto/x509v3/v3_admis.h
1dc609
 # Autogenerated files list ends here
1dc609
+# RHEL8-specific OpenSSL file list starts here
1dc609
+  $(OPENSSL_PATH)/crypto/evp/kdf_lib.c
1dc609
+  $(OPENSSL_PATH)/crypto/evp/pkey_kdf.c
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/kbkdf.c
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/kdf_local.h
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/kdf_util.c
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/krb5kdf.c
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/pbkdf2.c
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/sshkdf.c
1dc609
+  $(OPENSSL_PATH)/crypto/kdf/sskdf.c
1dc609
+# RHEL8-specific OpenSSL file list ends here
1dc609
   buildinf.h
1dc609
   ossl_store.c
b6c182
   rand_pool.c
1dc609
-- 
b6c182
2.27.0
1dc609