Subversion Repositories public

Rev

Blame | Last modification | View Log | RSS feed

<?php
function CreateCryptKey() {
        // Angabe der Daten für den distinguished name, der in dem Zertifikat benutzt
        // wird. Sie müssen die Werte dieser Schlüssel so anpassen, dass diese ihrem
        // Namen und Firma entsprechen, oder um präziser zu sein, den Namen und die
        // Firma der Person/Seite angeben, für die Sie das Zertifikat erzeugen.
        // Für SSL Zertifikate entspricht der commonName gewöhnlich dem Domainnamen,
        // für den das Zertifikat benutzt werden soll, aber bei S/MIME Zertifikaten
        // entspricht der commonName dem Namen der Person, die das Zertifikat nutzen
        // möchte.
        $dn = array(
           "countryName" => "AT",
           "stateOrProvinceName" => "Austria",
           "localityName" => "Vienna",
           "organizationName" => "TheosSoft",
           "organizationalUnitName" => "software engeneering",
           "commonName" => "theossoft.net",
           "emailAddress" => "office@theossoft.net"
        );

        // Erzeugen eines neuen privaten (und öffentlichen) Schlüsselpaars
        $privkey = openssl_pkey_new();

        // Erzeugen einer Zertifikatssignierungsanfrage
        $csr = openssl_csr_new($dn, $privkey);

        // Erzeugen eines selbstsignierten Zertifikts, das fuer die Dauer von 365 Tagen
        // gueltig ist.
        $sscert = openssl_csr_sign($csr, null, $privkey, 365);

        // Speichern des Zertifikats
        openssl_csr_export_to_file($csr, "setup/pmkey.csr");
        openssl_x509_export_to_file($sscert, "setup/pmkey.xpem");
        openssl_pkey_export_to_file($privkey, "setup/pmkey.pem", "jDz7jJ1l2s99hR4Qa");

        // Anzeigen der moeglichen aufgetretenen Fehler
        while (($e = openssl_error_string()) != false) {
           echo $e . "\n";
        }
}

function encrypt($str) {
/*      $f = realpath("setup/pmkey.xpem");
        $key = openssl_pkey_get_public("file://" . $f);

        if (!openssl_public_encrypt($str, $bcstr, $key)) {
           echo "Error: Encrypt: Fehler beim Verschl&uuml;sseln eines Strings!<p>$str</p><br>\n";
        }

        openssl_free_key($key);
        $cs = unpack("h*", $bcstr);
        $cstr = implode(",", $cs);
        // Anzeigen der moeglichen aufgetretenen Fehler
        while (($e = openssl_error_string()) != false) {
           echo "Encrypt: " . $e . "<br>\n";
        }
*/
        $cstr = md5("jDz7jJ1l2s99hR4Qa") . $str;
        return $cstr;
}

function decrypt($cstr) {
        if (strlen($cstr) < 10)
           return $cstr;

/*      $f = realpath("setup/pmkey.pem");
        $key = openssl_pkey_get_private("file://" . $f, "jDz7jJ1l2s99hR4Qa");
        $bcstr = pack("h*", $cstr);

        if (!openssl_private_decrypt($bcstr, $str, $key, OPENSSL_PKCS1_PADDING)) {
           echo "Error: Decrypt: Fehler beim Entschl&uuml;sseln eines Strings!<p>$cstr</p><br>\n";
        }

        openssl_free_key($key);
        // Anzeigen der moeglichen aufgetretenen Fehler
        while (($e = openssl_error_string()) != false) {
           echo "Decrypt: " . $e . "<br>\n";
        }
*/
        $str = substr($cstr, 32);
        return $str;
}

function WarnHacker($anz) {
global $unum;
global $rstufe;

   echo "<p>Sie haben bereits (mehrfach) versucht dieses Programm\n";
   echo "illegal zu manipulieren!<br>$unum $rstufe<br>\n";
   echo "Der Administrator wurde per E-Mail dar&uuml;ber informiert\n";

   if ($anz >= 3) {
      echo "und ihr Zugang <b>gesperrt</b>! Um wieder freigeschalten\n";
      echo "zu werden, wenden sie sich bitte an ihren Administrator!</p>";
   } else {
      echo "und ihr Zugang wird bei weiteren Versuchen gesperrt!</p>";
   }
}

?>