summaryrefslogtreecommitdiffstats
path: root/functions/json.php
diff options
context:
space:
mode:
authorRemy <relst@relst.nl>2015-05-24 09:35:28 +0200
committerRemy <relst@relst.nl>2015-05-24 09:35:28 +0200
commit988f08b9eb952404b94817a973d1a19ff7c6524b (patch)
treeb23c940603507f240f377ba9278b49ae97dc6190 /functions/json.php
parent5e7e74fe94062683cce82c189cd43dd18c3aff9b (diff)
downloadssl-decoder-988f08b9eb952404b94817a973d1a19ff7c6524b.zip
ssl-decoder-988f08b9eb952404b94817a973d1a19ff7c6524b.tar.gz
ssl-decoder-988f08b9eb952404b94817a973d1a19ff7c6524b.tar.bz2
Add support for specific endpoints
Diffstat (limited to 'functions/json.php')
-rw-r--r--functions/json.php15
1 files changed, 11 insertions, 4 deletions
diff --git a/functions/json.php b/functions/json.php
index bbd9983..0abed70 100644
--- a/functions/json.php
+++ b/functions/json.php
@@ -15,17 +15,24 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.
-function check_json($host,$port) {
+function check_json($host,$ip,$port) {
+ global $timeout;
$data = [];
$stream = stream_context_create (array("ssl" =>
array("capture_peer_cert" => true,
"capture_peer_cert_chain" => true,
"verify_peer" => false,
+ "peer_name" => $host,
"verify_peer_name" => false,
"allow_self_signed" => true,
"capture_session_meta" => true,
"sni_enabled" => true)));
- $read_stream = stream_socket_client("ssl://$host:$port", $errno, $errstr, 2, STREAM_CLIENT_CONNECT, $stream);
+ if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 )) {
+ $connect_ip = "[" . $ip . "]";
+ } else {
+ $connect_ip = $ip;
+ }
+ $read_stream = stream_socket_client("ssl://$connect_ip:$port", $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $stream);
if ( $read_stream === false ) {
$data["error"] = ["Failed to connect: " . htmlspecialchars($errstr)];
return $data;
@@ -44,8 +51,8 @@ function check_json($host,$port) {
$prev = $chain_data[$key-1];
$chain_key = (string)$key+1;
if ($key == 0) {
- $data["connection"] = ssl_conn_metadata_json($host, $port, $read_stream, $chain_data);
- $data["chain"][$chain_key] = cert_parse_json($curr, $next, $host, true);
+ $data["connection"] = ssl_conn_metadata_json($host, $ip, $port, $read_stream, $chain_data);
+ $data["chain"][$chain_key] = cert_parse_json($curr, $next, $host, $ip, true);
} else {
$data["chain"][$chain_key] = cert_parse_json($curr, $next, null, false);
}