On Thu, May 30, 2019 at 09:52:57AM +0300, Nikolay Borisov wrote: > xxhash is currently implemented as a self-contained module in /lib. > This patch enables that module to be used as part of the generic kernel > crypto framework. It adds a simple wrapper to the 64bit version. > > I've also added test vectors (with help from Nick Terrell). The upstream > xxhash code is tested by running hashing operation on random 222 byte > data with seed values of 0 and a prime number. The upstream test > suite can be found at https://github.com/Cyan4973/xxHash/blob/cf46e0c/xxhsum.c#L664 > > Essentially hashing is run on data of length 0,1,14,222 with the > aforementioned seed values 0 and prime 2654435761. The particular random > 222 byte string was provided to me by Nick Terrell by reading > /dev/random and the checksums were calculated by the upstream xxsum > utility with the following bash script: > > dd if=/dev/random of=TEST_VECTOR bs=1 count=222 > > for a in 0 1; do > for l in 0 1 14 222; do > for s in 0 2654435761; do > echo algo $a length $l seed $s; > head -c $l TEST_VECTOR | ~/projects/kernel/xxHash/xxhsum -H$a -s$s > done > done > done > > This produces output as follows: > > algo 0 length 0 seed 0 > 02cc5d05 stdin > algo 0 length 0 seed 2654435761 > 02cc5d05 stdin > algo 0 length 1 seed 0 > 25201171 stdin > algo 0 length 1 seed 2654435761 > 25201171 stdin > algo 0 length 14 seed 0 > c1d95975 stdin > algo 0 length 14 seed 2654435761 > c1d95975 stdin > algo 0 length 222 seed 0 > b38662a6 stdin > algo 0 length 222 seed 2654435761 > b38662a6 stdin > algo 1 length 0 seed 0 > ef46db3751d8e999 stdin > algo 1 length 0 seed 2654435761 > ac75fda2929b17ef stdin > algo 1 length 1 seed 0 > 27c3f04c2881203a stdin > algo 1 length 1 seed 2654435761 > 4a15ed26415dfe4d stdin > algo 1 length 14 seed 0 > 3d33dc700231dfad stdin > algo 1 length 14 seed 2654435761 > ea5f7ddef9a64f80 stdin > algo 1 length 222 seed 0 > 5f3d3c08ec2bef34 stdin > algo 1 length 222 seed 2654435761 > 6a9df59664c7ed62 stdin > > algo 1 is xx64 variant, algo 0 is the 32 bit variant which is currently > not hooked up. > > Signed-off-by: Nikolay Borisov <nborisov@xxxxxxxx> > --- Looks fine now. Reviewed-by: Eric Biggers <ebiggers@xxxxxxxxxx> - Eric