diff options
author | Remy <relst@relst.nl> | 2015-03-31 10:41:16 +0200 |
---|---|---|
committer | Remy <relst@relst.nl> | 2015-03-31 10:41:16 +0200 |
commit | 294ac6676ec9c02eb741f819fc76e6ed950ceb50 (patch) | |
tree | 0ef4029c7e43f4be7e6e75e7ebb34df94c95d6d4 /json.php | |
parent | 0fdb444fccbe3535d8b766446bb95bc1390f6442 (diff) | |
download | ssl-decoder-294ac6676ec9c02eb741f819fc76e6ed950ceb50.zip ssl-decoder-294ac6676ec9c02eb741f819fc76e6ed950ceb50.tar.gz ssl-decoder-294ac6676ec9c02eb741f819fc76e6ed950ceb50.tar.bz2 |
Use json endpoint internally and add warnings
Diffstat (limited to 'json.php')
-rw-r--r-- | json.php | 56 |
1 files changed, 0 insertions, 56 deletions
@@ -4,62 +4,6 @@ foreach (glob("functions/*.php") as $filename) { include $filename; } -function utf8encodeNestedArray($arr) { - // json_encode fails with binary data. utf-8 encode that first, some ca's like to encode images in their OID's (verisign, 1.3.6.1.5.5.7.1.12)... - $encoded_arr = array(); - foreach ($arr as $key => $value) { - if (is_array($value)) { - $encoded_arr[utf8_encode($key)] = utf8encodeNestedArray($value); - } else { - $encoded_arr[utf8_encode($key)] = utf8_encode($value); - } - } - return $encoded_arr; -} - -function check_json($host,$port) { - $data = []; - $stream = stream_context_create (array("ssl" => - array("capture_peer_cert" => true, - "capture_peer_cert_chain" => true, - "verify_peer" => false, - "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 ( $read_stream === false ) { - $data["error"] = ["Failed to connect: " . htmlspecialchars($errstr)]; - return $data; - } else { - $context = stream_context_get_params($read_stream); - $context_meta = stream_context_get_options($read_stream)['ssl']['session_meta']; - $cert_data = openssl_x509_parse($context["options"]["ssl"]["peer_certificate"]); - $chain_data = $context["options"]["ssl"]["peer_certificate_chain"]; - $chain_length = count($chain_data); - if (isset($chain_data) && $chain_length < 10) { - $chain_length = count($chain_data); - $chain_arr_keys = ($chain_data); - foreach(array_keys($chain_arr_keys) as $key) { - $curr = $chain_data[$key]; - $next = $chain_data[$key+1]; - $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, false, $host, true); - } else { - $data["chain"][$chain_key] = cert_parse_json($curr, $next, false, null, false); - } - } - } else { - $data["error"] = ["Chain too long."]; - return $data; - } - } - return $data; -} - if ( isset($_GET['host']) && !empty($_GET['host'])) { $data = []; $hostname = mb_strtolower(get($_GET['host'])); |