 (defmethod derive-password :pbkdf2+sha256b
   [{:keys [alg password salt iterations] :as pwdparams}]
   (let [salt (codecs/->byte-array (or salt (nonce/random-bytes 12)))
-        iterations (or iterations (get *default-iterations* alg))
+        iterations (or iterations (get +iterations+ alg))
         pgen (doto (PKCS5S2ParametersGenerator. (SHA256Digest.))
                (.init password salt iterations))
         password (.getKey (.generateDerivedParameters pgen 160))]

(defmethod derive-password :pbkdf2+sha3_256
  [{:keys [alg password salt iterations] :as pwdparams}]
  (let [salt (codecs/->byte-array (or salt (nonce/random-bytes 12)))
        iterations (or iterations (get *default-iterations* alg))
        pgen (doto (PKCS5S2ParametersGenerator. (SHA3Digest. 256))
               (.init password salt iterations))
        password (.getKey (.generateDerivedParameters pgen 256))]

(defmethod derive-password :bcrypt+blake2b-512
  [{:keys [alg password salt iterations] :as pwdparams}]
  (let [salt (codecs/->byte-array (or salt (nonce/random-bytes 16)))
        iterations (or iterations (get +iterations+ alg))
        password (-> (hash/blake2b-512 password)
                     (BCrypt/generate salt iterations))]
    {:alg alg
