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; }
$fastcheck = $_GET['fastcheck']; $write_cache = 1; $hostfilename = preg_replace("([^\\w\\s\\d\\-_~,;:\\[\\]\\(\\).])", '', $host); $hostfilename = preg_replace("([\\.]{2,})", '', $host); $hostfilename = preg_replace("([^a-z0-9])", '', $host); $cache_filename = (string) "results/saved." . $hostfilename . "." . $epoch . "." . $random_bla . ".api.json"; $data["data"] = check_json($host, $ip, $port, $fastcheck); } elseif (isset($_GET['csr']) && !empty($_GET['csr'])) { $write_cache = 1; $cache_filename = (string) "results/saved.csr." . $epoch . "." . $random_bla . ".api.json"; $data["data"]["chain"]["1"] = csr_parse_json($_GET['csr']); } else { $data["error"] = ["Host is required"]; } $data['version'] = $version; $data = utf8encodeNestedArray($data); if (isset($data["data"]["error"])) { $data["error"] = $data["data"]["error"]; unset($data["data"]); } if ($_GET["type"] == "pretty") { header('Content-Type: text/html'); echo "<pre>"; echo htmlspecialchars(json_encode($data, JSON_PRETTY_PRINT)); echo "</pre>"; ?> <!-- Piwik --> <script type="text/javascript"> var _paq = _paq || []; _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']);
echo htmlspecialchars($current_folder) . $cache_filename; echo "\">the following URL</a>. Do note that this might be deleted earlier if space runs out."; } if (strpos($_GET['csr'], "BEGIN CERTIFICATE REQUEST") !== false) { echo "<header><h2>CSR </h2></header><p>"; csr_parse($data); } else { echo "<header><h2>Certificate </h2></header><p>"; cert_parse($data); } } else { echo "<span class='text-danger'> Host or Certificate required.</span>"; echo "<hr>"; $write_cache = 0; } } echo "</div>"; echo "</div>"; echo "</div>"; require_once "inc/footer.php"; if ($write_cache == 1) { if (!file_exists($cache_filename)) { file_put_contents($cache_filename, ob_get_contents()); } if (is_array($data)) { $json_data = json_encode(utf8encodeNestedArray($data)); } if (!file_exists($cache_filename_json)) { file_put_contents($cache_filename_json, $json_data); } }