            clojure.lang.Keyword
            buddy.Arrays))
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Low level hmac engine.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (def ^{:doc "Default engine factories."
        :dynamic true}

                       :serpent #(SerpentEngine.)
                       :twofish #(TwofishEngine.)})

(defn resolve-engine
  "Given dynamic type engine, try resolve it to
  valid engine instance. By default accepts keywords
  and functions."

   (instance? IFn engine) (engine)
   (instance? BlockCipher engine) engine))

(defn- key->poly1305key
  "Noramalizes any length byte array key to poly1305
  formatted byte array key.

