From: Frank Denis Date: Sun, 30 Jul 2017 13:05:41 +0000 (+0200) Subject: sodium ext: skip scrypt if it is not available X-Git-Tag: php-7.2.0beta2~16 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=34df3cdafab36381e5dc07c54c8c5eab0ade9edc;p=php sodium ext: skip scrypt if it is not available scrypt was removed from minimal libsodium builds in version 1.0.13 --- diff --git a/ext/sodium/libsodium.c b/ext/sodium/libsodium.c index 6024d8d120..9580e3f28d 100644 --- a/ext/sodium/libsodium.c +++ b/ext/sodium/libsodium.c @@ -225,9 +225,11 @@ const zend_function_entry sodium_functions[] = { PHP_FE(sodium_crypto_pwhash_str, AI_PasswordAndOpsLimitAndMemLimit) PHP_FE(sodium_crypto_pwhash_str_verify, AI_HashAndPassword) #endif +#ifdef crypto_pwhash_scryptsalsa208sha256_SALTBYTES PHP_FE(sodium_crypto_pwhash_scryptsalsa208sha256, AI_LengthAndPasswordAndSaltAndOpsLimitAndMemLimit) PHP_FE(sodium_crypto_pwhash_scryptsalsa208sha256_str, AI_PasswordAndOpsLimitAndMemLimit) PHP_FE(sodium_crypto_pwhash_scryptsalsa208sha256_str_verify, AI_HashAndPassword) +#endif PHP_FE(sodium_crypto_scalarmult, AI_TwoStrings) PHP_FE(sodium_crypto_secretbox, AI_StringAndNonceAndKey) PHP_FE(sodium_crypto_secretbox_open, AI_StringAndNonceAndKey) @@ -472,11 +474,9 @@ PHP_MINIT_FUNCTION(sodium) REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE", crypto_pwhash_memlimit_sensitive(), CONST_CS | CONST_PERSISTENT); #endif +#ifdef crypto_pwhash_scryptsalsa208sha256_SALTBYTES REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES", crypto_pwhash_scryptsalsa208sha256_SALTBYTES, CONST_CS | CONST_PERSISTENT); -#ifndef crypto_pwhash_scryptsalsa208sha256_STRPREFIX -# define crypto_pwhash_scryptsalsa208sha256_STRPREFIX "$7$" -#endif REGISTER_STRING_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX", crypto_pwhash_scryptsalsa208sha256_STRPREFIX, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE", @@ -487,6 +487,7 @@ PHP_MINIT_FUNCTION(sodium) crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive(), CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE", crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive(), CONST_CS | CONST_PERSISTENT); +#endif REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SCALARMULT_BYTES", crypto_scalarmult_BYTES, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("SODIUM_CRYPTO_SCALARMULT_SCALARBYTES", @@ -1654,6 +1655,7 @@ PHP_FUNCTION(sodium_crypto_stream_xor) RETURN_STR(ciphertext); } +#ifdef crypto_pwhash_scryptsalsa208sha256_SALTBYTES PHP_FUNCTION(sodium_crypto_pwhash_scryptsalsa208sha256) { zend_string *hash; @@ -1776,6 +1778,7 @@ PHP_FUNCTION(sodium_crypto_pwhash_scryptsalsa208sha256_str_verify) } RETURN_FALSE; } +#endif #ifdef crypto_pwhash_SALTBYTES PHP_FUNCTION(sodium_crypto_pwhash) diff --git a/ext/sodium/tests/pwhash_scrypt.phpt b/ext/sodium/tests/pwhash_scrypt.phpt index e5a204926c..92db7ac7e0 100644 --- a/ext/sodium/tests/pwhash_scrypt.phpt +++ b/ext/sodium/tests/pwhash_scrypt.phpt @@ -1,7 +1,8 @@ --TEST-- -Check for libsodium utils +Check for libsodium scrypt --SKIPIF-- - + --FILE--