anchor.diff:    (let ((result (nibbles:make-octet-vector (length data))))
       (ironclad:decrypt cipher data result)
       result))
  +
  +(defun dh-encrypt-conversation-key (common-key conv-key)
  +  (let ((c (make-dh-cipher common-key)))
  +    (dh-encrypt c conv-key)))
  +
  +(defun dh-decrypt-conversation-key (common-key data)
  +  (let ((c (make-dh-cipher common-key)))
  +    (dh-decrypt c data)))
   
   (defun des-timestamp (&optional seconds useconds)
     "Time since midnight March 1st 1970"
  
positive.code: (defvar *des-public-keys* nil
    "List of public keys for each client that may talk to the server.")
  
  (defstruct des-key fullname key)
  
  (defun add-des-public-key (fullname key)
    (push (make-des-key :fullname fullname
  
negative.code: 	    number (ash number -8)))
      key))
  
  (defun dh-conversation-key ()
    "Generate a random 56-bit (8-octet) DES key to be used as the conversation key"
    (let ((key (nibbles:make-octet-vector 8)))
      (dotimes (i 8)
        (let ((n (random 256)))
  	(when (zerop (logcount n))
  	  (setf n (1+ n)))
  	(setf (aref key i) n)))
      key))
  
  (defun dh-secret-key ()
    "Generate a random secret key"
    (do ((secret 0)
  