anchor.diff:                      &key (plaintext-start 0) plaintext-end
                       (ciphertext-start 0)
                       handle-final-block)
  -  (encrypt-with-mode cipher (mode cipher) plaintext ciphertext
  -                     :plaintext-start plaintext-start
  -                     :plaintext-end plaintext-end
  -                     :ciphertext-start ciphertext-start
  -                     :handle-final-block handle-final-block))
  +  (let ((plaintext-end (or plaintext-end (length plaintext))))
  +    (encrypt-with-mode cipher (mode cipher) plaintext ciphertext
  +                       plaintext-start plaintext-end
  +                       ciphertext-start handle-final-block)))
   
   (defmethod decrypt (cipher ciphertext plaintext
                       &key (ciphertext-start 0) ciphertext-end
                       (plaintext-start 0)
                       handle-final-block)
  -  (decrypt-with-mode cipher (mode cipher) ciphertext plaintext
  -                     :ciphertext-start ciphertext-start
  -                     :ciphertext-end ciphertext-end
  -                     :plaintext-start plaintext-start
  -                     :handle-final-block handle-final-block))
  +  (let ((ciphertext-end (or ciphertext-end (length ciphertext))))
  +    (decrypt-with-mode cipher (mode cipher) ciphertext plaintext
  +                       ciphertext-start ciphertext-end
  +                       plaintext-start handle-final-block)))
   
   (defmethod encrypt-message (cipher msg &key (start 0) (end (length msg)))
     (let* ((length (- end start))
  
positive.code:                                                                   `,block-length-expr
                                                                    '*)) = (iv mode)
                         with offset = ciphertext-start
                         with ciphertext-end = (or ciphertext-end (length ciphertext))
                         with decrypt-function of-type function = (decrypt-function cipher)
                         while (<= offset (- ciphertext-end ,block-length-expr))
                         do (replace temp-block ciphertext :start1 0
  
negative.code:              `(defmethod encrypt-with-mode ((cipher ,cipher-specializer)
                                              (mode padded-cipher-mode)
                                              plaintext ciphertext
                                              plaintext-start plaintext-end
                                              ciphertext-start handle-final-block)
                  (declare (type simple-octet-vector plaintext ciphertext))
                  (declare (ignorable handle-final-block))
                  (let ,block-length-binding
  