anchor.diff:                       finally (return-from decrypt-with-mode
                                  (let ((n-bytes-decrypted (- ciphertext-end ciphertext-start)))
                                    (setf (iv-position mode) iv-position)
  -                                 (values n-bytes-decrypted n-bytes-decrypted))))))))
  -  (define-mode-function))
  -
  -(macrolet ((mode-definition (cipher-specializer block-length-binding
  -                                                block-length-expr)
  +                                 (values n-bytes-decrypted n-bytes-decrypted)))))))
  +	   (message-length (cipher-specializer block-length-binding
  +					       block-length-expr)
                (declare (ignore block-length-binding block-length-expr))
                `(defmethod encrypted-message-length ((cipher ,cipher-specializer)
                                                      (mode ofb-mode) length
  
positive.code:                      (incf ciphertext-start ,block-length-expr)
                       finally (return-from encrypt-with-mode
                                 (let ((n-bytes-encrypted (- offset plaintext-start)))
                                   (values n-bytes-encrypted n-bytes-encrypted))))))))
    (define-mode-function))
  
  (macrolet ((mode-definition (cipher-specializer block-length-binding
                                                  block-length-expr)
               `(defmethod decrypt-with-mode ((cipher ,cipher-specializer)
                                              (mode ecb-mode) ciphertext plaintext
  
negative.code:                        (incf plaintext-start ,block-length-expr)
                         finally (return-from decrypt-with-mode
                                   (let ((n-bytes-decrypted (- offset ciphertext-start)))
                                     (values n-bytes-decrypted n-bytes-decrypted))))))))
  	   (message-length (cipher-specializer block-length-binding
  					       block-length-expr)
               `(defmethod encrypted-message-length ((cipher ,cipher-specializer)
                                                     (mode cbc-mode) length
                                                     &optional handle-final-block)
                  (declare (ignore handle-final-block))
                  (let ,block-length-binding
                    (* (truncate length ,block-length-expr) ,block-length-expr)))))
    (define-mode-function encrypt decrypt message-length))
  
  
  ;;; CFB mode
  
  (macrolet ((encrypt (cipher-specializer block-length-binding
                                                  block-length-expr)
             `(defmethod encrypt-with-mode ((cipher ,cipher-specializer)
                                            (mode cfb-mode) plaintext ciphertext
  