php-src/ext/hash/tests/hash_algos.phpt
Anatol Belski 23590f7c53 hash: Implement xxHash
The implementation bundles the xxHash v0.8.0 release and includes all the variants

- xxh32, 32-bit wide
- xxh64, 64-bit wide
- xxh3, 64-bit wide
- xxh128, 128-bit wide

An initial hash state can be passed through the options arrray. An additional
functionality not targeted in this implementation is the secret support in xxh3
and xxh128. That can be added at a later point.

The serialization for xxh3 and xxh128 should not be implemented, as the
state would contain the secret. Despite the xxHash is a non crypto
algorithm, the secret would be serialized as plain text which would be
insecure.

Closes GH-6524

Signed-off-by: Anatol Belski <ab@php.net>
2021-01-09 19:35:32 +01:00

134 lines
2.1 KiB
PHP

--TEST--
Hash: hash_algos() function : basic functionality
--FILE--
<?php
echo "*** Testing hash_algos() : basic functionality ***\n";
var_dump(hash_algos());
?>
--EXPECTF--
*** Testing hash_algos() : basic functionality ***
array(60) {
[%d]=>
string(3) "md2"
[%d]=>
string(3) "md4"
[%d]=>
string(3) "md5"
[%d]=>
string(4) "sha1"
[%d]=>
string(6) "sha224"
[%d]=>
string(6) "sha256"
[%d]=>
string(6) "sha384"
[%d]=>
string(10) "sha512/224"
[%d]=>
string(10) "sha512/256"
[%d]=>
string(6) "sha512"
[%d]=>
string(8) "sha3-224"
[%d]=>
string(8) "sha3-256"
[%d]=>
string(8) "sha3-384"
[%d]=>
string(8) "sha3-512"
[%d]=>
string(9) "ripemd128"
[%d]=>
string(9) "ripemd160"
[%d]=>
string(9) "ripemd256"
[%d]=>
string(9) "ripemd320"
[%d]=>
string(9) "whirlpool"
[%d]=>
string(10) "tiger128,3"
[%d]=>
string(10) "tiger160,3"
[%d]=>
string(10) "tiger192,3"
[%d]=>
string(10) "tiger128,4"
[%d]=>
string(10) "tiger160,4"
[%d]=>
string(10) "tiger192,4"
[%d]=>
string(6) "snefru"
[%d]=>
string(9) "snefru256"
[%d]=>
string(4) "gost"
[%d]=>
string(11) "gost-crypto"
[%d]=>
string(7) "adler32"
[%d]=>
string(5) "crc32"
[%d]=>
string(6) "crc32b"
[%d]=>
string(6) "crc32c"
[%d]=>
string(6) "fnv132"
[%d]=>
string(7) "fnv1a32"
[%d]=>
string(6) "fnv164"
[%d]=>
string(7) "fnv1a64"
[%d]=>
string(5) "joaat"
[%d]=>
string(8) "murmur3a"
[%d]=>
string(8) "murmur3c"
[%d]=>
string(8) "murmur3f"
[%d]=>
string(5) "xxh32"
[%d]=>
string(5) "xxh64"
[%d]=>
string(4) "xxh3"
[%d]=>
string(6) "xxh128"
[%d]=>
string(10) "haval128,3"
[%d]=>
string(10) "haval160,3"
[%d]=>
string(10) "haval192,3"
[%d]=>
string(10) "haval224,3"
[%d]=>
string(10) "haval256,3"
[%d]=>
string(10) "haval128,4"
[%d]=>
string(10) "haval160,4"
[%d]=>
string(10) "haval192,4"
[%d]=>
string(10) "haval224,4"
[%d]=>
string(10) "haval256,4"
[%d]=>
string(10) "haval128,5"
[%d]=>
string(10) "haval160,5"
[%d]=>
string(10) "haval192,5"
[%d]=>
string(10) "haval224,5"
[%d]=>
string(10) "haval256,5"
}