From 3c7fb71a90dcd37ba64dd0623aea13c9d940fe06 Mon Sep 17 00:00:00 2001 From: "Charles R. Portwood II" Date: Fri, 8 Jul 2016 15:31:30 -0500 Subject: [PATCH] Introducing Argon2 memory, time, and lanes constants PASSWORD_ARGON2_MEMORY_COST PASSWORD_ARGON2_TIME_COST PASSWORD_ARGON2_LANES --- ext/standard/password.c | 16 ++++++++++------ ext/standard/php_password.h | 6 +++--- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/ext/standard/password.c b/ext/standard/password.c index 82ed9fa7c30..4da1682056a 100644 --- a/ext/standard/password.c +++ b/ext/standard/password.c @@ -44,6 +44,10 @@ PHP_MINIT_FUNCTION(password) /* {{{ */ REGISTER_LONG_CONSTANT("PASSWORD_BCRYPT_DEFAULT_COST", PHP_PASSWORD_BCRYPT_COST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("PASSWORD_ARGON2_MEMORY_COST", PHP_PASSWORD_ARGON2_MEMORY_COST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("PASSWORD_ARGON2_TIME_COST", PHP_PASSWORD_ARGON2_TIME_COST, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("PASSWORD_ARGON2_LANES", PHP_PASSWORD_ARGON2_LANES, CONST_CS | CONST_PERSISTENT); + return SUCCESS; } /* }}} */ @@ -180,9 +184,9 @@ PHP_FUNCTION(password_get_info) case PHP_PASSWORD_ARGON2I: case PHP_PASSWORD_ARGON2D: { - zend_long m_cost = PHP_ARGON2_M_COST; - zend_long t_cost = PHP_ARGON2_T_COST; - zend_long lanes = PHP_ARGON2_LANES; + zend_long m_cost = PHP_PASSWORD_ARGON2_MEMORY_COST; + zend_long t_cost = PHP_PASSWORD_ARGON2_TIME_COST; + zend_long lanes = PHP_PASSWORD_ARGON2_LANES; sscanf(hash, "$%*[argon2id]$v=%*ld$m=" ZEND_LONG_FMT ",t=" ZEND_LONG_FMT ",p=" ZEND_LONG_FMT, &m_cost, &t_cost, &lanes); add_assoc_long(&options, "m_cost", m_cost); @@ -239,9 +243,9 @@ PHP_FUNCTION(password_needs_rehash) case PHP_PASSWORD_ARGON2I: case PHP_PASSWORD_ARGON2D: { - zend_long new_m_cost = PHP_ARGON2_M_COST, m_cost = 0; - zend_long new_t_cost = PHP_ARGON2_T_COST, t_cost = 0; - zend_long new_lanes = PHP_ARGON2_LANES, lanes = 0; + zend_long new_m_cost = PHP_PASSWORD_ARGON2_MEMORY_COST, m_cost = 0; + zend_long new_t_cost = PHP_PASSWORD_ARGON2_TIME_COST, t_cost = 0; + zend_long new_lanes = PHP_PASSWORD_ARGON2_LANES, lanes = 0; if (options && (option_buffer = zend_hash_str_find(options, "m_cost", sizeof("m_cost")-1)) != NULL) { new_m_cost = zval_get_long(option_buffer); diff --git a/ext/standard/php_password.h b/ext/standard/php_password.h index 872afb3befe..4c6e1133919 100644 --- a/ext/standard/php_password.h +++ b/ext/standard/php_password.h @@ -31,9 +31,9 @@ PHP_MINIT_FUNCTION(password); #define PHP_PASSWORD_DEFAULT PHP_PASSWORD_ARGON2I #define PHP_PASSWORD_BCRYPT_COST 10 -#define PHP_ARGON2_M_COST 1<<16 -#define PHP_ARGON2_T_COST 3 -#define PHP_ARGON2_LANES 1 +#define PHP_PASSWORD_ARGON2_MEMORY_COST 1<<16 +#define PHP_PASSWORD_ARGON2_TIME_COST 3 +#define PHP_PASSWORD_ARGON2_LANES 1 typedef enum { PHP_PASSWORD_UNKNOWN,