*************************************************************************** * NOTE: Please be careful with this software. It work fine for my setups, * * but one never knows! It is suggested you backup your ~/.pgp * * directory, or run in a guest account, until you are satisfied * * the program works OK and is not a trojan horse. * *************************************************************************** ---------------------------------------------------------------------------- ! copyright tkpgp v0.9 Copyright (c) 1996-1998 Karl J. Runge This is a program that provides a gui front end to Philip Zimmermann's Pretty Good Privacy(tm) (PGP) Public-key encryption system. It utilizes the Clipboard selection heavily to ease moving pgp-processed text both to and from any of your apps (mail reader, news reader, editor, etc...) No need to select the output text by hand or by typing in a filename, it is usually placed in the Clipboard automatically for you! Requirements: ------------- It works for PGP version 2.6.2, and most likely with other versions as well, but I haven't been able to test them. PGP needs to be installed on your system with "pgp" in your PATH somewhere. Read a little bit about PGP and make a key or two and encrypted message by hand before trying tkpgp. Tkpgp also requires tcl/tk's wish version 4.1 or higher. 8.0 preferably since that is where I develop. You can get tcl/tk at: http://www.scriptics.com Tkpgp has been written to detect the operating system it is running on. For some time now it has been working fine on Unix. Recently (11/97) initial support for Win95 and Win3.1 has been provided under tcl/tl 8.0. Still some kinks to work out on Windows, but it is usable. Support for WinNT has not been tested, but should be easy (if not already there). Tkpgp runs OK on Win3.1 but there are some annoyances such as the need to manually deiconify the DOS box for interactively run PGP commands (e.g. secret key generation) Mac support will most likely not happen since there is no exec, and I imagine PGP is already a GUI rather than a STDIO program. Tkpgp was developed on Linux. Installation: ------------- This package comes with two tcl/tk program's "tkpgp" and "browse". "browse" is a standalone file-selector-dialog-box, useful to embed in other apps and shell scripts to get user input for a filename. In the "tkpgprc" file setting BROWSE_CMD to "internal" will use Tk's internal file open dialog. "browse" stdout seems to be lost on Windows, so "internal" should be used there. >> Unix: Unpack the tar gzipped file. cd down into the directory it created, Move "tkpgp" and "browse" (if desired) to somewhere in your PATH. Copy the "tkpgprc" file to ~/.tkpgprc and edit any preferences (e.g. MAILHOST...) You must have the wish program (version 4.1 or above) in your PATH If for some reason you don't want to do that, add a "shebang" line: #!/usr/local/bin/wish4.1 to the very top of "tkpgp" and "browse", where /usr/local/bin/wish4.1 is, say, the full path to the wish binary. tkpgp and browse come with the more portable: #!/bin/sh # the next line restarts using wish \ exec wish "$0" "$@" which utilizes your PATH. To install permanently move "tkpgp" and "browse" to some standard place, e.g. /usr/local/bin or ~/bin, in your PATH. >> Windows: Install tcl/tk (e.g. tcl80.exe). Unpack the zip file, via pkunzip -d tkpgp.zip. This will create directory TKPGP containing the program "tkpgp.tcl". Edit the "tkpgprc" file in the TKPGP directory if you want to change any preferences. Make a shortcut or program item if you want. Running: -------- If pgp is installed on your system, typing "tkpgp" (on Unix) in this directory should start it up OK and it should be able to do most things. On windows launch via shortcut, Run..., or Explorer. Click the Help, then "Contents" button for more information. I STRONGLY advise you to backup your PGP directory to be sure tkpgp doesn't do something unexpected to the important data there. It is beta software and it has only been tested at length in my environment. It is not clear to me what will happen for certain customizations a user may have put into ~/.pgp/config.txt (I am a pretty vanilla PGP user). Misc: ----- I wrote this program since I continue to be fascinated by RSA and PGP. I also wrote it as a learning experience for gui and program design. If there are too many features, a missing feature, or any other suggestions you have, please let me know. It is not clear to me that a standalone PGP gui is the what people will want, especially in the long term. In general I think people will want PGP integrated into their mail reader, news reader, and even WWW browser. That is alot of distributed work, and so I thought it would be fun to see how useful a standalone GUI interface to PGP would actually be. On of the great things about PGP, even the somewhat dated version 2.62 I use, is that it is widely distributed around the world. Thank god for this encryption tool for ordinary people! Tkpgp makes a nice GUI interface for this encryption tool! Karl Runge runge@karlrunge.com ------------------------------------------------------------------------------- Included below is the (long!) "tkpgp" Howto section that tries to describe everything. HELP_CONTENTS: =================== How to use "tkpgp": =================== *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* There is no replacement for reading and understanding the PGP documentation! *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* Ideally, you know the PGP command line interface for the more frequently used actions, and only use "tkpgp" for help avoid the extra typing and having to remember the command line syntax. "tkpgp" *may* help one to learn about the PGP tools and encryption methods, but that is not the intent. A more readable Help will be hopefully made in the future, but for now this button-by-button description will have to suffice. "tkpgp" requires that PGP be installed on your system and the program "pgp" is accessible from your PATH variable. It works for Pretty Good Privacy(tm) version 2.6.2 and hopefully it will work with other versions as well. When "tkpgp" starts up it checks if it can find "pgp" on your system. It then runs "pgp" with the -kvc flags to obtain the names of the keys on your public key ring. It places these in the "User ID" pull down menu. In the following, "TextArea" will refer to the scrolling area of text that "tkpgp" displays as its body. "EntryBox" will refer to the entry box and confirmation buttons near the bottom where the user types in information. "MessageBox" is the label at the very bottom where information messages are posted. Input methods: The default input method is to "Paste-in" from the Clipboard. For example, to Encrypt a message you simply paste it into the TextArea. In Paste-in mode you can, of course, also type directly in the TextArea. Also, a very quick way to input the contents of the Clipboard is to press Ctrl-R, this is equivalent to pasting in the text and then clicking "OK" to have the selected action performed on it. Clicking the Right-Mouse button (Button-3) does the same as Ctrl-R. The other input method is "Browse". In this method you select an input file via a simple file browser that is presented. Click your way through the directories, then select the file you want to use. I prefer the "Paste-in" mode since it is an easy way to couple my e-mail, news reader, or browser with PGP: I just copy-n-paste back and forth between the app and "tkpgp". ====================== The Four Main Actions: ====================== These are used alot, and so appear as big buttons on "tkpgp"'s Menubar at the top of the application. Encrypt: -------- By clicking on the "Encrypt" button will asked to paste into the TextArea or be presented with a file Browser ("browse", a program that should have come along with "tkpgp") to select a file to Encrypt. If you had typed/pasted a filename into the "Command:" EntryBox before hitting "Encrypt", that file would be used without calling the Browser. Paste or type in the text (Ctrl-R is a quick way to paste in the Clipboard selection. Clicking the Right-Mouse button does the same.) or, if in Browse mode, select a file by browsing for it then double clicking on it. Otherwise, type the name into the Browser's entry box and click "OK". Since Encrypting requires using someone's Public Key you must have selected at least one from the "User ID" pull down menu. "tkpgp" will do some simple checking to guess if the "pgp" Encrypting action may overwrite an existing file and ask you if you want to backup that file (e.g. Encrypting "myfile" may clobber "myfile.asc") "pgp" will then be run, and its messages will be displayed with highlighting in the "tkpgp" scrolling TextArea. The newly created encrypted filename should be highlighted and selected for easy pasting into other applications. To view and select the contents of the new file, Click "File", then "Show Newest File". [pgp -e ...] Decrypt: -------- Clicking on the "Decrypt" button asks you to Paste-in an encrypted message (see Ctrl-R above) or you will presented with a file Browser. Proceed as before under "Encrypt". Now since Decrypting means you must use one of your Secret Keys to decrypt the file, you will be prompted for your Pass Phrase (see the PGP documentation for more info). Type the Pass Phrase into the EntryBox at the Bottom and press or Click "OK". "tkpgp" will check for the possible clobbering of files as above, and if all goes well, the file will be decrypted by the "pgp" action. The new filename should be highlighted along with any messages, and you can also view the file via Clicking "File", then "Show Newest File" as before. [pgp ...] Verify: ------- Clicking on the "Verify" button will again be asked to Paste-in the Clipboard selection or be presented with the file Browser. Proceed as before with "Encrypt" or "Decrypt". In this case someone has Signed a message with their Private Key and has publicized the signed message. If you have their Public Key (displayed in "User ID" menu) "tkpgp" and "pgp" can Verify that the message is really from the sender and has not been tampered with. "tkpgp" will check for the possible clobbering of files as above, the messages from the "pgp" action will be presented to you with highlighting in the TextArea. Viewing any created files can be done as mentioned above. [pgp ...] Sign: ----- Clicking on the "Sign" button will once again ask you to Paste-in data or present you with a file Browser. Input the data as before. Now you can sign a Message with your Private Key, to, say, send off to others. Once you have selected the filename and provided your Pass Phrase to the EntryBox prompt the file will be Signed in "pgp"'s "Clear Sig" mode. View, Select, etc, the new file as before. [pgp -st ...] Cancel: ------- The Cancel button is normally disabled, but during an Action if you decide you do not want to continue the action, click this button to terminate it. All Action buttons will be greyed out when the Cancel button is active, so it should be pretty clear when the Cancel button can be used. ============= Is that All?: ============= Perhaps that is all one really needs to do in most cases, and hopefully "tkpgp" works well in performing those tasks. But, of course, there's a lot more... ----- File: ----- Open: ----- Select a file with the file browser for subsequent processing. Currently requires the "browse" tcl/tk program supplied with "tkpgp". Compose: -------- Starts up an editor. You can compose your message in there and then copy-n-paste or save to a file and read into "tkpgp". You can compose directly in the TextArea if you like, but this is somewhat awkward. Set the EDIT_CMD directive below under "Misc" on how to set your editor.. Select All Text: ---------------- Places the entire session Log into the clipboard. Ctrl-/ does the same. Clear All Text: --------------- Deletes all text from the TextArea. To delete just part of the text in the TextArea highlight it with the mouse then then press the "BackSpace" key. Find: ------ Find a pattern in the TextArea (case is ignored). Enter the pattern to match in EntryBox when prompted by "Find:". Click on "Fwd" or press "Enter" to search forward from the cursor. Click on "Back" to search backward. Ctrl-F and Ctrl-B also search forward/backward (note Capitals). These two keypresses may be used directly to search for the last pattern searched for without initiating a Find dialog. Click "OK" or press "Escape" to finish the Find dialog. In the TextArea and EntryBox Ctrl-f initiates a Find dialog. Wipe Tmp Files: --------------- Attempts to overwrite on the Hard Disk the data in ALL the tempfiles in the Temporary directory with a fixed character. Then runs a "sync" command (on Unix). Wiping and deleting may also be performed by using "pgp". See "Config" section for more info. Delete Tmp Files: ----------------- Attempts to delete ALL the tempfiles in the Temporary directory. They are "Wiped" and synced before removal. See "Wipe Tmp Files". List New Files: --------------- Prints to the TextArea the list of files created or modified during the current "tkpgp" session. The latest one is highlighted and selected for easy pasting into other apps. Show Newest File: ----------------- Displays the most recently created file during this session in the TextArea. Also exports that text to the clipboard selection. Exit: ----- Exits the programs. Cleans up any temporary files or directories. These temporary files are Wiped (see above), synced and then removed. -------- Options: -------- There are a variety of options for "tkpgp", some very useful some esoteric. See the "Config" section below on how to change these defaults. In the order they appear in the "Options" pull down Menu, here they are: Verbose: -------- If set, more information will be displayed to the scrolling TextArea as "pgp" commands are run. E.g. more information about Keys and any created files. Unsetting it does NOT make the outputting extremely terse, so it really doesn't provide a big effect. Always Show: ------------ If set, the program will most always try to display the contents of the file created by the most recent action. Contents will also be put into the clipboard. Unsetting it will cause the displaying to occur less frequently. Ext. Terminal: -------------- "tkpgp"'s default is to ask for input and then provide "pgp" action output in the TextArea. It seems the "pgp" program cannot be tricked into using the Standard Input stream for user responses (i.e. for pass phrase or whether to overwrite an existing file). That is to say "pgp" needs a real TTY for these actions. If "Ext. Terminal" is set, then the "pgp" actions (except for trivial ones, e.g. help: "pgp -h") will get a real TTY by being run in an external terminal program. On Unix this is "xterm". Input: ------ The default input mode is for "tkpgp" to use clipboard copy-n-paste. The text will be saved into a temporary file and the "pgp" action then performed on it. You can view the output and copy it to a permanent file if you like. Usually the output will automatically be placed in the clipboard selection to facilitate this. The reason for this default is that it may be easier to Paste a signed message you are reading in your Mail or News reader into "tkpgp" rather than having to save to a file an then read it in, etc. The other input mode is to use the file Browser to select a file to perform a "pgp" action on. The file Browser has C-shell like Ctrl-D and Esc/TAB file completion if you are familiar with these. Also, in this mode it first checks the Command: EntryBox contents for a presence filename, if one is there it uses that instead of using the file Browser dialog. Pasting into the TextArea can be done as follow: 1) Ctrl-V will paste the clipboard selection at the insertion cursor (vertical bar in text area) 2) Hitting the "Insert" key will also paste at the insertion cursor. 3) Place the mouse at the place you want to paste (usually at the insertion cursor point), and click the 2nd button. (middle button under Unix). Finally, instead of Clicking "OK" you may also press Ctrl-D, so a very quick way to paste is to press Ctrl-V Ctrl-D. In fact this has shortened to a single keystroke: Ctrl-R (r for read?) or Right Button. Output: ------- The default file creation mode for "tkpgp" is Ascii. I.e. file output to "myfile.asc" type format. This just uses the "pgp" "-a" option where appropriate. To generate binary output, e.g. "myfile.pgp", select "Binary". UserID List: ------------ If you have alot of public keys the simple pull down UserID's menu will be bigger than that screen is tall. There are a couple of ways around this. The first is that the first item of the UserID's pull down menu is "ScrollBox", which gives you a standalone scrollable window with your keys. Another option is selecting "Alpha" here. This gives you an alphabetical A, B, C, breakup of your keys. Choosing the alternative "Flat" will just give you the standard pull down. This is OK if you have less than 30 or so keys. The checkbox "Sort" will make the Public Key list (in all the places it is used) be sorted alphabetically. Paste Next ----------- If Input mode is "Browse", this overrides the mode to "Paste" for the next, and only next, Command action. Browse Next ------------ If Input mode is "Paste", this overrides the mode to "Browse" for the next, and only next, Command action. Wipe Next --------- This corresponds to "pgp"'s "Wipe File" out of existence action. NOT IMPLEMENTED: needs more careful study. ----- Cmds: ----- There are a number of extra command actions (i.e. in addition to the Four Main Actions above) in the "Cmds" pull down menu. List Public Keys: ----------------- Displays the keys on your pubring.pgp keyring. (verbosely if "Verbose" is set in "Options") [pgp -kv] Show Public Key: ---------------- Displays an ascii PGP PUBLIC KEY BLOCK of the (Single) userid checked in the "User ID" menu. [pgp -a -f -kx "id"] Add Public Key: --------------- To add a key to your PGP public key ring Click this item. You will be prompted for a file containing the person's Public Key contents (or to Paste if Paste mode is on, e.g. you finger'd a person to get their PGP PUBLIC KEY BLOCK). [pgp -ka -f < keyfile] Remove Key: ----------- This will delete from your PGP keyring the (Single) userid checked in the "User ID" menu. [pgp -kr "id"] Since this is user interactive, this action is always run in an external terminal. (See "Ext. Terminal" above). Make Secret Key: ---------------- To create a new "pgp" Private key of your own, this item will run the "pgp -kg" for you. [pgp -kg] Since this is highly user interactive, this action is always run in an external terminal. (See "Ext. Terminal" above). Please read the PGP documentation carefully to know what is going on before using such a key seriously. Encrypt+Sign: ------------- Sign a text file with your public key, then Encrypt it for the selected Recipient(s). [pgp -s ...] Sign Only: ---------- Sign a text file with your public key, but don't include the "Clear signature" text in the file. [pgp -s] Verify .sig file: ----------------- Often software is distributed with an accompanying separate PGP .sig signature file. E.g. "foo.zip" and "foo.zip.sig" Click on this button to bring up a browser to locate the .sig file (e.g. "foo.zip.sig"). You will next be prompted for the signed data file (e.g. "foo.zip"). [pgp f1 f2] Warning: pgp command will block if you do not have the signer's public key on your PGP keyring. Use "Ext. Terminal" if unsure. Test Encrypt: ------------- For the single selected UserID, do a test encryption in an external terminal using bogus text. Useful when you have just added a new key, since "pgp" will block waiting for a query on the first encryption with the new key. You are prompted to do a Test Encrypt every time you add a new key. Mail Newest File ---------------- Presents you with a Mail Dialog to send a file to people. Follow the instructions in the TextArea and MessageBox. The default Attachment file is the newest one created during the "tkpgp" session, but you can provide another by overwriting the filename in the EntryBox or by browsing. (Note if Paste mode is set it is ignored, see Paste & Mail below.) Next, you will be prompted for Subject: and a list of who to send it To:. The default is the list of email addresses of the items currently selected under the "UserID's" menu. Then you are asked to Paste or Type in any text you want to appear before the attachment file. Click "OK" when you're done. To provide text after the attachment file, note that the string "ATTACH" (all capitals) is expanded to the attachment file text. E.g. Here is the text before the PGP message ATTACH Here is the text after the PGP message. Hooks for using an external editor will be added in the future. Mail will be sent by running a mail command (i.e. /bin/mail) Or can be sent via a tcp connection to a mailhost. See the "Config" section below on how to configure outgoing mail. Quick Mail ---------- Uses the newest file created as the email text. You are NOT prompted to change it (see "Mail Newest File" above to have more choices). The recipients are the email addresses currently selected in the UserID's menu. The Subject is set to "PGP Message", but may be changed. You are prompted to view the email text via the Yes/No buttons. You are then prompted whether or not to send the email. Paste & Mail ------------ As "Mail Newest File", except take mail text from pasting into the TextArea instead of from the Lastest or a browsed filename. ---------- UserID's: ---------- This menu contains some actions regarding your list of of Public Keys (User ID's). You may select any number of keys. These selected Public Keys will be used for "pgp" actions, e.g. "Encrypt" will encrypt the message will all of the selected keys. Similar for "Mail...", etc. Clear All: ---------- De-Select all Public Keys. ScrollBox: ---------- Display a standalone Scrollable List of your Public Keys. Useful if you have many (> 30) Public Keys. Search: ------- Start up a Search Dialog to search for a string in your Public Key Descriptions. Type the search string in the EntryBox. Useful if you have many (> 30) Public Keys. The List: --------- Either a flat menu list, or an Alphabetical breakup (i.e. A, B, C, ...) of your keys. Useful if you have many (> 30) Public Keys. See "Options / UserID List" for more information. --------- EntryBox: --------- The EntryBox at the bottom (usually with label "Command:") is used for general user input prompting (although for multiline input the TextArea is used). E.g. the EntryBox is used for filename, E-mail Subject, Yes/No dialog, etc. Hitting or Clicking "OK" are equivalent. The same goes for Clicking "Yes" in a Yes/No dialog. Middle button Mouse allows pasting into the EntryBox. For convenience, you can type in any System command to the "Command:" prompt. For example, "ls -l" or "finger joe@foo.bar". Warning: Standard Error is not printed unless you supply (on Unix) 2>&1. This will be fixed somehow in the future. For now, use to insert the string "2>&1" The EntryBox has a "History" feature to retrieve previous commands. Use up-down arrow keys (or PageUp/PageDown) to access them. Edit the lines with Left/Right arrow movements and BackSpace, etc. Control-U should clear the EntryBox. "Home", "End", "Insert", should work on the PC keyboard. The EntryBox also has a "Selected File History", this will keep a list of files selected by Browsing in the order they have appeared. To move back through them press , pressing will reverse direction. Remember, with a valid file in the EntryBox, the Browse command will select that file first. (You are prompted if you want to use it). ------- Config: ------- If the envirnoment variable $TKPGPRC is set that is used as the only rcfile. If TKPGRC_SITE is set, that rcfile is processed first, then "$HOME/.tkpgprc" and finally "tkpgprc" if it exists. Here is the sample ~/.tkpgprc file # sample .tkpgprc file # # The file can be $HOME/.tkpgprc or "tkpgprc" in work dir. # # Pound sign "#" denotes a comment, rest to end of line is ignored. # Blank lines are skipped. # # Format is NAME:VALUE # # booleans can be set to 0, 1, or true, false (case ignored) # # Remove the `#' signs from the items you want to set. #------------------------------------------------------------------------ # EMAIL:WHO:ADDR is a special case. It is for pgp keys w/o embedded email # address. pgp has key "WHO" and we give it email address "ADDR" # EMAIL:Rocke Verser: #------------------------------------------------------------------------ # >> Options Menu << # #VERBOSE: false # or 0, 1, true, same for all booleans #ALWAYSSHOW: false #EXTTERM: true #INPUT: browse # or "paste" #OUTPUT: binary # or "ascii" LISTSORT: 1 # boolean as above. #LISTMODE: alpha # or "flat" #------------------------------------------------------------------------ # >> Mailing << # MAILHOST and MAILFROM are for using a tcp socket connection to send mail. # Both must be set in order for mail to be sent this way. # # MAIL_CMD can be used to send mail. # The syntax must be: MAIL_CMD -s "subject" who < mail_file MAILHOST: haystack.runge.home # sendmail host MAILFROM: runge@karlrunge.com # return address #MAIL_CMD: /bin/Mail #------------------------------------------------------------------------ # >> Misc << # #PGP_CMD: pgp # set to alternative PGP command EDIT_CMD: xvi %s # your editor for composing text. %s may be # expanded to a filename. #BROWSE_CMD: my_browser %d # your file browser, %d may be expanded to # a directory name. #BROWSE_CMD: internal # OR set BROWSE_CMD to "internal" to use # tk's file selector. #XTERM_WAIT: 0 # true => there will be a hit # to continue pause after pgp cmds run in # an xterm on Unix. #TMPDIR: /tmp/my_eyes_only # Absolute path to place to create # temp directory. Good idea to make it # accessible only by you. (non-shared) #WIPE_METHOD: pgp # Set to "pgp" to use pgp -w to wipe files. # OR set to "internal" for internal method. #WIPE_SHELLFILES: true # Instead of just deleting temporary # shell files, try wiping them too. #UNIX_NAMEDPIPE: true # On Unix, instead of using regular files # for temporary shell files, use a FIFO # named pipe (i.e. a file that exists # in RAM only, and read only once) #USE_PGPPASSFD: true # Use environment variable PGPPASSFD=0 # to have PGP read passphrase from STDIN. # This is done via script or batch file # echoing to PGP instead of using -z --------- Starting: --------- Envoking "tkpgp" by: tkpgp or ... | tkpgp - will make the default file for "tkpgp" to process the contents of or the standard input. Thus "tkpgp" can be piped PGP data from other programs. E.g. it could be used as a MIME viewer. tkpgp should work on Windows as well. To force it to ignore any standard input do: tkpgp SKIP ----------------- Trouble Shooting: ----------------- Remember, tkpgp is beta software and so there will be some glitches. Blocked Programs problems: The main challenge for tkpgp is to predict when pgp will prompt for user input (e.g. for a passphrase or yes/no response). In these cases tkpgp will either prompt you for the info and pass it to pgp, or it will start pgp in an external terminal so you can reply to pgp directly. If tkpgp fails to predict correctly it will appear to "hang" while pgp waits for input. It was originally hoped that even in such cases, tkpgp could notice pgp was blocked, and prompt for and send the reply, but this no longer appears feasible. What do you do when tkpgp hangs like this? Basically, you should kill it and the processes it has spawned. On Unix if you started tkpgp from a, say, xterm, you could try to type the response (e.g. ) in that xterm. However clunky, it might be a good idea to alias or have a desktop button launch tkpgp via: xterm -iconic -T "Tkpgp TTY" -e tkpgp On Windows 3.1 there will be an iconified DOS Terminal, and you could de-iconify that. On Windows 95 and NT you will have to kill the programs by hand, sorry. Pasted Text problems: If for some reason you are typing into the text area for the paste-in text dialog, the inputted text can be lost. Why this happens is unclear... =================================================================== Well, that's all I can think of. Email suggestions/bugs to me, Karl Runge, at runge@karlrunge.com -----BEGIN PGP PUBLIC KEY BLOCK----- Version: 2.6.2 mQCNAzNi/r0AAAEEAOPZ8gcMOQv21xcl39vNikcn5JNErGbhHUrMMhahIMQGWuB9 euhXheqc5AtEHpJLhb11Nf0T8dsLb6WrZEfMlhW/YgRwfzpLYzsPxXwMl5cUbThA 0BdsWDHPEsvPNV9bYeKqlz925MVHtuDrZTbnEWq7hx9eavYQ+QyjVATn7dTRAAUR tB1LYXJsIEouIFJ1bmdlIDxydW5nZUBjcmwuY29tPg== =cbvQ -----END PGP PUBLIC KEY BLOCK----- tkpgp v0.9 Copyright (c) 1996-1998 Karl J. Runge