<<>> <> <> <> <> <> DIRECTORY Rope USING [ROPE]; RPC: CEDAR DEFINITIONS = BEGIN Conversation: TYPE = REF; unencrypted: Conversation = NIL; <> <> PupAddress: TYPE = MACHINE DEPENDENT RECORD [net: PupNet, host: PupHost, socket: PupSocket]; PupNet: TYPE = RECORD [BYTE]; PupHost: TYPE = RECORD [BYTE]; PupSocket: TYPE = PACKED RECORD [a, b, c, d: BYTE]; NetAddress: TYPE = PupAddress; nullSocket: PupSocket = [0,0,0,0]; nullNetAddress: PupAddress = [[0], [0], nullSocket]; <> Password: TYPE = PACKED ARRAY[0..3] OF CARD16; <<"Password" is the representation of an individual's encryption key. It is intended to be used with the DES encryption algorithm. Note that this is not the same as DESFace.Key (today), not even if you use LOOPHOLE.>> <<>> EncryptionKey: TYPE = --GVBasics.--Password; <> InterfaceName: TYPE = RECORD [ type: ShortROPE ¬ NIL, -- e.g., "AlpineAccess.Alpine" instance: ShortROPE ¬ NIL, -- e.g., "MontBlanc.Alpine" version: VersionRange ¬ matchAllVersions ]; ShortROPE: TYPE = Rope.ROPE; VersionRange: TYPE = WORD16 MACHINE DEPENDENT RECORD[first, last: CARD16]; <> matchAllVersions: VersionRange = [1,0]; <> <<>> GenerateConversation: PROC RETURNS [Conversation]; <> <<>> EndConversation: PROCEDURE [conversation: Conversation]; <> MakeKey: PROCEDURE [text: Rope.ROPE] RETURNS [EncryptionKey]; END.