backtrace openssl_verify errors so that we can find bad keys - as there is very little relevant context available at this level.
This commit is contained in:
parent
ebfa1a12b9
commit
7972de13ca
@ -41,9 +41,10 @@ class Receiver {
|
||||
if(! $this->messagetype)
|
||||
$this->error = true;
|
||||
|
||||
$this->sender = ((array_key_exists('sender',$this->data)) ? $this->data['sender'] : null);
|
||||
$this->recipients = ((array_key_exists('recipients',$this->data)) ? $this->data['recipients'] : null);
|
||||
|
||||
if($this->data) {
|
||||
$this->sender = ((array_key_exists('sender',$this->data)) ? $this->data['sender'] : null);
|
||||
$this->recipients = ((array_key_exists('recipients',$this->data)) ? $this->data['recipients'] : null);
|
||||
}
|
||||
|
||||
if($this->sender)
|
||||
$this->ValidateSender();
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -126,7 +126,7 @@ function queue_deliver($outq, $immediate = false) {
|
||||
remove_queue_item($outq['outq_hash']);
|
||||
|
||||
// server is responding - see if anything else is going to this destination and is piled up
|
||||
// and try to send some more. We're relying on the fact that delivery_loop() results in an
|
||||
// and try to send some more. We're relying on the fact that do_delivery() results in an
|
||||
// immediate delivery otherwise we could get into a queue loop.
|
||||
|
||||
if(! $immediate) {
|
||||
@ -141,7 +141,7 @@ function queue_deliver($outq, $immediate = false) {
|
||||
}
|
||||
}
|
||||
if($piled_up) {
|
||||
delivery_loop($piled_up);
|
||||
do_delivery($piled_up);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user