From 79781382b28167b1776a9ff93f39df634ac7b4e3 Mon Sep 17 00:00:00 2001 From: Alexander Sosedkin Date: Tue, 14 May 2024 16:52:38 +0200 Subject: [PATCH] Switch upstream to rhel10 branch - Switch to a version based on Fedora 41 crypto-policies (20240521-1.gitf71d135.fc41), and replace the changelog with Fedora changelog - Shape up RHEL-10: remove GOST-ONLY policy and GOST subpolicy - Shape up RHEL-10: remove NEXT policy - Shape up RHEL-10: remove BSI policy - Shape up RHEL-10: remove TEST-FEDORA41 policy - Shape up RHEL-10: remove NO-SHA1 subpolicy - Shape up RHEL-10: remove SHA1 subpolicy - Shape up RHEL-10: remove TEST-PQ policy - Shape up RHEL-10: disable CAMELLIA in all policies... - Shape up RHEL-10: drop FFDHE-1024 from LEGACY - Shape up RHEL-10: DEFAULT: remove Fedora-only DSA-SHA1 RPM enablement - Shape up RHEL-10: remove Fedora-specific __openssl_block_sha1_signatures... - Shape up RHEL-10: disable 3DES in LEGACY - Shape up RHEL-10: disable DSA - Shape up RHEL-10: mark LEGACY as 80-bit security (@tomato42) - Shape up RHEL-10: require TLSv1.2/DTLSv1.2 in all policies - Shape up RHEL-10: requre 2048 bit params in LEGACY - Shape up RHEL-10: FUTURE: disable CBC ciphers for all but krb5 - Shape up RHEL-10: disable DHE-DSS even in LEGACY - Shape up RHEL-10: gnutls: explicit ECDSA-SECPNNNR1-SHANNN + reorder - Shape up RHEL-10: openssh: disable DHE-FFDHE-1024-SHA1 server config hack - Shape up RHEL-10: FIPS: disable SHA-1 HMAC in FIPS policy - Shape up RHEL-10: FIPS: disable CBC ciphers except in Kerberos - Shape up RHEL-10: policies/modules: update AD-SUPPORT away from RC4/MD5 - Shape up RHEL-10: drop DNSSEC SHA-1 exception from DEFAULT --- crypto-policies.spec | 278 ++++++++++++++++++++++++++++--------------- sources | 2 +- 2 files changed, 180 insertions(+), 100 deletions(-) diff --git a/crypto-policies.spec b/crypto-policies.spec index a2ed1f7..e60576c 100644 --- a/crypto-policies.spec +++ b/crypto-policies.spec @@ -1,5 +1,5 @@ -%global git_date 20240304 -%global git_commit b1c706d663ae796caab6d1144668ba63ea84a28a +%global git_date 20240522 +%global git_commit 77963ab9f1d0a705440f4167dcabe13f1e9a5301 %{?git_commit:%global git_commit_hash %(c=%{git_commit}; echo ${c:0:7})} %global _python_bytecompile_extra 0 @@ -11,12 +11,10 @@ Summary: System-wide crypto policies License: LGPL-2.1-or-later URL: https://gitlab.com/redhat-crypto/fedora-crypto-policies -# For RHEL-9 we use the upstream branch rhel9. +# For RHEL-10 we use the upstream branch rhel10. Source0: https://gitlab.com/redhat-crypto/fedora-crypto-policies/-/archive/%{git_commit_hash}/%{name}-git%{git_commit_hash}.tar.gz -%if 0%{?rhel} >= 10 ExclusiveArch: %{java_arches} noarch -%endif BuildArch: noarch BuildRequires: asciidoc BuildRequires: libxslt @@ -26,15 +24,15 @@ BuildRequires: gnutls-utils BuildRequires: openssh-clients BuildRequires: java-devel BuildRequires: bind -BuildRequires: python3-devel >= 3.9 +BuildRequires: python3-devel >= 3.12 BuildRequires: python3-pytest BuildRequires: make -Conflicts: openssl-libs < 1:3.0.1-10 -Conflicts: nss < 3.90.0 -Conflicts: libreswan < 3.28 -Conflicts: openssh < 8.7p1-24 -Conflicts: gnutls < 3.7.6-22 +Conflicts: openssl-libs < 1:3.2 +Conflicts: nss < 3.97 +Conflicts: libreswan < 4.12 +Conflicts: openssh < 9.6p1-1 +Conflicts: gnutls < 3.8.3 %description This package provides pre-built configuration files with @@ -61,20 +59,10 @@ to enable or disable the system FIPS mode. %autopatch -p1 %build -sed -i \ - "s/MIN_RSA_DEFAULT = .*/MIN_RSA_DEFAULT = 'RequiredRSASize'/" \ - python/policygenerators/openssh.py -grep "MIN_RSA_DEFAULT = 'RequiredRSASize'" python/policygenerators/openssh.py -%if 0%{?rhel} == 11 # currently ELN NSS doesn't carry the TLS-REQUIRE-EMS patch sed -i "s/'NSS_NO_TLS_REQUIRE_EMS', '0'/'NSS_NO_TLS_REQUIRE_EMS', '1'/" \ python/policygenerators/nss.py tests/nss.py sed -i "s/:TLS-REQUIRE-EMS:/:/" tests/outputs/*FIPS*.txt -# currently ELN/RHEL gnutls do not carry the tls-session-hash patch -sed -i "s/'GNUTLS_NO_TLS_SESSION_HASH', '0'/'GNUTLS_NO_TLS_SESSION_HASH', '1'/" \ - python/policygenerators/gnutls.py -sed -i "/^tls-session-hash =/d" tests/outputs/*FIPS*.txt -%endif %make_build @@ -173,6 +161,8 @@ end %ghost %config(missingok,noreplace) %verify(not mode) %{_sysconfdir}/crypto-policies/back-ends/libreswan.config %ghost %config(missingok,noreplace) %verify(not mode) %{_sysconfdir}/crypto-policies/back-ends/libssh.config %ghost %config(missingok,noreplace) %verify(not mode) %{_sysconfdir}/crypto-policies/back-ends/openssl_fips.config +%ghost %config(missingok,noreplace) %verify(not mode) %{_sysconfdir}/crypto-policies/back-ends/sequoia.config +%ghost %config(missingok,noreplace) %verify(not mode) %{_sysconfdir}/crypto-policies/back-ends/rpm-sequoia.config # %verify(not mode) comes from the fact # these turn into symlinks and back to regular files at will, see bz1898986 @@ -202,106 +192,219 @@ end %{_mandir}/man8/fips-finish-install.8* %changelog -* Mon Mar 04 2024 Alexander Sosedkin - 20240304-1.gitb1c706d -- packaging: remove perl build-dependency, it's not needed anymore -- packaging: use newly introduced SKIP_LINTING=1 -- packaging: drop stale workarounds +* Tue May 22 2024 Alexander Sosedkin - 20240522-1.git77963ab +- Switch to a version based on Fedora 41 crypto-policies + (20240521-1.gitf71d135.fc41), + thus replace the changelog below with Fedora changelog +- Shape up RHEL-10: remove GOST-ONLY policy and GOST subpolicy +- Shape up RHEL-10: remove NEXT policy +- Shape up RHEL-10: remove BSI policy +- Shape up RHEL-10: remove TEST-FEDORA41 policy +- Shape up RHEL-10: remove NO-SHA1 subpolicy +- Shape up RHEL-10: remove SHA1 subpolicy +- Shape up RHEL-10: remove TEST-PQ policy +- Shape up RHEL-10: disable CAMELLIA in all policies... +- Shape up RHEL-10: drop FFDHE-1024 from LEGACY +- Shape up RHEL-10: DEFAULT: remove Fedora-only DSA-SHA1 RPM enablement +- Shape up RHEL-10: remove Fedora-specific __openssl_block_sha1_signatures... +- Shape up RHEL-10: disable 3DES in LEGACY +- Shape up RHEL-10: disable DSA +- Shape up RHEL-10: mark LEGACY as 80-bit security (@tomato42) +- Shape up RHEL-10: require TLSv1.2/DTLSv1.2 in all policies +- Shape up RHEL-10: requre 2048 bit params in LEGACY +- Shape up RHEL-10: FUTURE: disable CBC ciphers for all but krb5 +- Shape up RHEL-10: disable DHE-DSS even in LEGACY +- Shape up RHEL-10: gnutls: explicit ECDSA-SECPNNNR1-SHANNN + reorder +- Shape up RHEL-10: openssh: disable DHE-FFDHE-1024-SHA1 server config hack +- Shape up RHEL-10: FIPS: disable SHA-1 HMAC in FIPS policy +- Shape up RHEL-10: FIPS: disable CBC ciphers except in Kerberos +- Shape up RHEL-10: policies/modules: update AD-SUPPORT away from RC4/MD5 +- Shape up RHEL-10: drop DNSSEC SHA-1 exception from DEFAULT -* Fri Feb 02 2024 Alexander Sosedkin - 20240202-1.git283706d +* Tue May 21 2024 Alexander Sosedkin - 20240521-1.gitf71d135 +- nss: unconditionally include p11-kit-proxy +- TEST-PQ: update algorithm list, mark all PQ algorithms experimental + +* Wed May 15 2024 Alexander Sosedkin - 20240515-1.gita24a14b +- gnutls: use tls-session-hash option, enforcing EMS in FIPS mode +- gnutls: DTLS 0.9 is controllable again +- gnutls: remove extraneous newline +- openssh: remove support for old names of RequiredRSASize + +* Wed Mar 20 2024 Alexander Sosedkin - 20240320-1.git58e3d95 +- modules/FEDORA32, FEDORA38, TEST-FEDORA39: drop +- openssl: mark liboqsprovider groups optional with ? +- TEST-PQ: add more group and sign values, marked experimental +- TEST-FEDORA41: add a new policy with __openssl_block_sha1_signatures = 1 +- TEST-PQ: also enable sntrup761x25519-sha512@openssh.com + +* Mon Mar 04 2024 Alexander Sosedkin - 20240304-1.git0375239 +- packaging: remove perl build-dependency, it's not needed anymore +- packaging: stop linting at check-time, relying on upstream CI instead +- packaging: drop stale workarounds +- libreswan: do not use up pfs= / ikev2= keywords for default behaviour + +* Tue Feb 27 2024 Jiri Vanek - 20240201-2.git9f501f3 +- Rebuilt for java-21-openjdk as system jdk + +* Thu Feb 01 2024 Alexander Sosedkin - 20240201-1.git9f501f3 - fips-finish-install: make sure ostree is detected in chroot - fips-mode-setup: make sure ostree is detected in chroot -- fips-finish-install: Create/remove /etc/system-fips on ostree systems - java: disable ChaCha20-Poly1305 where applicable -* Mon Nov 13 2023 Clemens Lang - 20231113-1.gite9247c2 -- fips-mode-setup: Fix test for empty /boot (RHEL-11350) -- fips-mode-setup: Avoid 'boot=UUID=' if /boot == / (RHEL-11350) +* Wed Jan 24 2024 Fedora Release Engineering - 20231204-3.git1e3a2e4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Thu Nov 09 2023 Clemens Lang - 20231109-1.git0ceff7f -- Restore support for scoped ssh_etm directives (RHEL-15925) -- Print matches in syntax deprecation warnings (RHEL-15925) +* Fri Jan 19 2024 Fedora Release Engineering - 20231204-2.git1e3a2e4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Wed Nov 08 2023 Clemens Lang - 20231108-1.git994ae09 -- turn ssh_etm into an etm@SSH tri-state (RHEL-15925) -- fips-mode-setup: increase chroot-friendliness (RHEL-11350) -- fips-mode-setup: Fix usage with --no-bootcfg (RHEL-11350) +* Mon Dec 04 2023 Alexander Sosedkin - 20231204-1.git1e3a2e4 +- TEST-PQ: add a subpolicy to test post-quantum algorithms. Do not rely on. -* Mon Oct 16 2023 Alexander Sosedkin - 20231016-1.git77ceb0b -- openssl: fix SHA1 and NO-ENFORCE-EMS interaction -- bind: fix a typo that led to duplication of ECDSAPxxxSHAxxx +* Mon Nov 13 2023 Clemens Lang - 20231113-1.gitb402e82 +- fips-mode-setup: Write error messages to stderr +- fips-mode-setup: Fix some shellcheck warnings +- fips-mode-setup: Fix test for empty /boot +- fips-mode-setup: Avoid 'boot=UUID=' if /boot == / -* Wed Sep 20 2023 Alexander Sosedkin - 20230920-1.git8dcf74d +* Thu Nov 09 2023 Clemens Lang - 20231109-1.gitadb5572 +- Restore support for scoped ssh_etm directives +- Print matches in syntax deprecation warnings + +* Tue Nov 07 2023 Clemens Lang - 20231107-1.gitd5877b3 +- fips-mode-setup: Fix usage with --no-bootcfg + +* Tue Nov 07 2023 Clemens Lang - 20231107-1.git8f49dfa +- turn ssh_etm into an etm@SSH tri-state +- fips-mode-setup: increase chroot-friendliness (rhbz#2164847) + +* Wed Sep 20 2023 Alexander Sosedkin - 20230920-1.git570ea89 - OSPP subpolicy: tighten beyond reason for OSPP 4.3 - fips-mode-setup: more thorough --disable, still unsupported -* Mon Jul 31 2023 Alexander Sosedkin - 20230731-1.git94f0e2c +* Tue Jul 25 2023 Alexander Sosedkin - 20230731-1.git5ed06e0 +- BSI: start a BSI TR 02102 policy - krb5: sort enctypes mac-first, cipher-second, prioritize SHA-2 ones - FIPS: enforce EMS in FIPS mode - NO-ENFORCE-EMS: add subpolicy to undo the EMS enforcement in FIPS mode -- nss: implement EMS enforcement in FIPS mode (disabled in ELN) +- nss: implement EMS enforcement in FIPS mode (not enabled yet) - openssl: implement EMS enforcement in FIPS mode -- gnutls: implement EMS enforcement in FIPS mode (disabled in ELN) +- gnutls: implement EMS enforcement in FIPS mode (not enabled yet) - docs: replace `FIPS 140-2` with just `FIPS 140` -* Wed Jun 14 2023 Alexander Sosedkin - 20230614-1.git027799d +* Wed Jul 19 2023 Fedora Release Engineering - 20230614-2.git5f3458e +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jun 14 2023 Alexander Sosedkin - 20230614-1.git5f3458e - policies: restore group order to old OpenSSL default order -* Fri May 05 2023 Alexander Sosedkin - 20230505-1.gitf69bbc2 -- openssl: set Groups explicitly +* Thu Apr 20 2023 Alexander Sosedkin - 20230420-1.git3d08ae7 +- openssl: specify Groups explicitly - openssl: add support for Brainpool curves -* Thu Dec 15 2022 Alexander Sosedkin - 20221215-1.git9a18988 +* Wed Mar 01 2023 Alexander Sosedkin - 20230301-1.git2ea6d2a +- rpm-sequoia: add separate rpm-sequoia backend +- DEFAULT: allow SHA-1 and 1024 bit DSA in RPM (https://pagure.io/fesco/issue/2960) + +* Mon Feb 20 2023 Alexander Sosedkin - 20230220-1.git8c7de04 +- Makefile: support asciidoc 10 + +* Thu Jan 19 2023 Fedora Release Engineering - 20221215-2.gita4c31a3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Dec 15 2022 Alexander Sosedkin - 20221215-1.gita4c31a3 - bind: expand the list of disableable algorithms -* Mon Oct 03 2022 Alexander Sosedkin - 20221003-1.git04dee29 -- openssh: rename RSAMinSize option to RequiredRSASize +* Thu Nov 10 2022 Alexander Sosedkin - 20221110-1.git87a75f4 +- sequoia: introduce new backend +- migrate license tag to SPDX -* Mon Aug 15 2022 Alexander Sosedkin - 20220815-1.git0fbe86f +* Mon Oct 03 2022 Alexander Sosedkin - 20221003-1.gitcb1ad32 +- openssh: force RequiredRSASize option name + +* Wed Aug 24 2022 Alexander Sosedkin - 20220824-2.git2187e9c +- revert premature Fedora 38 Rawhide SHA-1 "jump scare" until + https://fedoraproject.org/wiki/Changes/StrongCryptoSettings3Forewarning2 + gets approved + +* Wed Aug 24 2022 Alexander Sosedkin - 20220824-1.gitd4b71ab +- disable SHA-1 further for a Fedora 38 Rawhide "jump scare" + as described at + https://fedoraproject.org/wiki/Changes/StrongCryptoSettings3Forewarning2 + This change will be reverted for the branched-off Fedora 38, + but never for Fedora 39. + Thus the change will reach the users with Fedora 39 release. + `update-crypto-policies --set FEDORA38` for the former, obsolete DEFAULT. +- openssh: control HostbasedAcceptedAlgorithms + Systems having it set at /etc/ssh/sshd_config + will have the value ignored and should instead configure it per-host. + +* Mon Aug 15 2022 Alexander Sosedkin - 20220815-1.gite4ed860 - openssh: add RSAMinSize option following min_rsa_size -* Wed Apr 27 2022 Alexander Sosedkin - 20220427-1.gitb2323a1 +* Tue Aug 02 2022 Alexander Sosedkin - 20220802-1.gita99dfd2 +- tests/java: fix java.security.disableSystemPropertiesFile=true +- docs: add customization recommendation + +* Wed Jul 20 2022 Fedora Release Engineering - 20220428-3.gitdfb10ea +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jul 08 2022 Jiri Vanek - 20220428-2.gitdfb10ea +- Rebuilt for Drop i686 JDKs + +* Thu Apr 28 2022 Alexander Sosedkin - 20220428-1.gitdfb10ea +- policies: add FEDORA38 and TEST-FEDORA39 +- fix condition of conflicting with openssl + +* Wed Apr 27 2022 Alexander Sosedkin - 20220427-1.gitca01c3e - bind: control ED25519/ED448 -* Mon Apr 04 2022 Alexander Sosedkin - 20220404-1.git845c0c1 -- DEFAULT: drop DNSSEC SHA-1 exception +* Tue Apr 12 2022 Alexander Sosedkin - 20220412-1.git97fe449 +- openssl: disable SHA-1 signatures in FUTURE/NO-SHA1 +- skip pylint until it's fixed in Fedora (tracked in bz206983) + +* Mon Apr 04 2022 Alexander Sosedkin - 20220404-1.git17914f1 +- fips-mode-setup: improve handling FIPS plus subpolicies +- fips-mode-setup: catch more inconsistencies, clarify --check +- fips-mode-setup, fips-finish-install: abandon /etc/system-fips - openssh: add support for sntrup761x25519-sha512@openssh.com -* Wed Feb 23 2022 Alexander Sosedkin - 20220223-1.git5203b41 -- openssl: allow SHA-1 signatures with rh-allow-sha1-signatures in LEGACY -- update AD-SUPPORT, move RC4 enctype enabling to AD-SUPPORT-LEGACY -- fips-mode-setup: catch more inconsistencies, clarify --check +* Sat Feb 05 2022 Jiri Vanek - 20220203-2.git112f859 +- Rebuilt for java-17-openjdk as system jdk -* Thu Feb 03 2022 Alexander Sosedkin - 20220203-1.gitf03e75e +* Thu Feb 03 2022 Alexander Sosedkin - 20220203-1.git112f859 - gnutls: enable SHAKE, needed for Ed448 - fips-mode-setup: improve handling FIPS plus subpolicies -- FIPS: disable SHA-1 HMAC -- FIPS: disable CBC ciphers except in Kerberos -* Tue Feb 01 2022 Alexander Sosedkin - 20220201-1.git636a91d -- openssl: revert to SECLEVEL=2 in LEGACY +* Wed Jan 19 2022 Alexander Sosedkin - 20220119-1.git50109e7 +- gnutls: switch to allowlisting + (https://fedoraproject.org/wiki/Changes/GnutlsAllowlisting) - openssl: add newlines at the end of the output -* Mon Nov 15 2021 Alexander Sosedkin - 20211115-1.git70de135 +* Mon Nov 15 2021 Alexander Sosedkin - 20211115-1.git1b1c04c - OSPP: relax -ECDSA-SHA2-512, -FFDHE-* - fips-mode-setup, fips-finish-install: call zipl more often (s390x-specific) -* Wed Sep 22 2021 Alexander Sosedkin - 20210922-1.git6fb269b +* Fri Sep 17 2021 Alexander Sosedkin - 20210917-1.gitc9d86d1 - openssl: fix disabling ChaCha20 -- update for pylint 2.11 +- fix minor things found by pylint 2.11 -* Tue Sep 14 2021 Alexander Sosedkin - 20210914-1.git97d08ef -- gnutls: reorder ECDSA-SECPMMMR1-SHANNN together with ECDSA-SHANNN -- fix several issues with update-crypto-policies --check +* Thu Aug 19 2021 Alexander Sosedkin - 20210819-1.gitd0fdcfb +- gnutls: revert hard-disabling DTLS 0.9 +- update-crypto-policies: fix --check's sorting when walking the directories +- update-crypto-policies: always regenerate the policy to --check against +- fix minor things found by new pylint -* Mon Aug 09 2021 Mohan Boddu - 20210707-2.git29f6c0b -- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags - Related: rhbz#1991688 +* Wed Jul 21 2021 Fedora Release Engineering - 20210621-2.gita0e819e +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild -* Wed Jul 07 2021 Alexander Sosedkin - 20210707-1.git29f6c0b -- gnutls: explicitly enable ECDSA-SECPNNNR1-SHANNN -- packaging: adapt to the RHEL-9 %check-time testing tools availability +* Mon Jun 21 2021 Alexander Sosedkin - 20210621-1.gita0e819e +- bump LEGACY key size requirements from 1023 to 1024 +- add javasystem backend +- *ssh: condition ecdh-sha2-nistp384 on SECP384R1 +- set %verify(not mode) for backend sometimes-symlinks-sometimes-not -* Mon Jun 28 2021 Alexander Sosedkin - 20210628-1.gitdd7d273 +* Tue Jun 15 2021 Alexander Sosedkin - 20210615-1.giteed6c85 - implement scoped policies, e.g., cipher@SSH = ... - implement algorithm globbing, e.g., cipher@SSH = -*-CBC - deprecate derived properties: @@ -314,29 +417,6 @@ end - improve Python 3.10 compatibility - update documentation - expand upstream test coverage -- FUTURE: disable CBC ciphers for all backends but krb5 -- openssl: LEGACY must have SECLEVEL=1, enabling SHA1 -- disable DHE-DSS in LEGACY -- bump LEGACY key size requirements from 1023 to 1024 -- add javasystem backend -- *ssh: condition ecdh-sha2-nistp384 on SECP384R1 -- set %verify(not mode) for backend sometimes-symlinks-sometimes-not -- gnutls: use allowlisting - -* Tue Jun 22 2021 Mohan Boddu - 20210218-3.git2246c55 -- Rebuilt for RHEL 9 BETA for openssl 3.0 - Related: rhbz#1971065 - -* Thu Apr 15 2021 Mohan Boddu - 20210218-2.git2246c55 -- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 - -* Thu Feb 18 2021 Alexander Sosedkin - 20210218-1.git2246c55 -- require 2048 bit params in LEGACY -- require TLSv1.2/DTLSv1.2 in all policies -- disable DSA -- disable 3DES in LEGACY -- drop FFDHE-1024 from LEGACY -- drop (sub)policies we're not going to offer in RHEL-9 * Sat Feb 13 2021 Alexander Sosedkin - 20210213-1.git5c710c0 - exclude RC4 from LEGACY diff --git a/sources b/sources index 638f41b..225de4b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (crypto-policies-gitb1c706d.tar.gz) = 02817c3008d1d7a4533a2d15fbb09fe49bad7776325dd5cf752fc6c8284d45b8a180b88de0105b3ace489d18180b951f1fbf7e265a191d4e8082f980775150dd +SHA512 (crypto-policies-git77963ab.tar.gz) = 8bbe8c53582d86f9508f8c3c1516fed61d9f75e8c3a5b96eb0c24db7671cee10b10bf1c527453593e5bc59832806f42ed0249a5b5edf32db45bc4aa911313a61