123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- // by 请勿倒卖,已申请软著,否则追究法律责任
- namespace app\webview;
- class keystore
- {
- public $certDir = IN_CERT_PATH . "keystore/";
- public $debug = false;
- public function __construct($certDir = '', $debug = false)
- {
- if ($certDir) {
- $this->certDir = $certDir;
- }
- @creatdir($this->certDir);
- if ($debug) {
- $this->debug = $debug;
- }
- }
- function create($_var_0, $_var_1 = '123456', $_var_2 = '123456')
- {
- $_var_3 = $this->certDir . $_var_0 . ".jks";
- if (!is_file($_var_3)) {
- $_var_4["alias"] = $_var_0;
- $_var_4["keypass"] = $_var_2;
- $_var_4["keyalg"] = "RSA";
- $_var_4["keysize"] = "1024";
- $_var_4["validity"] = "365";
- $_var_4["keystore"] = $_var_3;
- $_var_4["storepass"] = $_var_1;
- $_var_4["-dname"] = "\"CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)\"";
- $_var_5 = "keytool -genkey ";
- foreach ($_var_4 as $_var_6 => $_var_7) {
- $_var_5 .= "-" . $_var_6 . " " . $_var_7 . " ";
- }
- exec($_var_5, $_var_8);
- $this->debug && @file_put_contents("keystore-create.log", $_var_5 . "\n\n\n" . $_var_8);
- }
- return $_var_3;
- }
- function getCer($_var_9, $_var_10 = '123456', $_var_11 = '123456')
- {
- $_var_12 = $this->create($_var_9, $_var_10, $_var_11);
- $_var_13 = $this->certDir . $_var_9 . ".cer";
- if (!is_file($_var_13)) {
- $_var_14 = "keytool -list -rfc -keystore " . $_var_12 . " -storepass " . $_var_10;
- exec($_var_14, $_var_15);
- $this->debug && @file_put_contents("keystore-getCer.log", $_var_14 . "\n\n\n" . $_var_15);
- $_var_16 = false;
- $_var_17 = "";
- foreach ($_var_15 as $_var_18) {
- if ($_var_18 == "-----BEGIN CERTIFICATE-----") {
- $_var_16 = true;
- }
- if ($_var_16) {
- $_var_17 .= $_var_18 . "\n";
- }
- if ($_var_18 == "-----END CERTIFICATE-----") {
- $_var_16 = false;
- }
- }
- file_put_contents($_var_13, $_var_17);
- }
- return $_var_13;
- }
- function getPfx($_var_19, $_var_20 = '123456', $_var_21 = '123456')
- {
- $_var_22 = $this->create($_var_19, $_var_20, $_var_21);
- $_var_23 = $this->certDir . $_var_19 . ".pfx";
- if (!is_file($_var_23)) {
- $_var_24 = "keytool -noprompt -importkeystore -srckeystore " . $_var_22 . " -srcstoretype jks -srcstorepass " . $_var_20 . " -destkeystore " . $_var_23 . " -deststoretype pkcs12 -deststorepass " . $_var_20 . " -destkeypass " . $_var_21;
- exec($_var_24, $_var_25);
- $this->debug && @file_put_contents("keystore-getPfx.log", $_var_24 . "\n\n\n" . $_var_25);
- }
- return $_var_23;
- }
- function getKey($_var_26, $_var_27 = '123456', $_var_28 = '123456')
- {
- $_var_29 = $this->getPfx($_var_26, $_var_27, $_var_28);
- $_var_30 = $this->certDir . $_var_26 . ".key";
- if (!is_file($_var_30)) {
- $_var_31 = "openssl pkcs12 -in " . $_var_29 . " -nodes -out " . $_var_30 . " -passin pass:" . $_var_27 . " -passout pass:" . $_var_27;
- exec($_var_31, $_var_32);
- $this->debug && @file_put_contents("keystore-getKey.log", $_var_31 . "\n\n\n" . $_var_32);
- }
- return $_var_30;
- }
- function getPk8($_var_33, $_var_34 = '123456', $_var_35 = '123456')
- {
- $_var_36 = $this->getKey($_var_33, $_var_34, $_var_35);
- $_var_37 = $this->certDir . $_var_33 . ".pk8";
- if (!is_file($_var_37)) {
- $_var_38 = "openssl pkcs8 -topk8 -outform DER -in " . $_var_36 . " -inform PEM -out " . $_var_37 . " -nocrypt";
- exec($_var_38, $_var_39);
- $this->debug && @file_put_contents("keystore-getPk8.log", $_var_38 . "\n\n\n" . $_var_39);
- }
- return $_var_37;
- }
- }
|