brengla.com

Source Code:
DeleteKeys.php

<!-- DeleteKeys.php -->
<!-- This Page Is Ready ..................  -->

<?php

    
/*

        <one line to give the program's name and a brief idea of what it does.>
        Copyright (C) <year>  <name of author>

        This program is free software: you can redistribute it and/or modify
        it under the terms of the GNU Affero General Public License as
        published by the Free Software Foundation, either version 3 of the
        License, or (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU Affero General Public License for more details.

        You should have received a copy of the GNU Affero General Public License
        along with this program. If not, see <http://www.gnu.org/licenses/>.

    */

?>

<!DOCTYPE html>
<html>
<meta charset=utf-8>
<head>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<div align="center" id="headerCODE">
    <a href="code/CodeOfDeleteKeys.php"></><font color="white"><b>(read) code of this page</b></font></></a>
</div>    

<div align="center" id="headerUNO">
    <a href="index.php"><h1>brengla.com</h1></a>    
</div>

<div align="center" id="header1">
    <a href="ReadMessage.php"><h3>(go) read message</h3></a>    
</div>

<div align="center" id="header2">
    <a href="WriteMessage.php"><h3>(go) write message</h3></a>    
</div>

<div align="center">

    <h5>Do note, that when you delete a keypair,</br> 
    all messages related to it will also be deleted!</h5>

    <form action="DeleteKeysContinue.php" method="POST">
    <!--    <h3>Which Key Do You Wish to Delete?</h3> -->
        <textarea type="text" cols="30" rows="5" name="NameOfPubKey"
            placeholder="Please give the name of the key you wish to delete."></textarea></p>
        <input type="submit" value="Search Key" style="height:25px; width:150px"></p>
    </form>

</div>

</br>

<div align="center" id="footer3">
    <h3>(@) delete keys</h3></a>    
</div>

<div align="center" id="footer2">
    <a href="DeleteMessage.php#center"><h3>(go) delete message</h3></a>    
</div>

<div align="center" id="footer1">
    <a href="ProduceEncryptionKeys.php#center"><h3>(go) produce encryption keys</h3></a>    
</div>

<div align="center" id="footerUNO">
    </br>
        copyright, website designed by .......
    </br>
        </br>    
</div>

</body>
</html>

Source Code:
DeleteMessageDelete.php

<!-- WriteMessageWrite.php -->
<!-- This Page Is Ready ..................  -->

<?php

    
/*

        <one line to give the program's name and a brief idea of what it does.>
        Copyright (C) <year>  <name of author>

        This program is free software: you can redistribute it and/or modify
        it under the terms of the GNU Affero General Public License as
        published by the Free Software Foundation, either version 3 of the
        License, or (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU Affero General Public License for more details.

        You should have received a copy of the GNU Affero General Public License
        along with this program. If not, see <http://www.gnu.org/licenses/>.

    */

?>

<!DOCTYPE html>
<html>
<meta charset=utf-8>
<head>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<div align="center" id="headerCODE">
    <a href="code/CodeOfWriteMessage.php#write"></><font color="white"><b>(read) code of this page</b></font></></a>
</div>

<div align="center" id="headerUNO">
    <a href="index.php"><h1>brengla.com</h1></a>    
</div>

<div align="center" id="header1">
    <a href="ReadMessage.php"><h3>(go) read message</h3></a>    
</div>

<div align="center" id="header2">
    <a href="WriteMessage.php"><h3>(go back) write message</h3></a>    
</div>
<div align="center">
</br>

<!--
This page has two HTML form: 
    The first one: to receive the message and then encryp it with the receiving users publickey. 

    The second form: then receives the encrypted form, and then send its forwards to a new page after submission  

    The logic was, that the user needed a possibility to check for the lenght of his message
    and I did not want to desing so, that message in uncrypted form would be sent all over places
-->
<?php

ini_set 
("display_errors"1);
error_reporting (E_ALL E_STRICT);

# Name of public key, i.e., user name
if (isset($_POST["NameOfPubKey"])) {
    
$NameOfPubKey     $_POST["NameOfPubKey"];
} else {
    
header("Location: WriteMessage.php");
    
# http://stackoverflow.com/questions/1795025/what-are-the-differences-in-die-and-exit-in-php
    
exit;
}

# do public key exists or not 
# note this file check is done in pre-ecrypt state
if (!file_exists("/var/www/html/pubkey/" $NameOfPubKey)) {
    echo 
"The requested key: <h3>>> $NameOfPubKey <<</h3> do not exist</br></br>";

    
?></br><form>
        <button formaction="WriteMessage.php" style="height:25px; width:150px">Go Back</button>
    </form></p><?php

    
# variable is set to false, this will later prevent the process of some HTML forms
    
$WeFoundPubKeyLetsProceedWithEncryption false;

# if public key do exists do the following         
}  else {    // super else begins
    
echo "The requested key: <h3>>> $NameOfPubKey <<</h3> is valid</br></br>";

    
# variable is set to true, this will later prevent the process of some HTML forms
    
$WeFoundPubKeyLetsProceedWithEncryption true;
}

    
# ###################### Set Variables ########################### #
    
    # A variable for the post-encryption state is set to FALSE
    #$StateIsPostEncryption = false;

    # variable $mess is users message in pre-encryption stage
    
if (isset($_POST["mess"])) {
        
$mess $_POST["mess"];
    }     else {
        
$mess false;
    }

    
# variable $encrypt is users message in post-encryption stage
    
if (isset($_POST["encrypt"])) {
        
$encrypt $_POST["encrypt"];
    }    else {
        
$encrypt false;
    }

    
# variable $LenOfMess is lengt of message, 
    # therefore $LenOfMess is activated only if message (i.e, $mess) is activated
    
if ( isset($_POST["LenOfMess"]) &&  $mess == true ) {
        
# http://php.net/manual/en/function.strlen.php
        
$LenOfMess strlen($mess) . " byte(s)";
    }     else {
            
# the default for this HTML button value is... (the following)  
            
$LenOfMess "Mess. Length";
    }


    
# variable $encrypt is users message in post-encryption stage
    
if ($encrypt == true && $mess == true) {

        
# we search (again) if the public key exists
        
if (file_exists("/var/www/html/pubkey/" $NameOfPubKey)) {
            
$ValueOfPubKey file_get_contents("/var/www/html/pubkey/" $NameOfPubKey);
            
            
#openssl_public_encrypt(input, output, pubkey);
            
openssl_public_encrypt($mess$EncMess$ValueOfPubKey);
            
            
# is message in encrypted form
            #$EncMess; 
            
            # affirming state, which will be used for HTML form creation
            
$StateIsPostEncryption true;

            
# variable is set to true
            #$WeFoundPubKeyLetsProceedWithEncryption = true;

        
} else {
            
# to have a second file_exists, is sort of silly
            
echo "We did not find a publickey with the name of >> " $NameOfPubKey " << on our servers</br>";
        }     
    } 


    
