The PGP authentication type has been added to BSD Telnet client and server. The required source code resides in a single module. The same module is used in both the client and the server.
It contains the code for handling the SEND, IS and REPLY sub-option commands. In addition, it contains a few ``support'' functions which handles the interface to the PGP program. The new SEND, IS and REPLY functions are added by simply placing pointers to the new functions in an array of authentication types.
The prototype implementation does not include all the features of the PGP authentication specification. It was programmed quite early to learn how to extend the BSD Telnet with new options. The prototype supports one-way client to server authentication, and automatic key exchange if the server does not have the clients public key. Mutual authentication, and the challenge-response method were not implemented.
The PGP program is spawned as an external process to perform the following tasks:
Spawning PGP as an external process is easier to implement than calling the corresponding functions in the PGP source code directly. It also makes it clear what functions in PGP are used. However, a final implementation should, of-course, use a C language PGP function library.
Please refer to the source code for more programming specific issues.