digest-xxhash 0.1.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,424 @@
1
+ diff --git a/xxhsum.c b/xxhsum.c
2
+ index 8232409..3be0562 100644
3
+ --- a/xxhsum.c
4
+ +++ b/xxhsum.c
5
+ @@ -54,6 +54,18 @@
6
+ #include <assert.h> /* assert */
7
+ #include <errno.h> /* errno */
8
+
9
+ +typedef enum {
10
+ + XSUM_SEED = 0,
11
+ + XSUM_SECRET = 1
12
+ +} XSUM_seed_type_t;
13
+ +
14
+ +typedef struct {
15
+ + XSUM_seed_type_t type;
16
+ + XSUM_U64 seed;
17
+ + void *secret;
18
+ + size_t secret_length;
19
+ +} XSUM_seed_t;
20
+ +
21
+ #define XXH_STATIC_LINKING_ONLY /* *_state_t */
22
+ #include "xxhash.h"
23
+
24
+ @@ -93,7 +105,7 @@ static size_t XSUM_DEFAULT_SAMPLE_SIZE = 100 KB;
25
+ #define MAX_MEM (2 GB - 64 MB)
26
+
27
+ static const char stdinName[] = "-";
28
+ -typedef enum { algo_xxh32=0, algo_xxh64=1, algo_xxh128=2 } AlgoSelected;
29
+ +typedef enum { algo_xxh32=0, algo_xxh64=1, algo_xxh128=2, algo_xxh3=3 } AlgoSelected;
30
+ static AlgoSelected g_defaultAlgo = algo_xxh64; /* required within main() & XSUM_usage() */
31
+
32
+ /* <16 hex char> <SPC> <SPC> <filename> <'\0'>
33
+ @@ -103,7 +115,6 @@ static AlgoSelected g_defaultAlgo = algo_xxh64; /* required within main() & X
34
+ /* Maximum acceptable line length. */
35
+ #define MAX_LINE_LENGTH (32 KB)
36
+
37
+ -
38
+ /* ************************************
39
+ * Display macros
40
+ **************************************/
41
+ @@ -511,6 +522,7 @@ typedef union {
42
+ XXH32_hash_t xxh32;
43
+ XXH64_hash_t xxh64;
44
+ XXH128_hash_t xxh128;
45
+ + XXH64_hash_t xxh3;
46
+ } Multihash;
47
+
48
+ /*
49
+ @@ -521,16 +533,45 @@ typedef union {
50
+ static Multihash
51
+ XSUM_hashStream(FILE* inFile,
52
+ AlgoSelected hashType,
53
+ + XSUM_seed_t seed,
54
+ void* buffer, size_t blockSize)
55
+ {
56
+ XXH32_state_t state32;
57
+ XXH64_state_t state64;
58
+ XXH3_state_t state128;
59
+ + XXH3_state_t state3;
60
+ + XXH_errorcode error_code;
61
+
62
+ /* Init */
63
+ - (void)XXH32_reset(&state32, XXHSUM32_DEFAULT_SEED);
64
+ - (void)XXH64_reset(&state64, XXHSUM64_DEFAULT_SEED);
65
+ - (void)XXH3_128bits_reset(&state128);
66
+ + switch(hashType)
67
+ + {
68
+ + case algo_xxh32:
69
+ + error_code = XXH32_reset(&state32, (XSUM_U32) (seed.seed & 0xFFFFFFFF));
70
+ + break;
71
+ + case algo_xxh64:
72
+ + error_code = XXH64_reset(&state64, seed.seed);
73
+ + break;
74
+ + case algo_xxh128:
75
+ + if (seed.type == XSUM_SEED)
76
+ + error_code = XXH3_128bits_reset_withSeed(&state128, seed.seed);
77
+ + else
78
+ + error_code = XXH3_128bits_reset_withSecret(&state128, seed.secret, seed.secret_length);
79
+ + break;
80
+ + case algo_xxh3:
81
+ + if (seed.type == XSUM_SEED)
82
+ + error_code = XXH3_64bits_reset_withSeed(&state3, seed.seed);
83
+ + else
84
+ + error_code = XXH3_64bits_reset_withSecret(&state3, seed.secret, seed.secret_length);
85
+ + break;
86
+ + default:
87
+ + assert(0);
88
+ + }
89
+ +
90
+ + if (error_code != XXH_OK) {
91
+ + XSUM_log("Error: An error occurred while initializing a state.\n");
92
+ + XSUM_log("Algo: %d\n", hashType);
93
+ + exit(1);
94
+ + }
95
+
96
+ /* Load file & update hash */
97
+ { size_t readSize;
98
+ @@ -538,17 +579,24 @@ XSUM_hashStream(FILE* inFile,
99
+ switch(hashType)
100
+ {
101
+ case algo_xxh32:
102
+ - (void)XXH32_update(&state32, buffer, readSize);
103
+ + error_code = XXH32_update(&state32, buffer, readSize);
104
+ break;
105
+ case algo_xxh64:
106
+ - (void)XXH64_update(&state64, buffer, readSize);
107
+ + error_code = XXH64_update(&state64, buffer, readSize);
108
+ break;
109
+ case algo_xxh128:
110
+ - (void)XXH3_128bits_update(&state128, buffer, readSize);
111
+ + error_code = XXH3_128bits_update(&state128, buffer, readSize);
112
+ + break;
113
+ + case algo_xxh3:
114
+ + error_code = XXH3_64bits_update(&state3, buffer, readSize);
115
+ break;
116
+ default:
117
+ assert(0);
118
+ }
119
+ + if (error_code != XXH_OK) {
120
+ + XSUM_log("Error: An error occurred while updating digest data.\n");
121
+ + exit(1);
122
+ + }
123
+ }
124
+ if (ferror(inFile)) {
125
+ XSUM_log("Error: a failure occurred reading the input file.\n");
126
+ @@ -567,6 +615,9 @@ XSUM_hashStream(FILE* inFile,
127
+ case algo_xxh128:
128
+ finalHash.xxh128 = XXH3_128bits_digest(&state128);
129
+ break;
130
+ + case algo_xxh3:
131
+ + finalHash.xxh3 = XXH3_64bits_digest(&state3);
132
+ + break;
133
+ default:
134
+ assert(0);
135
+ }
136
+ @@ -575,9 +626,9 @@ XSUM_hashStream(FILE* inFile,
137
+ }
138
+
139
+ /* algo_xxh32, algo_xxh64, algo_xxh128 */
140
+ -static const char* XSUM_algoName[] = { "XXH32", "XXH64", "XXH128" };
141
+ -static const char* XSUM_algoLE_name[] = { "XXH32_LE", "XXH64_LE", "XXH128_LE" };
142
+ -static const size_t XSUM_algoLength[] = { 4, 8, 16 };
143
+ +static const char* XSUM_algoName[] = { "XXH32", "XXH64", "XXH128", "XXH3" };
144
+ +static const char* XSUM_algoLE_name[] = { "XXH32_LE", "XXH64_LE", "XXH128_LE", "XXH3_LE" };
145
+ +static const size_t XSUM_algoLength[] = { 4, 8, 16, 8 };
146
+
147
+ #define XSUM_TABLE_ELT_SIZE(table) (sizeof(table) / sizeof(*table))
148
+
149
+ @@ -641,6 +692,7 @@ static XSUM_displayLine_f XSUM_kDisplayLine_fTable[2][2] = {
150
+
151
+ static int XSUM_hashFile(const char* fileName,
152
+ const AlgoSelected hashType,
153
+ + const XSUM_seed_t seed,
154
+ const Display_endianess displayEndianess,
155
+ const Display_convention convention)
156
+ {
157
+ @@ -676,7 +728,7 @@ static int XSUM_hashFile(const char* fileName,
158
+ }
159
+
160
+ /* Stream file & update hash */
161
+ - hashValue = XSUM_hashStream(inFile, hashType, buffer, blockSize);
162
+ + hashValue = XSUM_hashStream(inFile, hashType, seed, buffer, blockSize);
163
+
164
+ fclose(inFile);
165
+ free(buffer);
166
+ @@ -703,6 +755,12 @@ static int XSUM_hashFile(const char* fileName,
167
+ f_displayLine(fileName, &hcbe128, hashType);
168
+ break;
169
+ }
170
+ + case algo_xxh3:
171
+ + { XXH64_canonical_t hcbe3;
172
+ + (void)XXH64_canonicalFromHash(&hcbe3, hashValue.xxh3);
173
+ + f_displayLine(fileName, &hcbe3, hashType);
174
+ + break;
175
+ + }
176
+ default:
177
+ assert(0); /* not possible */
178
+ }
179
+ @@ -717,6 +775,7 @@ static int XSUM_hashFile(const char* fileName,
180
+ */
181
+ static int XSUM_hashFiles(char*const * fnList, int fnTotal,
182
+ AlgoSelected hashType,
183
+ + XSUM_seed_t seed,
184
+ Display_endianess displayEndianess,
185
+ Display_convention convention)
186
+ {
187
+ @@ -724,10 +783,10 @@ static int XSUM_hashFiles(char*const * fnList, int fnTotal,
188
+ int result = 0;
189
+
190
+ if (fnTotal==0)
191
+ - return XSUM_hashFile(stdinName, hashType, displayEndianess, convention);
192
+ + return XSUM_hashFile(stdinName, hashType, seed, displayEndianess, convention);
193
+
194
+ for (fnNb=0; fnNb<fnTotal; fnNb++)
195
+ - result |= XSUM_hashFile(fnList[fnNb], hashType, displayEndianess, convention);
196
+ + result |= XSUM_hashFile(fnList[fnNb], hashType, seed, displayEndianess, convention);
197
+ XSUM_logVerbose(2, "\r%70s\r", "");
198
+ return result;
199
+ }
200
+ @@ -760,12 +819,13 @@ typedef union {
201
+ XXH32_canonical_t xxh32;
202
+ XXH64_canonical_t xxh64;
203
+ XXH128_canonical_t xxh128;
204
+ + XXH64_canonical_t xxh3;
205
+ } Canonical;
206
+
207
+ typedef struct {
208
+ Canonical canonical;
209
+ const char* filename;
210
+ - int xxhBits; /* canonical type: 32:xxh32, 64:xxh64, 128:xxh128 */
211
+ + int xxhBits; /* canonical type: 32:xxh32, 64:xxh64, 128:xxh128, 3:xxh3 */
212
+ } ParsedLine;
213
+
214
+ typedef struct {
215
+ @@ -1062,26 +1122,33 @@ static void XSUM_parseFile1(ParseFileArg* XSUM_parseFileArg, int rev)
216
+ switch (parsedLine.xxhBits)
217
+ {
218
+ case 32:
219
+ - { Multihash const xxh = XSUM_hashStream(fp, algo_xxh32, XSUM_parseFileArg->blockBuf, XSUM_parseFileArg->blockSize);
220
+ + { Multihash const xxh = XSUM_hashStream(fp, algo_xxh32, (XSUM_seed_t){0}, XSUM_parseFileArg->blockBuf, XSUM_parseFileArg->blockSize);
221
+ if (xxh.xxh32 == XXH32_hashFromCanonical(&parsedLine.canonical.xxh32)) {
222
+ lineStatus = LineStatus_hashOk;
223
+ } }
224
+ break;
225
+
226
+ case 64:
227
+ - { Multihash const xxh = XSUM_hashStream(fp, algo_xxh64, XSUM_parseFileArg->blockBuf, XSUM_parseFileArg->blockSize);
228
+ + { Multihash const xxh = XSUM_hashStream(fp, algo_xxh64, (XSUM_seed_t){0}, XSUM_parseFileArg->blockBuf, XSUM_parseFileArg->blockSize);
229
+ if (xxh.xxh64 == XXH64_hashFromCanonical(&parsedLine.canonical.xxh64)) {
230
+ lineStatus = LineStatus_hashOk;
231
+ } }
232
+ break;
233
+
234
+ case 128:
235
+ - { Multihash const xxh = XSUM_hashStream(fp, algo_xxh128, XSUM_parseFileArg->blockBuf, XSUM_parseFileArg->blockSize);
236
+ + { Multihash const xxh = XSUM_hashStream(fp, algo_xxh128, (XSUM_seed_t){0}, XSUM_parseFileArg->blockBuf, XSUM_parseFileArg->blockSize);
237
+ if (XXH128_isEqual(xxh.xxh128, XXH128_hashFromCanonical(&parsedLine.canonical.xxh128))) {
238
+ lineStatus = LineStatus_hashOk;
239
+ } }
240
+ break;
241
+
242
+ + case 3:
243
+ + { Multihash const xxh = XSUM_hashStream(fp, algo_xxh3, (XSUM_seed_t){0}, XSUM_parseFileArg->blockBuf, XSUM_parseFileArg->blockSize);
244
+ + if (xxh.xxh3 == XXH64_hashFromCanonical(&parsedLine.canonical.xxh3)) {
245
+ + lineStatus = LineStatus_hashOk;
246
+ + } }
247
+ + break;
248
+ +
249
+ default:
250
+ break;
251
+ }
252
+ @@ -1256,7 +1323,9 @@ static int XSUM_usage(const char* exename)
253
+ XSUM_log( "Usage: %s [options] [files] \n\n", exename);
254
+ XSUM_log( "When no filename provided or when '-' is provided, uses stdin as input. \n");
255
+ XSUM_log( "Options: \n");
256
+ - XSUM_log( " -H# algorithm selection: 0,1,2 or 32,64,128 (default: %i) \n", (int)g_defaultAlgo);
257
+ + XSUM_log( " -H# algorithm selection: 0,1,2,3 or 32,64,128,364 (default: %i) \n", (int)g_defaultAlgo);
258
+ + XSUM_log( " -s<seed> seed in hex\n");
259
+ + XSUM_log( " -S<secret> secret in hex (minimum %d decoded bytes)\n", XXH3_SECRET_SIZE_MIN);
260
+ XSUM_log( " -c, --check read xxHash checksum from [files] and check them \n");
261
+ XSUM_log( " -h, --help display a long help page about advanced options \n");
262
+ return 0;
263
+ @@ -1353,9 +1422,72 @@ static XSUM_U32 XSUM_readU32FromChar(const char** stringPtr) {
264
+ return result;
265
+ }
266
+
267
+ +static int hex_decode_str_implied(const unsigned char *src, size_t len, unsigned char *dest)
268
+ +{
269
+ + unsigned char low, high;
270
+ +
271
+ + if (len % 2) {
272
+ + low = *src++;
273
+ +
274
+ + if (low >= '0' && low <= '9') {
275
+ + low -= '0';
276
+ + } else if (low >= 'A' && low <= 'F') {
277
+ + low -= 'A' - 10;
278
+ + } else if (low >= 'a' && low <= 'f') {
279
+ + low -= 'a' - 10;
280
+ + } else {
281
+ + return 0;
282
+ + }
283
+ +
284
+ + *dest++ = low;
285
+ + --len;
286
+ + }
287
+ +
288
+ + for (; len > 0; len -= 2) {
289
+ + high = *src++;
290
+ +
291
+ + if (high >= '0' && high <= '9') {
292
+ + high -= '0';
293
+ + } else if (high >= 'A' && high <= 'F') {
294
+ + high -= 'A' - 10;
295
+ + } else if (high >= 'a' && high <= 'f') {
296
+ + high -= 'a' - 10;
297
+ + } else {
298
+ + return 0;
299
+ + }
300
+ +
301
+ + low = *src++;
302
+ +
303
+ + if (low >= '0' && low <= '9') {
304
+ + low -= '0';
305
+ + } else if (low >= 'A' && low <= 'F') {
306
+ + low -= 'A' - 10;
307
+ + } else if (low >= 'a' && low <= 'f') {
308
+ + low -= 'a' - 10;
309
+ + } else {
310
+ + return 0;
311
+ + }
312
+ +
313
+ + *dest++ = high << 4 | low;
314
+ + }
315
+ +
316
+ + return -1;
317
+ +}
318
+ +
319
+ +static size_t calc_hex_decoded_str_length(size_t hex_encoded_length)
320
+ +{
321
+ + if (hex_encoded_length == 0)
322
+ + return 0;
323
+ +
324
+ + if (hex_encoded_length % 2)
325
+ + ++hex_encoded_length;
326
+ +
327
+ + return hex_encoded_length / 2;
328
+ +}
329
+ +
330
+ XSUM_API int XSUM_main(int argc, char* argv[])
331
+ {
332
+ - int i, filenamesStart = 0;
333
+ + int i, j, filenamesStart = 0;
334
+ const char* const exename = XSUM_lastNameFromPath(argv[0]);
335
+ XSUM_U32 benchmarkMode = 0;
336
+ XSUM_U32 fileCheckMode = 0;
337
+ @@ -1369,6 +1501,9 @@ XSUM_API int XSUM_main(int argc, char* argv[])
338
+ AlgoSelected algo = g_defaultAlgo;
339
+ Display_endianess displayEndianess = big_endian;
340
+ Display_convention convention = display_gnu;
341
+ + XSUM_seed_t seed = {0};
342
+ + char seed_hex[32];
343
+ + char *secret_hex, *error;
344
+
345
+ /* special case: xxhNNsum default to NN bits checksum */
346
+ if (strstr(exename, "xxh32sum") != NULL) algo = g_defaultAlgo = algo_xxh32;
347
+ @@ -1424,11 +1559,54 @@ XSUM_API int XSUM_main(int argc, char* argv[])
348
+ case 64: algo = algo_xxh64; break;
349
+ case 2 :
350
+ case 128: algo = algo_xxh128; break;
351
+ + case 3 :
352
+ + case 364: algo = algo_xxh3; break;
353
+ default:
354
+ return XSUM_badusage(exename);
355
+ }
356
+ break;
357
+
358
+ + case 's': argument++;
359
+ + errno = 0;
360
+ + j = 0;
361
+ + while (*argument >= '0' && *argument <= '9' || *argument >= 'a' && *argument <= 'f'
362
+ + || *argument >= 'A' && *argument <= 'F') {
363
+ + if (j < 32)
364
+ + seed_hex[j++] = *argument;
365
+ + argument++;
366
+ + }
367
+ + seed_hex[j] = 0;
368
+ + if (seed.type == XSUM_SECRET && seed.secret)
369
+ + free(seed.secret);
370
+ + seed.type = XSUM_SEED;
371
+ + seed.seed = strtoull(seed_hex, 0, 16);
372
+ + if (errno) {
373
+ + error = strerror(errno);
374
+ + XSUM_log("Error: Failed to parse seed argument: %s\n", error);
375
+ + return XSUM_badusage(exename);
376
+ + }
377
+ + break;
378
+ +
379
+ + case 'S': argument++;
380
+ + size_t hex_length = strlen(argument);
381
+ + size_t hex_decoded_len = calc_hex_decoded_str_length(hex_length);
382
+ + if (hex_decoded_len < XXH3_SECRET_SIZE_MIN) {
383
+ + XSUM_log("Error: Secret needs to be at least %d bytes in length.\n",
384
+ + XXH3_SECRET_SIZE_MIN);
385
+ + return XSUM_badusage(exename);
386
+ + }
387
+ + if (seed.type == XSUM_SECRET && seed.secret)
388
+ + free(seed.secret);
389
+ + seed.type = XSUM_SECRET;
390
+ + seed.secret = malloc(hex_decoded_len);
391
+ + seed.secret_length = hex_decoded_len;
392
+ + if (! hex_decode_str_implied(argument, hex_length, seed.secret)) {
393
+ + XSUM_log("Error: Invalid hex argument: %s\n", argument);
394
+ + return XSUM_badusage(exename);
395
+ + }
396
+ + argument += hex_length;
397
+ + break;
398
+ +
399
+ /* File check mode */
400
+ case 'c':
401
+ fileCheckMode=1;
402
+ @@ -1479,6 +1657,14 @@ XSUM_API int XSUM_main(int argc, char* argv[])
403
+ }
404
+ } /* for(i=1; i<argc; i++) */
405
+
406
+ + if (seed.type == XSUM_SECRET && (algo == 0 || algo == 1)) {
407
+ + XSUM_log("Error: XXH32 or XXH64 does not support secrets.\n");
408
+ + return XSUM_badusage(exename);
409
+ + } else if (algo == 0 && seed.seed > UINT32_MAX) {
410
+ + XSUM_log("Error: Seed value too large for 32-bit algorithm.\n");
411
+ + return XSUM_badusage(exename);
412
+ + }
413
+ +
414
+ /* Check benchmark mode */
415
+ if (benchmarkMode) {
416
+ XSUM_logVerbose(2, FULL_WELCOME_MESSAGE(exename) );
417
+ @@ -1498,6 +1684,6 @@ XSUM_API int XSUM_main(int argc, char* argv[])
418
+ return XSUM_checkFiles(argv+filenamesStart, argc-filenamesStart,
419
+ displayEndianess, strictMode, statusOnly, warn, (XSUM_logLevel < 2) /*quiet*/);
420
+ } else {
421
+ - return XSUM_hashFiles(argv+filenamesStart, argc-filenamesStart, algo, displayEndianess, convention);
422
+ + return XSUM_hashFiles(argv+filenamesStart, argc-filenamesStart, algo, seed, displayEndianess, convention);
423
+ }
424
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: digest-xxhash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - konsolebox
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-22 00:00:00.000000000 Z
11
+ date: 2021-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -31,6 +31,15 @@ dependencies:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.0'
34
+ - - "!="
35
+ - !ruby/object:Gem::Version
36
+ version: 1.1.3
37
+ - - "!="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.1.4
40
+ - - "!="
41
+ - !ruby/object:Gem::Version
42
+ version: 1.1.5
34
43
  type: :development
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -38,6 +47,15 @@ dependencies:
38
47
  - - "~>"
39
48
  - !ruby/object:Gem::Version
40
49
  version: '1.0'
50
+ - - "!="
51
+ - !ruby/object:Gem::Version
52
+ version: 1.1.3
53
+ - - "!="
54
+ - !ruby/object:Gem::Version
55
+ version: 1.1.4
56
+ - - "!="
57
+ - !ruby/object:Gem::Version
58
+ version: 1.1.5
41
59
  - !ruby/object:Gem::Dependency
42
60
  name: minitest
43
61
  requirement: !ruby/object:Gem::Requirement
@@ -52,7 +70,10 @@ dependencies:
52
70
  - - "~>"
53
71
  - !ruby/object:Gem::Version
54
72
  version: '5.8'
55
- description: An XXHash library that complies with Digest::Instance's functional design.
73
+ description: |2
74
+ This gem provides XXH32, XXH64, XXH3_64bits and XXH3_128bits
75
+ functionalities for Ruby. It inherits Digest::Class and complies
76
+ with Digest::Instance's functional design.
56
77
  email:
57
78
  - konsolebox@gmail.com
58
79
  executables: []
@@ -60,28 +81,27 @@ extensions:
60
81
  - ext/digest/xxhash/extconf.rb
61
82
  extra_rdoc_files: []
62
83
  files:
63
- - ".travis.yml"
64
84
  - Gemfile
65
85
  - LICENSE
66
86
  - README.md
67
87
  - Rakefile
68
- - appveyor.yml
69
88
  - digest-xxhash.gemspec
70
89
  - ext/digest/xxhash/debug-funcs.h
71
90
  - ext/digest/xxhash/ext.c
72
91
  - ext/digest/xxhash/extconf.rb
73
92
  - ext/digest/xxhash/utils.h
74
- - ext/digest/xxhash/xxhash.c
75
93
  - ext/digest/xxhash/xxhash.h
76
94
  - lib/digest/xxhash/version.rb
77
95
  - test/produce-vectors-with-ruby-xxhash.rb
96
+ - test/produce-vectors-with-xxhsum.rb
78
97
  - test/test.rb
79
98
  - test/test.vectors
99
+ - test/xxhsum.c.c0e86bc0.diff
80
100
  homepage: https://github.com/konsolebox/digest-xxhash-ruby
81
101
  licenses:
82
102
  - MIT
83
103
  metadata: {}
84
- post_install_message:
104
+ post_install_message:
85
105
  rdoc_options: []
86
106
  require_paths:
87
107
  - lib
@@ -96,12 +116,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
116
  - !ruby/object:Gem::Version
97
117
  version: '0'
98
118
  requirements: []
99
- rubyforge_project:
100
- rubygems_version: 2.7.4
101
- signing_key:
119
+ rubygems_version: 3.2.22
120
+ signing_key:
102
121
  specification_version: 4
103
- summary: XXHash for Ruby
122
+ summary: A Digest framework based XXHash library for Ruby
104
123
  test_files:
105
124
  - test/produce-vectors-with-ruby-xxhash.rb
125
+ - test/produce-vectors-with-xxhsum.rb
106
126
  - test/test.rb
107
127
  - test/test.vectors
128
+ - test/xxhsum.c.c0e86bc0.diff
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.2
4
- - 2.3
5
- - 2.4
6
- - 2.5
data/appveyor.yml DELETED
@@ -1,19 +0,0 @@
1
- version: 1.0.{build}
2
- init:
3
- - cmd: >-
4
- set base_path=C:/Program Files/7-Zip;C:/Program Files/AppVeyor/BuildAgent;C:/Program Files/Git/cmd;C:/Windows/system32;C:/Windows;"C:/Program Files (x86)/GNU/GnuPG/pub"
5
-
6
- set PATH=C:/ruby%ruby_version%/bin;C:/msys64/usr/bin;%base_path%
7
- environment:
8
- matrix:
9
- - ruby_version: 22-x64
10
- - ruby_version: 23-x64
11
- - ruby_version: 24-x64
12
- - ruby_version: 25-x64
13
- install:
14
- - cmd: bundle install
15
- build_script:
16
- - cmd: bundle exec rake -rdevkit compile
17
- test_script:
18
- - cmd: bundle exec rake test
19
- deploy: off