   """
   def encrypt(plaintext, key_tag \\ nil) do
     iv = :crypto.strong_rand_bytes(16)
-    key = get_key_config(key_tag) || default_key()
-    state = :crypto.stream_init(:aes_ctr, get_key_value(key), iv)
+    key = Cloak.Util.config(__MODULE__, key_tag) || default_key()
+    state = :crypto.stream_init(:aes_ctr, Cloak.Util.key_value(key), iv)
 
     {_state, ciphertext} = :crypto.stream_encrypt(state, to_string(plaintext))
     key.tag <> iv <> ciphertext
   end
 
   @doc """
-  Callback implementation for `Cloak.Cipher.decrypt`. Decrypts a value
+  Callback implementation for `Cloak.Cipher.decrypt/2`. Decrypts a value
   encrypted with AES in CTR mode.
 
   Uses the key tag to find the correct key for decryption, and the IV included

        default: true,
        tag: "AES",
        keys: [
          %{tag: <<1>>, key: :base64.decode("..."), default: true},
          %{tag: <<2>>, key: :base64.decode("..."), default: false}
        ]

  If you want to store your key in the environment variable, you can use

        %{tag: <<2>>, key: "new key", default: true}
      ]

  After this, your new key will automatically be used for all new encyption,
  while the old key will be used to decrypt legacy values.

  To migrate everything proactively to the new key, see the `mix cloak.migrate`
