RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [email protected] Module: rpm Date: 05-Jun-2017 21:08:44 Branch: rpm-5_4 Handle: 2017060519084300 Modified files: (Branch: rpm-5_4) rpm/rpmio digest.c poptIO.c rpmiotypes.h Log: - jbj: digest: add (non-crypto) xxh32/xxh64 hashes. Summary: Revision Changes Path 2.93.2.13 +54 -2 rpm/rpmio/digest.c 1.94.2.34 +4 -0 rpm/rpmio/poptIO.c 1.47.2.25 +3 -0 rpm/rpmio/rpmiotypes.h ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/rpmio/digest.c ============================================================================ $ cvs diff -u -r2.93.2.12 -r2.93.2.13 digest.c --- rpm/rpmio/digest.c 5 Jun 2017 08:25:51 -0000 2.93.2.12 +++ rpm/rpmio/digest.c 5 Jun 2017 19:08:43 -0000 2.93.2.13 @@ -122,8 +122,50 @@ #include "lookup3.c" /* Include Yann Collet XXH hash */ -#define XXH_NAMESPACE RPMZSTD_ +#define XXH_NAMESPACE RPM_ +#if 1 +#define XXH_STATIC_LINKING_ONLY +#define XXH_PRIVATE_API +#include "xxhash.h" +#else #include "xxhash.c" +#endif + +typedef XXH32_state_t xxh32Param; +static int xxh32Reset(void * _param) +{ + unsigned int seed = 0; + return XXH32_reset(_param, seed); +} + +static int xxh32Update(void * _param, const byte * data, size_t size) +{ + return XXH32_update(_param, (const void *) data, size); +} + +static int xxh32Digest(void * _param, byte * digest) +{ + XXH32_canonicalFromHash((XXH32_canonical_t *) digest, XXH32_digest(_param)); + return 0; +} + +typedef XXH64_state_t xxh64Param; +static int xxh64Reset(void * _param) +{ + unsigned int seed = 0; + return XXH64_reset(_param, seed); +} + +static int xxh64Update(void * _param, const byte * data, size_t size) +{ + return XXH64_update(_param, (const void *) data, size); +} + +static int xxh64Digest(void * _param, byte * digest) +{ + XXH64_canonicalFromHash((XXH64_canonical_t *) digest, XXH64_digest(_param)); + return 0; +} /** * Digest private data. @@ -382,13 +424,23 @@ /* ctx->asn1 = "???" "060A2B06010401829A0A02??" "05000404"; */ break; case PGPHASHALGO_JLU32: - RPMDIGEST_INIT(sum32, ADLER32, 32, 8) + RPMDIGEST_INIT(sum32, JLU32, 32, 8) { sum32Param * mp = (sum32Param *) ctx->param; mp->update = (rpmuint32_t (*)(rpmuint32_t, const byte *, size_t)) jlu32l; } /* Object ID is 1.3.6.1.4.1.36106.2.?? */ /* ctx->asn1 = "???" "060A2B06010401829A0A02??" "05000404"; */ break; + case PGPHASHALGO_XXH32: + RPMDIGEST_INIT(xxh32, XXH32, 32, 8) + /* Object ID is 1.3.6.1.4.1.36106.2.?? */ + /* ctx->asn1 = "???" "060A2B06010401829A0A02??" "05000404"; */ + break; + case PGPHASHALGO_XXH64: + RPMDIGEST_INIT(xxh64, XXH64, 64, 8) + /* Object ID is 1.3.6.1.4.1.36106.2.?? */ + /* ctx->asn1 = "???" "060A2B06010401829A0A02??" "05000404"; */ + break; case PGPHASHALGO_CRC64: RPMDIGEST_INIT(sum64, CRC64, 64, 8) { sum64Param * mp = (sum64Param *) ctx->param; @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/poptIO.c ============================================================================ $ cvs diff -u -r1.94.2.33 -r1.94.2.34 poptIO.c --- rpm/rpmio/poptIO.c 3 Jun 2017 09:02:26 -0000 1.94.2.33 +++ rpm/rpmio/poptIO.c 5 Jun 2017 19:08:43 -0000 1.94.2.34 @@ -353,6 +353,10 @@ N_("ADLER-32 checksum"), NULL }, { "jlu32",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_JLU32, N_("Lookup3 hash"), NULL }, + { "xxh32",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_XXH32, + N_("XXH-32 hash"), NULL }, + { "xxh64",'\0', POPT_ARG_VAL, &rpmioDigestHashAlgo, PGPHASHALGO_XXH64, + N_("XXH-64 hash"), NULL }, { "nodigest",'\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &rpmioDigestHashAlgo, PGPHASHALGO_NONE, N_("No hash algorithm"), NULL }, { "alldigests",'\0', POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN, &rpmioDigestHashAlgo, 256, @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmiotypes.h ============================================================================ $ cvs diff -u -r1.47.2.24 -r1.47.2.25 rpmiotypes.h --- rpm/rpmio/rpmiotypes.h 17 May 2017 12:34:40 -0000 1.47.2.24 +++ rpm/rpmio/rpmiotypes.h 5 Jun 2017 19:08:43 -0000 1.47.2.25 @@ -299,6 +299,9 @@ PGPHASHALGO_WHIRLPOOL = 115, /*!< (private) WHIRLPOOL */ + PGPHASHALGO_XXH32 = 116, /*!< (private) XXH-32 */ + PGPHASHALGO_XXH64 = 117, /*!< (private) XXH-64 */ + PGPHASHALGO_MD6_224 = 128+0,/*!< (private) MD6-224 */ PGPHASHALGO_MD6_256 = 128+1,/*!< (private) MD6-256 */ PGPHASHALGO_MD6_384 = 128+2,/*!< (private) MD6-384 */ @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository [email protected]
