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]

Reply via email to