|
|
1.1 ! root 1: PGP/Open VMS Version 2.2 ! 2: ------------------- ! 3: ! 4: All rights to PGP are reserved by Phil Zimmermann. All contributed modules ! 5: are also subject to the copyrights of their individual authors, on the same ! 6: conditions. Certain algorithms used by PGP are subject to patent restrictions ! 7: and this software as a whole may be subject to export control in certain ! 8: countries. Read the PGP Guide for full copyright information and for details ! 9: about export control. ! 10: ! 11: These notes are intended for those people using and working with PGP under ! 12: the VAX/VMS and OpenVMS operating systems. These are intended to supplement ! 13: rather than replace the PGP guide. You should read and understand the guide, ! 14: particularly the section about key management. ! 15: ! 16: Digital in their infinite wisdom have renamed VMS as of version 5.5 to OpenVMS. ! 17: OpenVMS for VAX (the old VAX/VMS) has been renamed to OpenVMS/VAX and the new ! 18: version for their RISC processor to OpenVMS/Alpha AXP. When I refer to VMS, I ! 19: mean VAX/VMS version 5.3 and upwards and OpenVMS/VAX V5.5 and up. I am *not* ! 20: referring to OpenVMS/Alpha AXP. See the developers notes for information. ! 21: If you unzip under VMS using the public domain Zipper - you will probably have ! 22: a problem with file characteristics. If you have the PD FILE utility, you can ! 23: fix this by saying: ! 24: ! 25: $ FILE/type=stream *.* ! 26: ! 27: Otherwise you can fix using either TPU or CONVERT/FDL. ! 28: ! 29: PGP/VMS was written using the VAX C compiler, which you must have to ! 30: compile it. If you wish to use another compiler, see the developers notes. ! 31: PGP is provided with an MMS description file. To build using this file, go ! 32: to the directory containing the uncompressed files and type the following: ! 33: ! 34: $ MMS ! 35: ! 36: You may wish to delete the object files at this point, they are not needed ! 37: unless you are working on the code. To build a version under the VAX/VMS ! 38: debugger, define the DCL symbol PGP_DEBUG=1. The debugger version will be ! 39: built without any optimisation and will be *significantly* slower. ! 40: ! 41: If you do not have MMS you may execute the DCL supplied command procedure ! 42: VMSBUILD.COM to compile and link PGP. ! 43: ! 44: Once you have built PGP, it should be placed somewhere that is protected ! 45: against tampering. It is not impossible that someone may replace PGP.EXE ! 46: with a patched version designed to capture keys. You may wish to use the ! 47: CHECKSUM utility (CHECKSUM/IMAGE PGP.EXE) to control against modifications, ! 48: however CHECKSUM does not use very effective algorithms and may itself be ! 49: compromised. ! 50: ! 51: You should then use PGP by defining it as an "external command" in your ! 52: LOGIN.COM, or alternative the system wide login command procedure, SYLOGIN. ! 53: This is done simply with the following line of DCL: ! 54: ! 55: $ PGP:==$device:[directory]PGP ! 56: ! 57: After executing this line (remember the dollar sign before the device name), ! 58: you should be able to display a help text by typing: ! 59: ! 60: $ PGP ! 61: ! 62: PGP will want to retain the keyrings and some other information. These are ! 63: stored in the device and directory pointed to by the logical name PGPPATH. ! 64: You should copy the files LANGUAGE.TXT and CONFIG.TXT to this directory. ! 65: ! 66: Your secret keyring contains information that could be cryptographically ! 67: analysed - it must be protected against world access. However, your secret key ! 68: ring is encrypted so is protected against casual browsing. If anyone that you ! 69: can not trust has privileged access to your system, your plaintext files are ! 70: vulnerable and potentially, also your keyrings. ! 71: ! 72: Note that keyrings should be directly transportable between VMS, MSDOS ! 73: and other PGP implementations. Text files may not be portable because of the ! 74: different text record representations across operating systems. If you wish ! 75: to send a text file to a system other than VAX/VMS, you are recommended to ! 76: use the 'canonical-form' switch '-t'. ! 77: ! 78: If you wish to take binary files such as backup savesets between two systems ! 79: running VMS, you can use the special flag 'i' with the encrypt function to ! 80: preserve the file and record characteristics. When decrypting, PGP will read ! 81: the 'i' flag and the type of the system that created the file. If both systems ! 82: are VMS, the file will be correctly decrypted with the correct file ! 83: characteristics. ! 84: ! 85: Developers Notes ! 86: ---------------- ! 87: ! 88: There are two key conditionals throughout the source for the VAX/VMS ! 89: implementation: ! 90: ! 91: VAXC - Allows specific optimisations permitted by the VAX C compiler and ! 92: overcomes problems with the differences between VAX C and ANSII C. ! 93: ! 94: VMS - This allows VMS specific file handling and some optimisations. It ! 95: should be noted that the primitives do not work with ! 96: OpenVMS/Alpha AXP until someone has done some work on porting VAX.MAR. ! 97: Other RISC implementations have always shown disappointing performance ! 98: when relying on C alone. ! 99: ! 100: There was also some preliminary work done on porting this to GNU C and indeed ! 101: an earlier (developers) version ran under GNU C. The code affected is usually ! 102: conditionalised with GCC. If someone wishes to complete this and (hopefully) ! 103: integrate the inline assembler stuff used for moves and zero-fills, this ! 104: would be very useful. ! 105: ! 106: All optimizations were checked out using DEC's PCA, and this version appears ! 107: to be optimal under VAX C. ! 108: ! 109: As for cleaning up, there are verious areas which could be improved: ! 110: ! 111: 1) PGP's own erase on delete could be replaced by the standard VMS ! 112: function so the file system does the work. ! 113: 2) PGP spends a long time moving data between temporary files. This ! 114: should be reduced where possible. ! 115: 3) We need an Open VMS/Alpha AXP version of PGP. This code has never ! 116: faced DEC C but it is reputably more ANSII compilant. The VAX.MAR ! 117: stuff should go through the MACRO-32 translator. Please advise me ! 118: if you have time to spare to make an Alpha port. ! 119: 4) I have never tried this stuff with VMS POSIX. The combination of VMS ! 120: and VAX C but with a Unix-like file system will blow the existing code ! 121: unless it is correctly conditionalised. ! 122: ! 123: 2) The random number generation uses a polling loop from the keyboard ! 124: which is neither nice nor necessary. A better approach would be to do ! 125: single character I/Os and fetch the system clock after each ! 126: character. ! 127: ! 128: Contributing Authors ! 129: -------------------- ! 130: ! 131: This port was originally performed by Hugh Kennedy with assistance from ! 132: Mark Barsoum and others. ! 133: ! 134: Support ! 135: ------- ! 136: ! 137: This software is provided in the public domain and without charge other than ! 138: for copying. For support issues concerning PGP and VAX/VMS, you are welcome ! 139: to contact me via Electronic Mail on Compuserve using ID 70042,710 and on the ! 140: Internet with [email protected]. This software is provided "as-is" and ! 141: any support given will be of an informal nature. ! 142: ! 143: Hugh A.J. Kennedy, 17th November 1992
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.