# Again, if not set (i.e., !isset(x) ), then it dose not make sense to run the following HTML forms
    
if ( $WeFoundPubKeyLetsProceedWithEncryption == true ) { 


        
###############################################################
        # HTML FORM in the pre-encryption state 
#         if ( $StateIsPostEncryption != true ) {  
         
if ( !isset($StateIsPostEncryption) ) { ?> 
            </br>
            <form action="" method="POST">
                <h2>Write Your Message Below:</h2></p>
                
                <textarea type="text" cols="30" rows="10" name="mess" 
                    placeholder="The maximum message length for a 2048 bit RSA key, is 256 – 11 = 245 bytes.&#10;&#10;Please note, 1 byte is not necessary 1 character."
                        maxlength="245"><?php

                            
# if $mess has no value, textarea is empty
                            
if ($mess == false) { 
                                
?></textarea></p><?php 
                            


                            
# if user has calculated message lenght, the message will reprinted here
                            
if ($mess == true) { 
                                echo 
$mess?></textarea></p><?php 
                            
}            ?>

                <!-- NameOfPubKey is transfered as hidden value to the post-encryption html form -->            
                <input type="hidden" name="NameOfPubKey" value="<?php echo $NameOfPubKey?>">

                <input type="submit" name="encrypt" value="Encr. Mess." style="height:25px; width:150px"/></p>
                
                <!-- note, that the value of $LenOfMess is expressed in the button itself-->
                <input type="submit" name="LenOfMess" value="<?php echo $LenOfMess?>" style="height:25px; width:150px"></p>
            </form>


        <?php     }  // end for.. if ( $StateIsPostEncryption != true ) ?>

        <?php
        
###############################################################
        # HTML FORM (and other stuff) in  POST-encryption state 
        
if ( isset($StateIsPostEncryption) ) {  

            function 
RandLatinWord()
            {
                
# aim of this function is to produce a random latin word, 
                # the longest word is 16character long (theres only one),
                # and the shortest is 2char long (there are several)

                # some +3.200 latin words in alphabetical order
                
$LatinString     "abbas*abbatis*abbatia*abduco*abeo*abscido*absconditus*absens*absentis*absorbeo*absque*abstergo*absum*abundans*abundantia*abutor*ac*accendo*acceptus*accipio*accommodo*accusator*accuso*acer*acerbitas*acerbus*acervus*acidus*acies*acquiro*acsi*adamo*adaugeo*addo*adduco*ademptio*adeo*adeptio*adepto*adfectus*affectus*adficio*adfero*affero*adflicto*affligo*adhaero*adhuc*adicio*adimpleo*adinventitias*adipiscor*adiuvo*administratio*admiratio*admiror*admitto*admoneo*admonitio*admoveo*adnuo*adopto*adsidue*assidue*adstringo*adsuesco*assuesco*adsum*adulatio*adulescens*adulescentia*aduro*adustum*advenio*adversus*adverto*advoco*aedificium*edificium*aeger*eger*aegre*egre*aegresco*egresco*aegretudo*egretudo*aegrotatio*egrotatio*aegrus*aeneus*eneus*aequitas*equitas*aequus*equus*aer*aeris*aestas*estas*aestivus*estivus*aestus*estus*aetas*aeternus*eternus*Affligeniensis*ager*agri*aggero*aggredior*agnitio*agnosco*ago*egi*actum*ait*aiunt*Aldenard*alienus*alii*alioqui*alioquin*aliqua*aliquando*aliquanta*aliquanto*aliquantum*aliquantus*aliqui*aliquid*aliquis*aliquo*aliquot*aliquotiens*alius*alia*aliud*allatus*alo*alui*altum*Alos*alter*altera*alterum*altus*alveus*amaritudo*Ambianis*ambitus*ambulo*amicitia*amicus*amissio*amissus*amita*amitto*amo*amor*amoveo*amplexus*amplitudo*amplus*an*ancilla*Andegavense*angelus*angulus*angustus*animadverto*animi*animus*annus*anser*ante*antea*antepono*antiquus*aperte*apostolus*apparatus*appareo*appono*appositus*approbo*appropinquo*apto*aptus*apud*aqua*ara*arbitro*arbitror*arbor*arbustum*arbustus*arca*archa*arceo*arcesso*accerso*arcus*argentum*argumentum*arguo*arma*armarium*armo*aro*ars*artis*articulus*artificiose*artificiosus*arto*arx*arcis*ascisco*ascit*asperitas*aspicio*asporto*assentator*astrum*Asvesniis*at*atavus*ater*atra*atrum*atqui*Atrebatum*atrocitas*atrox*attero*attollo*attonbitus*auctor*auctoritas*audacia*audacter*audaciter*audax*audeo*ausus*audio*auditor*aufero*aureus*auris*Aurissiodorenses*aurum*aut*autem*autus*Auxatia*auxilium*avaritia*avarus*aveho*Avesniis*avoco*baiulus*balbus*barba*bardus*basium*beatus*bellicus*bellum*bellus*bene*benevolentia*benigne*Berlinmonte*bestia*bibo*bis*blandior*blanditia*Blesense*Boloniense*bonus*melior*optimus*bos*bovis*Brabatensium*Brachants*brevis*brevitas*breviter*Brocherota*cado*caecus*caelestis*caelum*calamitas*calamus*calcar*calco*calculus*callide*callidus*Cameracum*campana*candidus*canis*canonicus*canonus*canto*capillus*capio*capitulus*capto*caput*capitis*carcer*careo*caries*cariosus*caritas*carmen*Carnotense*Carnutum*Carnotum*carpo*carus*casso*caste*Castellandum*casus*catena*caterva*catervatim*Cathalaunenses*cattus*cauda*causa*caute*cautim*cautela*caveo*cavi*cautum*cavus*cedo*cessi*cessum*celebrer*celebrus*celer*celeritas*celeriter*celo*cena*cenaculum*ceno*censura*centum*cerno*cernuus*certe*certo*certus*cervus*ceterus*charisma*carisma*chirographum*cibo*cicuta*cilicium*cimentarius*ciminosus*cinis*cineris*circumvenio*cito*civilis*civis*civitas*clam*clamo*clamor*claro*clarus*claudo*clausus*claudus*claustrum*clementia*clibanus*coadunatio*coaegresco*coepi*incipio*coerceo*cogito*cognatus*cognomen*cognosco*cogo*coegi*coactum*cohaero*cohero*cohesi*cohesum*cohors*cohortor*colligo*colloco*collum*colo*colui*cultum*coloratus*coloro*coma*combibo*comburo*comedo*comedi*comesum*comes*comitis*cometes*comis*comitatus*comiter*comitto*commemoro*commeo*commessatio*onis*comminor*comminuo*comminus*commisceo*commissum*commodo*commodum*commoneo*commoveo*communis*comparo*compater*compatior*compello*comperio*comperte*compes*compedis*competo*complectus*compleo*compono*compositio*compositus*comprehendo*comprobo*comptus*conatus*concedo*concepta*concero*concido*concilium*concisus*concito*conculco*concupiscentia*concupisco*concutio*Condato*condico*conduco*confero*confestim*confido*confiteor*confessus*conforto*confugo*congregatio*congrego*congruus*conicio*coniecto*conitor*coniuratus*coniuro*conor*conqueror*conscendo*conscientia*conscius*conservo*considero*consilio*consilium*consisto*consitor*conspergo*conspicio*constans*constanter*constituo*consto*constringo*constrixi*constrictum*construo*construxi*constructum*constupator*constupro*consuasor*consuefacio*consuesco*consuetudo*consulatio*consulo*consulto*consultum*consummatio*consummo*consumo*consuo*consui*consutum*consurgo*contabesco*contactus*contages*contagio*contagium*contamino*contego*contemno*contemplatio*contemplor*contemptim*contemptio*contemptus*contendo*contente*contentus*contigo*contineo*contigi*contectum*contingo*continuo*continuus*contra*contradictio*contrado*contraho*contristo*conturbo*conventus*conversatio*converto*convoco*copia*copiae*copie*copiose*Corbeiam*cornu*corona*corpus*corporis*correptius*corrigo*corripio*corrumpo*corruo*Corturiacum*coruscus*cotidie*Courtacum*crapula*cras*crastinus*creator*creatura*creber*crebro*credo*creo*creptio*crepusculum*cresco*creta*cribro*cribrum*crinis*crinitus*cruciamentum*crucio*crudelis*cruentus*crur*cruris*crustulum*crux*crucis*cubicularis*cubiculum*cubitum*ire*cubo*cui*give*province*cuius*cuiusmodi*culpa*culpo*cultellus*cultura*cum*cunabula*cunae*cunctatio*cunctator*cunctus*cupiditas*cupido*cupio*cuppedia*cupressus*cur*cura*curatio*curator*curiosus*curis*quris*curo*curriculum*currus*cursim*cursito*curso*cursor*cursus*curto*Curtracus*curtus*curvo*curvus*custodia*custodiae*custos*damnatio*damno*dapifer*de*debeo*debilito*decens*decenter*decerno*decerto*decet*decimus*decipio*decor*decoro*decorus*decretum*decumbo*dedecor*dedecus*dedico*deduco*defaeco*defendo*defero*defessus*defetiscor*deficio*defigo*defleo*defluo*defungo*degenero*degero*degusto*deinde*delectatio*delecto*delego*deleo*delibero*delicate*deliciae*deludo*demens*demergo*demitto*demo*demonstro*demoror*demulceo*demum*denego*denique*dens*denuncio*denuntio*denuo*deorsum*depereo*depono*depopulo*depopulor*deporto*depraedor*depredor*deprecator*deprecor*deprehensio*deprimo*depressus*depromo*depulso*deputo*derelinquo*derideo*deripio*desidero*desidiosus*desino*desiit*desipio*desolo*desparatus*despero*despiciens*despicio*desposco*destinatus*destituo*detego*detectum*determino*detineo*detrimentum*deus*devenio*devito*devoco*devotio*devoveo*dexter*dextera*diabolus*dico*dictata*dictator*dictito*dicto*didicerat*didico*dido*dididi*didtum*dies*diei*differo*differtus*difficilis*difficultas*digestor*dignitas*dignosco*dignus*digredior*digredi*digressus*digressio*dilabor*dilato*dilgenter*diligens*diligentia*diligo*diluculo*diluo*dimidium*dimitto*directus*diripio*dirunitas*diruo*discedo*discidium*discipulus*disco*discrepo*dispono*disputatio*disputo*dissero*dissimilis*dissimulo*dissolutus*distinguo*distribuo*distringo*distulo*dito*diu*diutinus*diutius*diuturnus*diversus*dives*divinitus*divinus*divitiae*divitie*do*dare*dedi*datum*doceo*docui*doctum*doctor*doctrina*doctus*dolens*doleo*dolor*dolose*dolosus*dolus*domesticus*domina*dominatus*dominus*domino*domito*domus*donec*donum*dormio*dubito*dubium*duco*dudum*dulcedo*dulcidine*dulcis*dulcitudo*dulcitudinis*dummodo*dumtaxat*duo*durus*Dusiol*petram*dux*ducis*eatenus*ebullio*ecclesia*econtra*ecquando*editio*edo*edi*essum*edoceo*educo*effectus*effero*extuli*elatum*effervo*efficio*effringo*effrego*effugio*effundo*egenus*egeo*ego*egredior*eicio*eiectum*elatus*electus*elementum*elemosina*eligo*eloquens*eloquentia*eluo*eluvies*eluvio*emanio*emendo*emerio*emineo*eminor*eminus*emiror*emo*emi*emptum*emoveo*emptio*enim*eo*itum*episcopalis*epulo*epulor*eques*equitis*equidem*equitatus*erepo*erga*ergo*eripio*erogo*erro*error*erubesco*erudio*eruo*esurio*et*etenim*etiam*etsi*evenio*eventus*everto*evito*evoco*ex*exaequo*exequo*excedo*excellentia*excessum*excipio*excito*exclamo*excludo*excolo*excrucio*excusatio*excuso*exemplar*exemplum*exerceo*exercitus*exertus*exesto*exheredo*exheres*exhibeo*exibeo*exhilaro*exhorresco*exigo*exilis*eximietate*eximius*eximo*exinde*exitiabilis*exitialis*exitosus*exitium*exitus*exordium*exorior*exoro*exorsus*expedio*expello*expuli*expulsum*experior*experiri*expertus*expers*expetens*expeto*expilatio*expiscor*expleo*explevi*expletum*expletio*expletus*explicatus*explico*expono*exposui*expositum*expositus*expostulo*expugno*exquisitus*exsequor*exequor*exsertus*exsilium*exspecto*exstinguo*exstingui*exstinctum*exsto*externus*extollo*extorqueo*extra*extremus*exturbo*exulto*exuro*exussum*exustio*fabula*facile*facilis*facillimus*facio*factum*facultas*facundia*facunditas*faenum*fenum*falsus*fama*familia*familiaris*famulatus*famulus*fas*est*fateor*fatigo*fatum*fautor*faveo*feculentia*fefello*feliciter*felix*felicis*femina*fere*feretrum*feritas*ferme*fero*tuli*latum*ferrum*ferus*festinatio*festino*festinus*feteo*ficus*fidelis*fidens*fides*fiducia*filia*fines*finium*finis*finitimus*finitumus*fio*fieri*factus*firmo*firmus*flamma*flatus*flax*falcis*fleo*fluctus*flumen*fluo*fodio*fore*forem*forensis*forma*formica*formo*fors*fortis*forsit*forsan*forsitan*fortasse*forte*fortiter*fortitudo*fortuna*fortunate*fortunatus*forum*foveo*fovi*fotum*frango*fracta*frater*frendo*frequentatio*frequentia*frequento*frigus*frons*fructuarius*fructus*frugalitas*frumentum*fruor*frustra*esse*frux*frugi*fuga*fugitivus*fugo*fulcio*fulgeo*fulsi*fultus*fundo*fungor*fungi*functus*funis*furibundus*furor*furs*furtificus*furtim*furtum*fusus*galea*Gandavum*gaudium*Gemblacensis*gemo*gens*genus*gero*gesto*gestum*gigno*genuit*glacialis*gladius*gloria*glorior*grando*grassor*gratia*agere*gratulor*gratus*gravatus*gravis*gravitas*graviter*gravo*gregatim*gusto*habeo*habui*habitum*habitus*hac*hactenus*hae*he*haec*hec*hanc*harum*Hasnonium*haud*Helcim*Helnonensis*Heniis*Harniis*hereditas*hesito*haesito*hi*hic*hoc*hilaris*hinc*his*hesitate*fetter*hodie*hodiernus*Hoienses*homo*hominis*honor*honorabilis*hora*hordeum*ordeum*horrendus*hortor*hortus*ortus*horum*hos*hospes*hostes*hostium*hostis*huic*huius*humanitas*humanus*humilis*humo*hunc*Hunnam*hypocrita*iacio*iaculator*iaculum*iam*ianua*ibi*idcirco*idem*eadem*identidem*ideo*idoneus*igitur*ignarus*ignavus*ignis*ignoro*ignosco*ignotus*ilico*illa*illacrimo*illae*ille*illarum*illas*illata*illaturos*illud*illi*illiam*illic*illis*illius*illo*illorum*illos*illuc*fetters*illudo*illusi*illusum*imago*imber*ymber*imbrium*imcomposite*imitabilis*immanitas*immerito*immineo*immo*immodicus*immortalis*immotus*immunda*immundus*impedimentum*impedio*impedito*impedo*impello*impuli*impulsum*impendeo*impendium*impendo*impensa*imperator*imperceptus*imperium*impero*impetro*impetus*impleo*importo*importunus*imprimis*improbus*improvidus*improviso*impudens*impudenter*impunitus*imputo*in*praesentia*inanis*incassum*inceptor*inceptum*incertus*incido*mentionem*incito*inclino*includo*inclutus*inclitus*incola*ae*incompositus*inconsulte*incontinencia*incorruptus*incredibilis*increpare*increpo*incubo*incurro*Inda*indagatio*inde*indebitus*indico*indigeo*indignatio*indignus*indo*indidi*indomitus*induco*indux*inductum*industria*industrius*indutiae*inedicabilis*ineptio*inexpugnabilis*infamo*infantia*infector*infectum*reddere*infectus*infecunditas*infecundus*infelicitas*infelix*infenso*infensus*inferi*inferne*infero*inferus*infervesco*infeste*infesto*infestus*inficio*infeci*infidelis*infidelitas*infideliter*infidus*infigo*infindo*infidi*infissum*infinitas*infinitio*infinitus*infirmatio*infirme*infirmitas*infirmo*infit*infitialis*infitias*infitior*inflammatio*inflammo*inflatio*inflatius*inflatus*inflecto*inflexi*inflectum*infletus*inflexio*inflexus*infligo*inflixi*inflictum*inflo*influo*influi*influxum*infodio*infodi*infossum*informatio*informis*infortunatus*infortunium*infra*inferius*infimus*below*under*time*infula*ingenium*ingens*ingero*ingratus*ingravesco*inicio*inieci*iniectum*inimicus*iniquus*initium*iniuria*iniustus*innotesco*innotui*innuo*inolesco*inops*inquis*inquit*inrideo*inritus*irritus*inruo*irruo*insania*insciens*inscribo*insensatus*insequor*inservio*insideo*insidiae*insinuo*insisto*insolita*insolitus*insons*insontis*insperatus*instanter*instar*instigo*instituo*insto*instructus*instruo*Insula*insurgo*insurgi*insurrectum*integer*intellego*intellexi*intellectum*intempestivus*intendo*intentio*intentus*inter*intercipio*intercepi*interceptum*interdico*interdum*intereo*interficio*interfeci*interfectum*interrogatio*intro*introduco*intueor*intumesco*intus*inultus*invado*invalesco*invenio*inventor*investigo*inveteratus*invetero*invictus*invideo*invidia*inviso*invisus*invito*invitus*ioco*iocor*iocus*ipse*ipsa*ipsum*ipsemet*ira*irascor*iratus*irrito*irritum*ea*id*iste*ista*istud*ita*ut*itaque*iter*itineris*itero*iterum*iubeo*iussi*iussum*iucunditas*iucundus*iudex*iudicium*iugis*iuge*iumentum*iungo*iunxi*iunctum*ius*iuris*iussu*iustus*iuvo*iuxta*jaculum*judicium*jugis*jugiter*jumentum*juvenis*juventus*labefacio*labefeci*labefactum*labefacto*labellum*labes*labis*labia*labium*labiosus*labo*labor*laboris*labores*solis*laboriose*laboro*labrum*labrusca*labruscum*lac*lactis*lacer*laceratio*lacero*lacerta*lacertosus*lacertus*lacesso*lacrima*Heliandum*lacrimabilis*lacrimo*lacrimosus*lactatio*lacteus*lacto*lactuca*lacuna*lacunar*lacus*laedo*ledo*laesio*lesio*laetabilis*letabilis*laetans*laetatio*letatio*laetifico*letifico*laetificus*letificus*laetitia*letitia*laeto*leto*laetor*letor*laeve*leve*laevus*levus*laganum*lama*lambo*lamentabilis*lamentatio*lamentor*lamia*lamnia*lammina*lamna*lapsus*laqueum*laqueus*largior*lascivio*lasesco*latus*eris*laudo*Laudunum*laus*lebes*lectica*lector*lectus*legatarius*legatus*legio*lemma*lemures*lenimentus*lenio*lenis*lenitas*lenitudo*leno*lenocinium*lenocinor*lens*lentis*lente*lentesco*lentitudo*lento*lentulus*lentus*Leodie*lepide*lepidus*lepor*lepos*lepus*Lesciense*monastery*letalis*letaliter*letanie*letifer*letum*levamen*levamentum*levatio*leviculus*levidensis*levis*levitas*leviter*levo*lex*legis*libellus*libenter*liber*libri*libera*liberum*liberalis*liberalitas*liberaliter*liberatio*libere*libero*libido*licet*ligo*lima*limen*limina*lingua*lino*linteum*liquidus*litigo*littera*litterae*loci*loco*locupleto*locus*loginquitas*longe*lateque*longus*loquor*locutus*loricatus*lubricus*lucerna*lucror*lucrosus*lucrum*luctisonus*luctus*ludio*ludius*ludus*lues*lugeo*luna*lupus*Lutosensis*lux*lucis*luxuria*macellarius*macer*macero*macies*mactabilis*macto*macula*maculo*maculosus*madesco*madide*madidus*mador*maero*maeror*meror*magis*magnopere*magnus*opere*maior*maximus*magus*maiestas*maiores*Malbodiensis*male*peius*pessime*malens*Malmundarium*malo*mallui*malus*malum*peior*pessimus*mancipo*mancepo*mandatum*mando*mane*manentia*maneo*mansuetus*manus*Marceniense*mare*maris*maritus*mater*matris*matera*mairia*materia*matertera*matrimonium*maxime*me*medicus*mediocris*meditor*meditatus*medius*mei*mel*mellis*mellitus*membrana*memini*meminisse*memor*memoratus*memoria*Menapiorum*mens*mentis*mensa*mensis*merces*mercedis*mereo*mereor*meretrix*meretricis*meridianus*mestitia*metuo*metus*meus*mica*mihi*miles*militis*milia*militaris*mille*millies*milies*minime*ministro*minor*minuo*minui*minutum*mire*miro*miror*mirus*misceo*miscui*mixtum*miser*misere*misereo*misereor*misericordia*missa*mitigo*mitis*mitto*misi*missum*modestus*modica*modicus*modio*modo*modus*Moguntienses*moleste*molestia*molestus*molior*mollio*mollis*monachus*Monasteriense*monasterium*moneo*monitio*mons*montis*monstro*monstrum*Montensem*mora*morbus*mores*morium*morior*mors*mortis*morsus*mortifera*mos*moris*moveo*moti*motum*mox*mucro*mugio*mulier*multi*multo*multum*multus*mundo*mundus*munero*munerior*munimentum*munio*munitio*munus*muneris*mus*muris*mussito*mutatio*muto*mutuo*mutuus*mutuum*nam*Namucense*narro*nascor*nasci*natus*natalis*natio*natura*navigatio*navigo*navis*quidem*ne**necdum*neque*dum*necessarius*necesse*necne*neco*nefas*nego*negotium*nemo*neo*nepos*nepotis*nequam*nequaquam*nec*nequeo*nequitia*nequities*nescio*nichilominus*nidor*niger*nihil*nimirum*nimis*too*much*overmuch*excessively*nimium*nisi*niteo*nitesco*nitor*Nivellensem*niveus*no*nobis*nocens*noceo*nolo*nolle*nolui*nomen*nominatim*nomine*tenus*nominetenus*non*nondum*nonnullus*nonnumquam*nonus*nos*nosco*noster*nostra*nostrum*nostri*notarius*novem*novitas*novo*novus*nox*noctis*nullus*numerus*numquam*nunc*nunquam*nuntio*nuntius*nuper*nusquam*nutrimens*nutrimentus*nutrio*nutus*obdormio*obduro*obicio*obieci*obiectum*obligatus*obliquo*oblittero*oblivio*obruo*obsequium*obstinatus*obtestor*obtineo*obviam*obvius*occasio*occido*occidi*occasum*occulto*occupo*occurro*occursus*ocius*oculus*odio*odium*offensio*offero*officina*officium*olim*omitto*omnigenus*omnino*omnipotens*onero*onus*opera*operor*opes*opinio*opisthotonos*oporotheca*oportet*oportunitas*oppono*opposui*oppositum*opportune*opportunitas*opportunitatus*opportunus*opprimo*oppressi*oppressum*opprobrium*oppugno*ops*optimates*opto*opus*operis*oratio*orator*orbis*terrarum*ordinatio*ordine*ordinem*ordo*orior*oriri*ornatus*orno*oro*os*oris*ostendo*ostium*otium*ovis*paciscor*pactum*pactus*paene*pene*paganus*pala*palam*palea*pallium*palma*pando*panis*par*paratus*parco*parens*parentis*pareo*paries*parietis*pario*pariter*paro*pars*partis*partim*parum*minus*parvus*minimus*passer*passim*patefacio*pateo*pater*patris*paternus*patiens*patientia*patior*patria*patrocinor*patronus*patruus*pauci*paulatim*pauper*paupertas*pax*pacis*pecco*pecto*pectus*pectoris*pecunia*pecus*pello*pepulli*pulsum*pendeo*pendo*penitus*penus*us*pepulo*per*peracto*peragro*percipio*percepi*perceptum*percontor*percunctor*perculsus*percutio*percussum*perdignus*perdo*perduco*peregrinus*pereo*perfectus*perfero*perficio*perfeci*perfectum*perfruor*perfusus*pergo*periclitatus*periclitor*periculosus*periculum*perimo*peremi*peremptum*periurium*perlustro*permitto*permissi*permissum*permoveo*perniciosus*perperam*perpetro*perpetuus*perscitus*perscribo*perseco*persequor*persequi*persecutus*perseverantia*persevero*persisto*persolvo*personam*perspicuus*persuadeo*persuasi*persuasum*perterreo*pertimesco*pertinacia*pertinaciter*pertinax*pertingo*pertorqueo*pertraho*perturbo*perturpis*peruro*perussi*perustum*pervalidus*pervenio*perverto*perverti*perversum*pervideo*pervidi*pervisum*pes*pedis*pessum*pestifer*pestis*petitus*peto*Pevela*pharetra*phasma*phasmatis*phitonicum*pia*pium*pica*picea*piger*pigra*pigrum*pignus*persons*pledges*piper*piperis*pipio*pirum*pirus*piscator*piscis*pius*placeo*be*placet*placide*placidus*placitum*placo*plaga*plagiarius*plango*planxi*plactum*platea*plaustrum*plebs*plebis*plecto*plector*plene*plenus*plerumque*plerusque*plico*plorabilis*plorator*ploratus*ploro*pluit*pluvit*pluma*plumbeus*plumbum*album*pluo*plura*plures*plurimi*plurimus*pluris*plus*plusculus*pluvia*pluvialis*pocius*potius*poema*poematis*poena*poeta*polenta*pollen*polleo*pollex*polliceor*pollicitus*pomum*pono*posui*positum*pons*pontis*poposco*populus*porro*porta*posco*positus*possessio*possum*posse*potum*post*postea*posteri*posterus*postremo*posthabeo*postpono*postquam*postulo*potens*potestas*potior*potissimum*potissimus*prae*se*ferre*pre*quam*before*praebeo*prebeo*praecedo*precedo*praecelsus*precelsus*praecepio*precepio*praeceptum*preceptum*praecido*praecipio*precipio*praecipuus*precipuus*praeclarus*preclarus*praeconor*preconor*praecox*precox*praeda*preda*praedico*predico*praeeo*preeo*praefero*prefero*praeficio*preficio*prefeci*prefectum*praegravo*pregravo*praemitto*praemium*premium*praemo*premo*praenuntio*prenuntio*praenuntius*prenuncius*praepono*prepono*praepositus*prepositus*praeproperus*preproperus*presentia*presencia*praesidium*presidium*praestans*prestans*praestantia*prestantia*praesto*presto*praesul*presul*praesum*presum*praesumo*presumo*praeter*praeterea*preterea*praetereo*pretereo*praeteritus*preteritus*praetermissio*pretermissio*praetorgredior*pretergredior*praevenio*prevenio*pravitas*preastolatio*prestolatio*precipue*precor*prehendo*pressi*pressum*prenda*pretium*prevenire*prex*precis*primitus*primo*primoris*primum*princeps*principatus*principium*prior*prius*priores*um*priscus*pristinus*priusquam*privatus*privigna*privo*pro*probitas*probo*procedo*procella*procer*procinctu*procul*procurator*prodigiosus*proditor*proelium*profecto*profero*proficio*proficiscor*proficuus*profiteor*profor*profari*profatus*profugus*profundo*frofui*profusum*profundum*profundus*progener*progenero*progenies*progenitor*progigno*progenui*progenitum*prognatus*progredior*progressio*progressus*prohibeo*prohibitio*proicio*proinde*quasi*si*prolabor*prolapsio*prolatio*prolato*prolecto*proles*proletarius*prolicio*prolixi*prolix*prolixus*proloquor*proluo*prolu*prolutum*prolusio*proluvier*promereo*promereor*promissio*prominens*promineo*promisce*promiscue*promiscus*promiscuus*promitto*promo*prompsi*promptum*promontorium*promoveo*promovi*promotum*prompte*promptu*promptus*promulgatio*promus*promutuus*pronepos*proneptos*prope*propello*propero*propinquo*propinquus*propono*propositum*proprie*proprius*propter*propugnaculum*prorsus*prosequor*prosecutus*prosper*prosperitas*prosum*profuturus*protestor*protesto*protinus*protraho*protractus*prout*provectus*proveho*provideo*provisor*provolvere*proximus*prudens*prudenter*prudentia*Pruma*publicus*puchre*pudendus*pudeo*pudor*puella*puer*puerilis*pueriliter*puga*pyga*pugna*pugnacitas*pugnaculum*pugnax*pugno*pugnus*pulchellus*pulcher*pulchra*pulchrum*pulchritudo*pulchritudinis*pulex*pullulo*pullus*pulmentum*pulmo*pulpa*pulpitum*pulso*pulsus*pulvis*pumilius*pumilio*punctum*pungo*pupugi*puniceus*punio*punitor*pupa*pupillus*pupilla*puppis*pupula*purgamentum*purgatio*purgo*purpura*purus*pusillus*putator*puteo*puter*putesco*puteus*puto*putus*pyropus*pyus*pyxidis*qua*quadraginta*quadratus*quadrigae*quadrivium*quadrum*quae*que*quaero*quero*quaesitio*quesitio*quaeso*queso*quaestio*questio*quaestuosus*questuosus*quaestus*questus*qualis*qualiscumque*qualislibet*qualitas*qualiter*quamdiu*quamobrem*ob*rem*quamquam*quamtotius*quamvis*quando*quandoquidem*quanti*quanto*quantocius*quantotius*quantum*quantus*quantuscumque*quantacumque*quantumcumque*quantuvis*quapropter*quare*quartus*quarum*quas*quasso*quatenus*quatinus*quater*quattuor*quem*quemadmodum*queo*quercetum*quercus*quereia*querella*queribundus*querimonia*queritor*quernus*queror*querulus*qui*quod*quia*quibus*quicquid*quid*quis*quies*quietis*quilibet*quin*quinquennis*quippe*quisnam*quidnam*quisquam*quisque*quisquis*quo*quodammodo*quomodo*quondam*quoniam*quoque*quorum*quos*quot*quotiens*quotienscumque*quovis*radicitus*rapio*rapui*ratum*rarus*ratio*re*vera*recedo*recipio*recepi*receptum*recito*recognosco*recolo*reconcilio*recondo*recordatio*recordor*recro*rectum*recuperatio*recupero*recuso*redarguo*reddo*redemptio*redemptor*redeo*redigo*redactum*redono*reduco*redundantia*redundo*refectorium*refero*reformo*regina*regius*regnum*rego*rexi*regula*relaxo*relego*relegi*relectum*relevo*relictus*relinquo*reliquum*relucesco*reluctor*remando*remaneo*rememdium*removeo*remuneror*renuntio*renuo*rependo*repens*repente*repere*reperio*repetitio*repeto*repleo*repletus*repo*repsi*reptum*repono*reprehendo*repugno*requiesco*requievi*requietum*requiro*res*rei*publica*resisto*respicio*respondeo*respondi*responsum*restituo*resumo*resumpsi*resumptum*retineo*retraho*retraxi*retractum*retribuo*reus*revenio*reverto*revertor*reverti*reversus*revoco*revolvo*rex*rgis*rhetor*rhetoricus*rideo*risi*risum*rigor*ritus*rogo*eum*rostrum*rota*Rotomagense*rotundus*rubor*rudimentum*rumor*ruo*rui*rutum*rursus*rus*ruris*rusticus*sabbatum*sacculus*sacrificum*sacrilegus*saepe*sepe*saepenumero*saepius*sepius*saeta*equina*saevio*sal*salis*salsus*saltem*salus*saluto*salutor*salveo*salvus*sanctifico*sanctimonia*sanctimonialis*Sanctus*Eleutherius*Egidius*sanctus*Rodoenus*sane*sanitas*sano*Santiago*sanus*sapiens*sapienter*sapientia*sarcina*satago*satio*satis*sato*satura*saturo*scaber*scabies*Scaldus*scamnum*scaphium*sciphus*sceleratus*scelero*scelestus*scelus*sceleris*schola*scientia*scilicet*scindo*scio*scivi*scitum*scisco*scribo*scripsi*scriptum*scrinium*scriptor*habere*astringo*secedo*secerno*secrevi*secretum*secundum*secundus*securus*secus*atque*secuutus*sed*sedeo*sedi*sessum*seditio*sedo*seductor*semel*semper*senectus*senex*senis*sensus*sententia*sentio*sepelio*septem*sepulchrum*seputus*sequax*sequor*sequi*secutus*serio*serius*sermo*sero*servio*servitus*servo*servus*sese*severitas*sibimet*sic*siccus*Siclinium*sicut*sidus*signum*silens*silentium*sileo*siligo*inis*silva*similis*similitudo*simplex*simul*simulatio*singularis*singuli*singultim*singultus*singulus*sino*siquidem*sitis*sive*seu*socer*socius*sodalitas*sol*soleo*solio*solitudo*solitudinis*solium*sollers*sollicito*sollicitudo*sollicitus*solum*solus*solutio*solvo*somniculosus*somnio*somnium*somnus*sonitus*sono*sophismata*sopor*sordeo*sordes*sordesco*sortitus*spargo*sparsi*sparsum*speciosus*spectaculum*specto*speculum*specus*sperno*sprevi*spretum*spero*spes*spiculum*spiritus*spoliatio*spolio*sponte*Richarius*stabilis*stabilitas*Stabulaus*statim*statua*statuo*stella*stillicidium*stipes*itis*stips*stipis*sto*steti*statum*strenuus*strues*studio*studiose*studium*stultus*suadeo*sub*subito*subitus*subiungo*sublime*subnecto*subseco*subvenio*succedo*succendo*successio*succurro*sufficio*suffoco*suffragium*suggero*sui*sulum*sum*fui*futurus*summa*summisse*summissus*summitto*summopere*sumo*sumptus*supellex*supellectilis*super*superbia*superbus*superficies*superfluo*superna*superne*supernus*supero*supersum*superus*superior*supremus*summus*supervacuus*suppellex*suppellectilus*supplanto*supplex*supplicium*suppono*subpono*supra*surculus*surgo*surrexi*surrectum*sursum*suscipio*suscito*suspendo*suspendi*suspensum*sustineo*suus*sua*suum*synagoga*tabella*tabellae*tabernus*tabesco*tabgo*tetigi*tactum*tabula*taceo*tacuitacitum*tactus*taedium*tedium*talio*talis*talus*tam*tamdiu*tamen*tametsi*tamisium*tamquam*tanquam*tandem*tantillus*tantum*tantummodo*tantus*tardus*Taruennam*te*tego*texi*tectum*temeritas*temperantia*tempero*tempestas*Templovium*templum*temptatio*tempus*temporis*tenax*tendo*teneo*tener*tenera*tenerum*tenuis*tepesco*tepidus*terebro*teres*terga*tergeo*tergo*tersi*tersum*tergus*termes*terminatio*termino*terminus*tero*trivi*tritum*terra*terreo*territo*terror*tersus*tertius*testimonium*testis*texo*textilis*textor*textrix*textus*thalassinus*theatrum*theca*thema*thematis*theologus*thermae*thesaurus*thesis*thorax*thymum*tibi*timeo*timidus*timor*titulus*tolero*tollo*sustuli*sublatum*tondeo*totondi*tonsum*tonsor*Tornacense*torqueo*torrens*tot*totidem*toties*totiens*totus*tracto*trado*tradidi*traditum*traho*traxi*tractum*Traiectensium*Traiectum*trans*transeo*transfero*transtuli*translatum*transmitto*tredecim*Trellum*tremo*trepide*Treverim*tribuo*tricesimus*triduana*triduanus*triduum*triginta*tripudio*tristis*Trium*Fontium*triumphus*trucido*truculenter*tu*tubineus*tum*tumultus*tumulus*tunc*Tungris*turba*turbatio*turbatus*turbo*tornado*spins*turpe*turpis*tutamen*tutaminis*tyrannus*uberrime*ubi*ulciscor*ullus*ulterius*ultio*ultionis*ultra*umbra*umerus*humerus*umquam*una*unde*undique*universe*universi*universitas*universum*universus*unus*urbanus*urbs*urbis*uredo*usitas*usque*ustilo*ustulo*usus*uter*utrius*Uticensium*utilis*utilitas*utique*utor*uti*utpote*utrimque*utroque*utrum*uxor*vaco*vacuus*vado*vae*valde*valeo*valui*valiturus*valetudo*validus*vallum*vapulus*varietas*varius*vehemens*vehementer*vel*velociter*velox*velum*velut*Vendolius*venia*venio*veni*ventum*ventito*ventosus*ventus*venustas*ver*veris*verbera*verbum*vere*verecundia*vereor*vergo*veritas*Vernandense*vero*versus*verto*verumtamen*verumptamen*verus*vesco*vescor*vesica*vesper*vespera*vespillo*vester*vestra*vestrum*vestigium*vestio*vestivi*vestitum*vestis*vestri*vetus*via*vicinus*vicissitudo*victor*victoria*victus*videlicet*video*vidi*visum*videor*viduata*viduo*vigor*vilicus*villicus*vilis*vilitas*villa*vinco*vici*victum*vinculum*vindico*vindicatum*vinitor*vinum*vir*virga*virgo*viridis*viriliter*virtus*vis*vires*viscus*vita*vitiosus*vitium*vito*vivo*vixi*vix*vobis*vociferor*voco*volaticus*volatilis*volens*volo*sibi*velle*volubilis*volubiliter*voluntarius*voluntas*volup*voluptarius*voluptas*voluptuosus*volutabrum*volva*vulva*vomer*vomica*vomito*vorago*vorax*voro*vos";
                
# which are then seperated into a array
                
$LatinStringInArray explode("*"$LatinString);
                
# A random number is produced (a number between 0 and the amount of array values/keys)
                
$RandNum rand(1count($LatinStringInArray) -1);
                
# The value (i.e., the latin word) is retrived from the array (accordinbg to the random number)
                # http://php.net/manual/en/function.strtoupper.php
                
$RandLatString strtoupper($LatinStringInArray[$RandNum]);
                
                return 
$RandLatString;
            }

            
# here we call function RandLatinWord() so get our random latin word(s).
            # Notice, that a new word will be produced when one refresh the browser
            
$RandLatinWord RandLatinWord();

            
?>

            <!-- Here is the HTML form of this post-encryption state -->
        
            <form action="EncryptedMessageSent.php" method="POST">

                <b>Name Of Message</b></br>
                (refresh the page to get new name)</p>
                <input value="<?php echo $RandLatinWord?>" style="text-align:center;height:25px; width:245px"></p>
                
                <!-- user name (key name) as html form hidden value -->
                <input type="hidden" name="NameOfPubKey" value="<?php echo $NameOfPubKey?>">

                <!-- message name as html form hidden value-->
                <input type="hidden" name="NameOfMessage" value="<?php echo $RandLatinWord?>">

                <b>Your Message In Encrypted Form</b></br>
                (expressed as non-hex string)</p>

                <!-- http://php.net/manual/en/function.base64-encode.php -->
                <textarea name="EncMess" type="text" cols="30" rows="12" ><?php echo base64_encode($EncMess);?></textarea></p>

                <input type="submit" name="send" value="Send Message" style="height:25px; width:150px"/></p>
            
            </form>


        <?php 
            
}   # end of $StateIsPostEncryption == true 
    
// end of if ($WeFoundPubKeyLetsProceedWithEncryption) 

    
?>

</div>
</br>
    </br>

<div align="center" id="footer3">
    <a href="DeleteKeys.php#center"><h3>(go) delete keys</h3></a>    
</div>

<div align="center" id="footer2">
    <a href="DeleteMessage.php#center"><h3>(go) delete message</h3></a>    
</div>

<div align="center" id="footer1">
    <a href="ProduceEncryptionKeys.php#center"><h3>(go) produce encryption keys</h3></a>    
</div>

<div align="center" id="footerUNO">
    </br>
        copyright, website designed by .......
    </br>
        </br>    
</div>

</body>
</html>

Source Code:
DeleteMessageContinue.php

<!-- DeleteMessageContinue.php -->
<!-- This Page Is Ready ..................  -->

<?php

    
/*

        <one line to give the program's name and a brief idea of what it does.>
        Copyright (C) <year>  <name of author>

        This program is free software: you can redistribute it and/or modify
        it under the terms of the GNU Affero General Public License as
        published by the Free Software Foundation, either version 3 of the
        License, or (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU Affero General Public License for more details.

        You should have received a copy of the GNU Affero General Public License
        along with this program. If not, see <http://www.gnu.org/licenses/>.

    */

?>

<!DOCTYPE html>
<html>
<meta charset=utf-8>
<head>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<div align="center" id="headerCODE">
    <a href="code/CodeOfDeleteMessage.php#continue"></><font color="white"><b>(read) code of this page</b></font></></a>
</div>    

<div align="center" id="headerUNO">
    <a href="index.php"><h1>brengla.com</h1></a>    
</div>

<div align="center" id="header1">
    <a href="ReadMessage.php"><h3>(go) read message</h3></a>    
</div>

<div align="center" id="header2">
    <a href="WriteMessage.php"><h3>(go) write message</h3></a>    
</div>

<div align="center">

</br>
    </br>
    
<?php

ini_set 
("display_errors"1);
error_reporting (E_ALL E_STRICT);


# Name of public key (i.e., user name) is "set" and verified
# http://php.net/manual/en/function.ctype-alnum.php
if ( !isset($_POST["NameOfPubKey"]) || !ctype_alnum($_POST["NameOfPubKey"]) ) {
    
header("Location: ProduceEncryptionKeys.php");
    
# http://stackoverflow.com/questions/1795025/what-are-the-differences-in-die-and-exit-in-php
    
exit;
} else { 
    
$NameOfPubKey $_POST["NameOfPubKey"];
    
$ProceedWithEncryption true;
}

if ( !
file_exists("/var/www/html/pubkey/" $NameOfPubKey) ) {
    echo 
"The requested key: <h3>>> $NameOfPubKey <<</h3> do not exist</br></br>";

    
?></br><form>
        <button formaction="GoWriteMessage.php" style="height:25px; width:150px">Go Back</button>
    </form><?php

    $ProceedWithEncryption 
false;    
        
}  else {
    echo 
"The requested key: <h3>>> $NameOfPubKey <<</h3> is valid</br></br>";
}

?>

<?php  if ($ProceedWithEncryption == true) { ?>

<?php    $ScanDirResult    scandir("/var/www/html/message");
        
           
##############################################
            # check if user has any messages available #

            
foreach ($ScanDirResult as $key => $NameOfMessage) {
                
# http://php.net/manual/en/function.strrpos.php
                
$position strrpos($NameOfMessage"@");
                
# http://php.net/manual/en/function.substr.php
                
$WhoOwnsMessage substr($NameOfMessage, ($position +1));
                if (
$WhoOwnsMessage == $NameOfPubKey) {
                    
# a message was found
                    
$MessageFound true;
                }
            } 
// foreach ends

            # if $MessageFound = isset; i.e., messages were found
            # otherwise the below HTML form will not be published    
            
if ( isset($MessageFound) ) {

            
?><form action="DeleteMessageDelete.php" method="post">
                <b>Please Enter The Appropiet Password</b></p>
                <!--
                type you password in a secure enviroment, rather than <input type="password">   
                if there is a malware that reads you password, does it matter if its type="password" or type="text".  
                --> 
                <textarea type="password" cols="30" rows="10" name="password" 
                    placeholder="Please give the password for the mentioned key, which after the key and all related messages to it will be deleted."></textarea></p> 
                
                <input type="submit" name="Delete" value="Delete Message" style="height:25px; width:150px"></p>

                <?php # list messages in html checkbox if $WhoOwnsMessage == $NameOfPubKey

                    # $ScanDirResult;         // the variable is set from earlier 

                    
foreach ($ScanDirResult as $key => $NameOfMessage) {
                        
# http://php.net/manual/en/function.strrpos.php
                        
$position strrpos($NameOfMessage"@");
                        
# http://php.net/manual/en/function.substr.php
                        
$WhoOwnsMessage substr($NameOfMessage, ($position +1));
                        
                        if (
$WhoOwnsMessage == $NameOfPubKey) {
                            echo 
$NameOfMessage?><input type="checkbox" name="MessageToDelete[]" value="<?php echo $NameOfMessage?>"><?php echo "</br>";
                        }
                    
                    } 
// foreach ends

                
?>
                </br>    
                <input type="hidden" name="NameOfPubKey" value=<?php echo $NameOfPubKey?>>
                <input type="submit" name="Delete" value="Delete Message" style="height:25px; width:150px"></p>
            </form>


<?php  
            
} else { // end of -- isset($MessageFound)        
                
echo "</br><b>But Owns No Messages</b></br></br>";    
            }
/* end of -- if ($ProceedWithEncryption == true) */  ?>



</div>

</br>
    </br>


<div align="center" id="footer3">
    <a href="DeleteKeys.php#center"><h3>(go) delete keys</h3></a>    
</div>

<div align="center" id="footer2">
    <a href="DeleteMessage.php#center"><h3>(go back) delete message</h3></a>    
</div>

<div align="center" id="footer1">
    <a href="ProduceEncryptionKeys.php#center"><h3>(go) produce encryption keys</h3></a>    
</div>

<div align="center" id="footerUNO">
    </br>
        copyright, website designed by .......
    </br>
        </br>    
</div>

</body>
</html>

(@) delete keys

(go) delete message

(go) produce encryption keys


copyright, website designed by .......