anchor.diff:                   :type (integer 3 4))))
   
   (defmethod schedule-key ((cipher camellia) key)
  +  (declare (type (simple-array (unsigned-byte 8) (*)) key))
     (let ((round-keys (make-array 68 :element-type '(unsigned-byte 32)))
           (data (make-array 16 :element-type '(unsigned-byte 32))))
  +    (declare (type (simple-array (unsigned-byte 32) (*)) round-keys data)
  +             (dynamic-extent data))
       (ecase (length key)
         ((16)
          (dotimes (i 4)
  
positive.code:         (keys-start 4)
          (grand-rounds (grand-rounds context))
          (data (make-array 4 :element-type '(unsigned-byte 32))))
      (dotimes (i 4)
        (setf (aref data i) (logxor (ub32ref/be plaintext (+ plaintext-start (* 4 i)))
                                    (aref round-keys i))))
  
negative.code:                                   0 4 4 12 12 0 0 8 8 4 4 8 8 0 0 12 12)))
  
  (defun camellia-feistel (data data-start keys keys-start key-offset)
    (declare (type (simple-array (unsigned-byte 32) (*)) data keys)
             (type fixnum data-start keys-start key-offset)
             (optimize (speed 3) (space 0) (safety 0) (debug 0)))
    (macrolet ((sbox1 (n)
                 `(aref +camellia-sbox1+ (logand ,n 255)))
               (sbox2 (n)
  