anchor.diff:  	       (ash (logand octet #x20) -4)
   	       (ash (logand octet #x40) -6))))
   
  +(defun fix-parity (key)
  +  (dotimes (i 8)
  +    (let ((octet (aref key i)))
  +      (let ((parityp (zerop (mod (logcount octet) 2)))
  +	    (evenp (zerop (mod (aref key i) 2))))
  +	(cond 
  +	  ((and parityp evenp)
  +	   ;; turn the parity bit on
  +	   (setf (aref key i)
  +		 (logior (aref key i) 1)))
  +	  ((and parityp (not evenp))
  +	   ;; turn the parity bit on
  +	   (setf (aref key i) 
  +		 (logand (aref key i) (lognot 1))))))))
  +  key)
  +
  +;; this seems to work
   (defun make-des-key (password salt)
     (let ((octets (concatenate 'list
   			     (babel:string-to-octets password)
  
positive.code:       (setf c (ash c -8))
        (setf c (logxor c (aref +crc32-table+ idx))))))
  
  (defun des-cbc (key octets)
    (let ((result (nibbles:make-octet-vector 8)))
      (ironclad:encrypt (ironclad:make-cipher :des 
  					    :mode :cbc
  					    :key key
  					    :initialization-vector (nibbles:make-octet-vector 8))
  		      octets
  		      result)
      result))
  
negative.code: 
  ;; This is copied/ported from the C codes found here 
  ;; http://opensource.apple.com/source/Kerberos/Kerberos-62/KerberosFramework/Kerberos5/Sources/lib/crypto/nfold.c
  ;; this works
  (defun n-fold (octets n)
    "The horrific n-fold function as specifed in the rfc."
    (let ((inbytes (ash (* (length octets) 8) -3))
  