summaryrefslogtreecommitdiffstats
path: root/functions/json.php
diff options
context:
space:
mode:
authorRemy <relst@relst.nl>2015-10-17 17:54:36 +0200
committerRemy <relst@relst.nl>2015-10-17 17:54:36 +0200
commit8e5234177128a8c9d47fac1b1e32147372450ff0 (patch)
tree08474225138bb88535650c51be3d36e5b01b66cb /functions/json.php
parent80b1fb7db9e3d7356f7cbb0285250c5ecc4fe09d (diff)
downloadssl-decoder-8e5234177128a8c9d47fac1b1e32147372450ff0.zip
ssl-decoder-8e5234177128a8c9d47fac1b1e32147372450ff0.tar.gz
ssl-decoder-8e5234177128a8c9d47fac1b1e32147372450ff0.tar.bz2
version 2.9
Diffstat (limited to 'functions/json.php')
-rw-r--r--functions/json.php41
1 files changed, 18 insertions, 23 deletions
diff --git a/functions/json.php b/functions/json.php
index 997e892..3fae962 100644
--- a/functions/json.php
+++ b/functions/json.php
@@ -14,9 +14,10 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-function check_json($host,$ip,$port) {
+function check_json($host,$ip,$port,$fastcheck=0) {
global $timeout;
+ global $max_chain_length;
+ global $ct_urls;
$data = [];
$stream = stream_context_create (array("ssl" =>
array("capture_peer_cert" => true,
@@ -42,7 +43,7 @@ function check_json($host,$ip,$port) {
$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) {
+ if (isset($chain_data) && $chain_length < $max_chain_length) {
$chain_length = count($chain_data);
$chain_arr_keys = ($chain_data);
foreach(array_keys($chain_arr_keys) as $key) {
@@ -51,30 +52,24 @@ function check_json($host,$ip,$port) {
$prev = $chain_data[$key-1];
$chain_key = (string)$key+1;
if ($key == 0) {
- $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);
+ $data["connection"] = ssl_conn_metadata_json($host, $ip, $port, $read_stream, $chain_data, $fastcheck);
+ $data["chain"][$chain_key] = cert_parse_json($curr, $next, $host, true, $port);
} else {
- $data["chain"][$chain_key] = cert_parse_json($curr, $next, null, false);
+ $data["chain"][$chain_key] = cert_parse_json($curr, $next, null, false, $port);
}
// certificate transparency
- $ct_urls = ["https://ct.ws.symantec.com",
- "https://ct.googleapis.com/pilot",
- "https://ct.googleapis.com/aviator",
- "https://ct.googleapis.com/rocketeer",
- "https://ct1.digicert-ct.com/log",
- "https://ct.izenpe.com",
- "https://ctlog.api.venafi.com",
- "https://log.certly.io"];
$data["certificate_transparency"] = [];
- foreach ($ct_urls as $ct_url) {
- $submitToCT = submitCertToCT($data["chain"], $ct_url);
- $ct_result = json_decode($submitToCT, TRUE);
- if ($ct_result === null
- && json_last_error() !== JSON_ERROR_NONE) {
- $result_ct = array('result' => $submitToCT);
- $data["certificate_transparency"][$ct_url] = $result_ct;
- } else {
- $data["certificate_transparency"][$ct_url] = $ct_result;
+ if($fastcheck == 0) {
+ foreach ($ct_urls as $ct_url) {
+ $submitToCT = submitCertToCT($data["chain"], $ct_url);
+ $ct_result = json_decode($submitToCT, TRUE);
+ if ($ct_result === null
+ && json_last_error() !== JSON_ERROR_NONE) {
+ $result_ct = array('result' => $submitToCT);
+ $data["certificate_transparency"][$ct_url] = $result_ct;
+ } else {
+ $data["certificate_transparency"][$ct_url] = $ct_result;
+ }
}
}
}