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 <nbori...@suse.com>
> ---

Looks fine now.

Reviewed-by: Eric Biggers <ebigg...@kernel.org>

- Eric

Reply via email to