diff options
author | redmatrix <git@macgirvin.com> | 2016-02-25 14:34:30 -0800 |
---|---|---|
committer | redmatrix <git@macgirvin.com> | 2016-02-25 14:34:30 -0800 |
commit | 7972de13caf21647c8cc2e82c499a344f7191a22 (patch) | |
tree | 240881fffc3c89e128d83fa94ef7014eefdfd970 /include/crypto.php | |
parent | ebfa1a12b9cc3d939ed49a7f66e5687267a409d3 (diff) | |
download | volse-hubzilla-7972de13caf21647c8cc2e82c499a344f7191a22.tar.gz volse-hubzilla-7972de13caf21647c8cc2e82c499a344f7191a22.tar.bz2 volse-hubzilla-7972de13caf21647c8cc2e82c499a344f7191a22.zip |
backtrace openssl_verify errors so that we can find bad keys - as there is very little relevant context available at this level.
Diffstat (limited to 'include/crypto.php')
-rw-r--r-- | include/crypto.php | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/crypto.php b/include/crypto.php index 494a2a5b9..50ec2a3a6 100644 --- a/include/crypto.php +++ b/include/crypto.php @@ -21,6 +21,21 @@ function rsa_verify($data,$sig,$key,$alg = 'sha256') { if(intval(OPENSSL_ALGO_SHA256) && $alg === 'sha256') $alg = OPENSSL_ALGO_SHA256; $verify = openssl_verify($data,$sig,$key,$alg); + + if(! $verify) { + logger('openssl_verify: ' . openssl_error_string(),LOGGER_NORMAL,LOG_ERR); + logger('openssl_verify: key: ' . $key, LOGGER_DEBUG, LOG_ERR); + // provide a backtrace so that we can debug key issues + if(version_compare(PHP_VERSION, '5.4.0') >= 0) { + $stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); + if($stack) { + foreach($stack as $s) { + logger('stack: ' . basename($s['file']) . ':' . $s['line'] . ':' . $s['function'] . '()',LOGGER_DEBUG,LOG_ERR); + } + } + } + } + return $verify; } |