File tree Expand file tree Collapse file tree 6 files changed +61
-8
lines changed
Expand file tree Collapse file tree 6 files changed +61
-8
lines changed Original file line number Diff line number Diff line change @@ -23,10 +23,13 @@ typedef enum rpmHashAlgo_e {
2323 RPM_HASH_MD2 = 5 , /*!< MD2 */
2424 RPM_HASH_TIGER192 = 6 , /*!< TIGER192 */
2525 RPM_HASH_HAVAL_5_160 = 7 , /*!< HAVAL-5-160 */
26- RPM_HASH_SHA256 = 8 , /*!< SHA256 */
27- RPM_HASH_SHA384 = 9 , /*!< SHA384 */
28- RPM_HASH_SHA512 = 10 , /*!< SHA512 */
29- RPM_HASH_SHA224 = 11 , /*!< SHA224 */
26+ RPM_HASH_SHA256 = 8 , /*!< SHA2-256 */
27+ RPM_HASH_SHA384 = 9 , /*!< SHA2-384 */
28+ RPM_HASH_SHA512 = 10 , /*!< SHA2-512 */
29+ RPM_HASH_SHA224 = 11 , /*!< SHA2-224 */
30+ RPM_HASH_SHA3_256 = 12 , /*!< SHA3-256 */
31+ /*!< reserved */
32+ RPM_HASH_SHA3_512 = 14 , /*!< SHA3-512 */
3033} rpmHashAlgo ;
3134
3235/** \ingroup rpmcrypto
Original file line number Diff line number Diff line change @@ -143,10 +143,13 @@ typedef enum pgpHashAlgo_e {
143143 PGPHASHALGO_MD2 = 5 , /*!< MD2 */
144144 PGPHASHALGO_TIGER192 = 6 , /*!< TIGER192 */
145145 PGPHASHALGO_HAVAL_5_160 = 7 , /*!< HAVAL-5-160 */
146- PGPHASHALGO_SHA256 = 8 , /*!< SHA256 */
147- PGPHASHALGO_SHA384 = 9 , /*!< SHA384 */
148- PGPHASHALGO_SHA512 = 10 , /*!< SHA512 */
149- PGPHASHALGO_SHA224 = 11 , /*!< SHA224 */
146+ PGPHASHALGO_SHA256 = 8 , /*!< SHA2-256 */
147+ PGPHASHALGO_SHA384 = 9 , /*!< SHA2-384 */
148+ PGPHASHALGO_SHA512 = 10 , /*!< SHA2-512 */
149+ PGPHASHALGO_SHA224 = 11 , /*!< SHA2-224 */
150+ PGPHASHALGO_SHA3_256 = 12 , /*!< SHA3-256 */
151+ /*!< 13 reserved */
152+ PGPHASHALGO_SHA3_512 = 14 , /*!< SHA3-256 */
150153} pgpHashAlgo ;
151154
152155/** \ingroup rpmpgp
Original file line number Diff line number Diff line change @@ -395,6 +395,8 @@ Supplements: (%{name} = %{version}-%{release} and langpacks-%{1})\
395395# 8 SHA256 (default)
396396# 9 SHA384
397397# 10 SHA512
398+ # 12 SHA3-256
399+ # 14 SHA3-512
398400#
399401%_source_filedigest_algorithm 8
400402%_binary_filedigest_algorithm 8
Original file line number Diff line number Diff line change @@ -46,6 +46,10 @@ size_t rpmDigestLength(int hashalgo)
4646 return 48 ;
4747 case RPM_HASH_SHA512:
4848 return 64 ;
49+ case RPM_HASH_SHA3_256:
50+ return 32 ;
51+ case RPM_HASH_SHA3_512:
52+ return 64 ;
4953 default :
5054 return 0 ;
5155 }
@@ -66,6 +70,10 @@ static int hashalgo2gcryalgo(int hashalgo)
6670 return GCRY_MD_SHA384;
6771 case RPM_HASH_SHA512:
6872 return GCRY_MD_SHA512;
73+ case RPM_HASH_SHA3_256:
74+ return GCRY_MD_SHA3_256;
75+ case RPM_HASH_SHA3_512:
76+ return GCRY_MD_SHA3_512;
6977 default :
7078 return 0 ;
7179 }
Original file line number Diff line number Diff line change @@ -66,6 +66,12 @@ static const EVP_MD *getEVPMD(int hashalgo)
6666 case RPM_HASH_SHA224:
6767 return EVP_sha224 ();
6868
69+ case RPM_HASH_SHA3_256:
70+ return EVP_sha3_256 ();
71+
72+ case RPM_HASH_SHA3_512:
73+ return EVP_sha3_512 ();
74+
6975 default :
7076 return EVP_md_null ();
7177 }
Original file line number Diff line number Diff line change @@ -3641,3 +3641,34 @@ b718a835936fd2f6c8855f210c4789a1 hello-1.0.tar.gz
36413641],
36423642[])
36433643RPMTEST_CLEANUP
3644+
3645+ AT_SETUP([file digests sha3])
3646+ AT_KEYWORDS([build digest])
3647+ AT_SKIP_IF([test x$PGP = xsequoia])
3648+ RPMDB_INIT
3649+ RPMTEST_CHECK([[
3650+ runroot rpmbuild -bs --quiet \
3651+ --define "_source_filedigest_algorithm 12" \
3652+ /data/SPECS/hello.spec
3653+ runroot rpm -q --qf "[%{filedigests} %{filenames}\n]" /build/SRPMS/hello-1.0-1.src.rpm
3654+ ]],
3655+ [0],
3656+ [f1a0a1e0e413d66a4bd948cb16bdd03600c7aea6dcd04522bcbc3041a29ee651 hello-1.0-modernize.patch
3657+ a0da711d71069ab2735448140c5e0b51b4aeb3150a72877df54f372350e68644 hello-1.0.tar.gz
3658+ bf352b9ec1645d799dde77fcde2249eb62a0a29a1c10fbbc3dce03d851132b3f hello.spec
3659+ ],
3660+ [])
3661+
3662+ RPMTEST_CHECK([[
3663+ runroot rpmbuild -bs --quiet \
3664+ --define "_source_filedigest_algorithm 14" \
3665+ /data/SPECS/hello.spec
3666+ runroot rpm -q --qf "[%{filedigests} %{filenames}\n]" /build/SRPMS/hello-1.0-1.src.rpm
3667+ ]],
3668+ [0],
3669+ [11ddad2c1e5ef58d94d008634d9ad3a95cb7b5fab51652e73bb999c8d12110c4cdf6c572187c1a880a3c171a1af739fb48f77e98f5e30cc3bc1ec91a16182915 hello-1.0-modernize.patch
3670+ 154b8717381c284af9b939cc28199347edc5cbcc3228bf0983d52323ca19ec73ad85a834ee9851d746561a0bdfc2dfa7278846b3b7b492d66451658275e0f1d5 hello-1.0.tar.gz
3671+ 7cbf4a017c065a583caecea1de6c7e48210c949e416db788118b81d8ccbc941d0890bc48b3c250208f80b7a059a3fe40fd27426f6b25920cd533bfe83c2676a2 hello.spec
3672+ ],
3673+ [])
3674+ RPMTEST_CLEANUP
You can’t perform that action at this time.
0 commit comments