Subversion Repositories public

Compare Revisions

Ignore whitespace Rev 3 → Rev 4

/pm/trunk/crypt.inc
0,0 → 1,100
<?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>";
}
}
 
?>