PHP Classes

File: process.php

Recommend this page to a friend!
  Classes of Rodrigo Z. Armond   GNU pgp   process.php   Download  
File: process.php
Role: Example script
Content type: text/plain
Description: This is the file to process the examples forms
Class: GNU pgp
Manipulate messages and encryption keys with PGP
Author: By
Last change:
Date: 22 years ago
Size: 6,716 bytes
 

Contents

Class file image Download
<?
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\">&nbsp;</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

?>