anchor.diff:        ;; Because at this point, the new token is written
         ;; on the device, but not in the user's file. A very
         ;; inconsistent state.
  -      (write-user-token user new-token))))
  +      (write-user-token user-file new-token))))
   
   (defun write-device-token (device token)
     (write-token device token 5))
   
  -(defun write-user-token (user token)
  -  (write-token (merge-pathnames user *user-tokens-path*) token))
  +(defun write-user-token (user-file token)
  +  (write-token user-file token))
   
   (defun write-token (path token &optional (offset 0))
     (with-open-file (f path
  
positive.code: (defun is-block-device (path)
    (sb-posix:s-isblk (sb-posix:stat-mode (sb-posix:stat path))))
  
  (defun has-hermes-fingerprint (path)
    (with-open-file (f path
                       :direction :input
                       :element-type '(unsigned-byte 8))
      (let ((bytes (make-array *fingerprint-length* :element-type '(unsigned-byte 8))))
        (read-sequence bytes f)
        (every #'= bytes *fingerprint*))))
  
  ;;; Safe One-Time Tokens
  ;;;
  
negative.code: (defvar *user-tokens-path* #p"/etc/hermes/")
  (defvar *storage-device-prefix* "sd")
  (defvar *devices-folder* #p"/dev/")
  
  (defvar *safe-ott-device-offset* 133)
  (defvar *safe-ott-user-offset* 128)
  
  (defmacro loop-with-unix-socket (vars &body body)
    (let ((socket (first vars))
  