<?
 
include("gnupgp.class.php");
 
 
$gpg = new gnugpg;
 
$gpg->userName = $userName;
 
$gpg->userEmail = $userEmail;
 
$gpg->recipientName = $recipientName;
 
$gpg->recipientEmail = $recipientEmail;
 
$gpg->message = $message;
 
 
function Tab_List($key_Array){
 
    echo "<table border=1>";
 
    echo "<tr><th>Type</th><th>Trust</th><th>Length</th><th>Algor.</th>";
 
    echo "<th>KeyID</th><th>Creation</th><th>Expiration</th><th>Local ID</th>";
 
    echo "<th>Ownertrust</th><th>User ID</th><th>???</th><th>???</th></tr>";
 
    for($i=2; $i < count($key_Array); $i++){
 
        $tmp = explode(":",$key_Array[$i]);
 
        echo "<tr>";
 
        echo "<td>".$tmp[0]."</td>";            //type
 
        echo "<td>".$tmp[1]."</td>";            //trust
 
        echo "<td>".$tmp[2]."</td>";            //length
 
        echo "<td>".$tmp[3]."</td>";            //algorithm
 
        echo "<td>".$tmp[4]."</td>";            //KeyID
 
        echo "<td>".$tmp[5]."</td>";            //Creation date
 
        echo "<td>".$tmp[6]."</td>";            //Expiration date
 
        echo "<td>".$tmp[7]."</td>";            //Local ID
 
        echo "<td>".$tmp[8]."</td>";            //Ownertrust
 
        echo "<td>".htmlspecialchars($tmp[9])."</td>";    //User ID
 
        echo "<td>".$tmp[10]."</td>";            // ???
 
        echo "<td>".$tmp[11]."</td>";            // ???
 
        echo "</tr>";
 
        if($tmp[0] == "sub"){
 
            echo "<tr><td colspan=\"12\"> </td></tr>";
 
        }
 
    }
 
    echo "</table>";
 
    echo "<br><br>";
 
    echo "<font size=-1>1. Field:  Type of record<br>
 
        <UL>
 
                <LI>pub = public key
 
                <LI>sub = subkey (secondary key)
 
                <LI>sec = secret key
 
                <LI>ssb = secret subkey (secondary key)
 
                <LI>uid = user id (only field 10 is used)
 
                <LI>fpr = fingerprint: (fingerprint is in field 10)
 
                <LI>pkd = public key data (special field format, see below)
 
        </UL>
 
        </font><br>";
 
    echo "<font size=-1>2. Field:  A letter describing the calculated trust. This is a single
 
        letter, but be prepared that additional information may follow
 
        in some future versions. (not used for secret keys)<br>
 
            <UL>
 
            <LI>o = Unknown (this key is new to the system)
 
            <LI>d = The key has been disabled
 
            <LI>r = The key has been revoked
 
            <LI>e = The key has expired
 
            <LI>q = Undefined (no value assigned)
 
            <LI>n = Don't trust this key at all
 
            <LI>m = There is marginal trust in this key
 
            <LI>f = The key is full trusted.
 
            <LI>u = The key is ultimately trusted; this is only used for keys for which the secret key is also available.
 
        </UL>
 
           </font><br>";
 
    echo "<font size=-1>3. Field:  length of key in bits.</font><br><br>";
 
    echo "<font size=-1>4. Field:  Algorithm:<br>
 
        <UL>
 
            <LI>1 = RSA
 
            <LI>16 = ElGamal (encrypt only)
 
                   <LI>17 = DSA (sometimes called DH, sign only)
 
                   <LI>20 = ElGamal (sign and encrypt)
 
        </UL>
 
        </font><br>";
 
    echo "<font size=-1>5. Field:  KeyID.</font><br><br>";
 
    echo "<font size=-1>6. Field:  Creation Date (in UTC).</font><br><br>";
 
    echo "<font size=-1>7. Field:  Key expiration date or empty if none.</font><br><br>";
 
    echo "<font size=-1>8. Field:  Local ID: record number of the dir record in the trustdb.
 
        This value is only valid as long as the trustdb is not
 
        deleted. You can use \"#<local-id> as the user id when
 
        specifying a key. This is needed because keyids may not be
 
        unique - a program may use this number to access keys later.</font><br><br>";
 
    echo "<font size=-1> 9. Field:  Ownertrust (primary public keys only)
 
        This is a single letter, but be prepared that additional
 
        information may follow in some future versions.</font><br><br>";
 
    echo "<font size=-1>10. Field:  User-ID.  The value is quoted like a C string to avoid
 
        control characters (the colon is quoted \"\x3a\").</font><br><br>";
 
    echo "<font size=-1>11. Field: ????.</font><br><br>";
 
    echo "<font size=-1>12. Field: ????.</font><br><br>";
 
}
 
 
switch ($action){
 
    case "gen_key":
 
        $result = $gpg->gen_key($userName, $comment, $userEmail, $passphrase);
 
        if(!$result){
 
            echo $gpg->error;
 
            exit();
 
        } else {
 
            echo "<h3>The key was generated sucessful.</h3>";
 
        }
 
        break;
 
    case "list_key":
 
        $result = $gpg->list_keys();
 
        if(!$result){
 
            echo $gpg->error;
 
            exit();
 
        } else {
 
            echo "<h3>This is the keys on the <font color=red>".$gpg->userName."</font>'s keyring</h3><br>";
 
            Tab_List($gpg->keyArray);
 
        }
 
        break;
 
    case "export_key":
 
        $result = $gpg->export_key();
 
        if(!$result){
 
            echo $gpg->error;
 
            exit();
 
        } else {
 
            echo "<h3>This is the <font color=red>".$gpg->userEmail."</font>'s Public Key</h3><br>";
 
            echo "<form><TEXTAREA rows=\"30\" cols=\"80\">".$gpg->public_key."</TEXTAREA>";
 
        }
 
        break;
 
    case "import_key":
 
        $result = $gpg->import_key($key);
 
        if(!$result){
 
            echo $gpg->error;
 
            exit();
 
        } else {
 
            echo "<h3>The keys was imported successful.</h3><br>";
 
                    $result = $gpg->list_keys();
 
            if(!$result){
 
                echo $gpg->error;
 
                exit();
 
            } else {
 
                echo "<h3>This is the keys on the <font color=red>".$gpg->userEmail."</font>'s keyring</h3><br>";
 
                Tab_List($gpg->keyArray);
 
            }
 
        }
 
        break;
 
    case "remove_key":
 
        if(!empty($keyID)){
 
            $key = $keyID;
 
        } elseif (!empty($emailID)){
 
                $key = $emailID;
 
            } else {
 
                $key = $nameID;
 
                }
 
 
        $result = $gpg->remove_key($key);
 
        if(!$result){
 
            echo $gpg->error;
 
            exit();
 
        } else {
 
            echo "<h3>The key was successful removed.</h3><br>";
 
            $result = $gpg->list_keys();
 
            if(!$result){
 
                echo $gpg->error;
 
                exit();
 
            } else {
 
                echo "<h3>This is the keys on the <font color=red>".$gpg->userEmail."</font>'s keyring</h3><br>";
 
                Tab_List($gpg->keyArray);
 
            }
 
        }
 
    case "encrypt_Msg":
 
        if(empty($userEmail)){
 
            echo "The \"From User:\" can't be empty!";
 
            exit();
 
        }
 
        if(empty($recipientEmail)){
 
            echo "The \"To Email:\" can't be empty!";
 
            exit();
 
        }
 
        $result = $gpg->encrypt_message();
 
        if (!$result) {
 
            echo $gpg->error;
 
            exit();
 
        } else {
 
            echo "<h3>The message was successful encrypted!</h3><br>";
 
            echo "<form><TEXTAREA rows=\"20\" cols=\"80\">".$gpg->encrypted_message."</TEXTAREA></form>";
 
        }
 
        break;
 
    case "decrypt_Msg":
 
        if(empty($userEmail)){
 
            echo "The \"Name\" can't be empty!";
 
            exit();
 
        }
 
        if(empty($passphrase)){
 
            echo "The \"Passphrase\" can't be empty!";
 
            exit();
 
        }
 
        if(empty($message)){
 
            echo "The \"Message\" can't be empty!";
 
            exit();
 
        }
 
        $result = $gpg->decrypt_message($message, $passphrase);
 
        if (!$result) {
 
            echo $gpg->error;
 
            exit();
 
        } else {
 
            echo "<h3>The message was successful decrypted!</h3><br>";
 
            echo "<form><TEXTAREA rows=\"20\" cols=\"80\">".$gpg->decrypted_message."</TEXTAREA></form>";
 
        }
 
        break;
 
 
 
 
 
 
 
 
} // end switch $action
 
 
?>
 
 
 |