aes_ctr v0.2.0 AesCtr
Summary
Functions
Returns a clear-text string decrypted with AES in CTR mode.
iex> clear_text = "my-clear-text"
iex> {:ok, aes_128_key} = AesCtr.generate_aes_key(:bytes)
iex> {:ok, cipher} = AesCtr.encrypt(clear_text, aes_128_key)
iex> {:ok, val} = AesCtr.decrypt(cipher, aes_128_key)
iex> assert(val == clear_text)
true
Encrypt a binary with AES in CTR mode.
iex> clear_text = "my-clear-text"
iex> {:ok, aes_128_key} = AesCtr.generate_aes_key(:bytes)
iex> {:ok, cipher} = AesCtr.encrypt(clear_text, aes_128_key)
iex> assert(is_bitstring(cipher_text))
true
Returns an AES key.
Accepts a key_format (:base64|:bytes) to determine type of key to produce
and key_length (128|192|256).
iex> {:ok, key} = AesCtr.generate_aes_key(:bytes)
iex> assert bit_size(key) == 128
true
iex> {:ok, key} = AesCtr.generate_aes_key(:bytes, 256)
iex> assert bit_size(key) == 256
true
iex> {:ok, key} = AesCtr.generate_aes_key(:base64)
iex> assert String.length(key) == 24
true
Returns a string of random where the length is equal to integer.
iex> {:ok, rand_bytes} = AesCtr.rand_bytes(16)
iex> assert(byte_size(rand_bytes) == 16)
true
iex> assert(bit_size(rand_bytes) == 128)
true
Functions
Returns a clear-text string decrypted with AES in CTR mode.
iex> clear_text = "my-clear-text"
iex> {:ok, aes_128_key} = AesCtr.generate_aes_key(:bytes)
iex> {:ok, cipher} = AesCtr.encrypt(clear_text, aes_128_key)
iex> {:ok, val} = AesCtr.decrypt(cipher, aes_128_key)
iex> assert(val == clear_text)
true
Encrypt a binary with AES in CTR mode.
iex> clear_text = "my-clear-text"
iex> {:ok, aes_128_key} = AesCtr.generate_aes_key(:bytes)
iex> {:ok, cipher} = AesCtr.encrypt(clear_text, aes_128_key)
iex> assert(is_bitstring(cipher_text))
true
Specs
generate_aes_key(atom, non_neg_integer) ::
{:ok, binary} |
{:error, binary}
Returns an AES key.
Accepts a key_format (:base64|:bytes) to determine type of key to produce
and key_length (128|192|256).
iex> {:ok, key} = AesCtr.generate_aes_key(:bytes)
iex> assert bit_size(key) == 128
true
iex> {:ok, key} = AesCtr.generate_aes_key(:bytes, 256)
iex> assert bit_size(key) == 256
true
iex> {:ok, key} = AesCtr.generate_aes_key(:base64)
iex> assert String.length(key) == 24
true
Specs
rand_bytes(integer) :: {:ok, binary}
Returns a string of random where the length is equal to integer.
iex> {:ok, rand_bytes} = AesCtr.rand_bytes(16)
iex> assert(byte_size(rand_bytes) == 16)
true
iex> assert(bit_size(rand_bytes) == 128)
true
iex> {:ok, rand_bytes} = AesCtr.rand_bytes(24)
iex> assert(byte_size(rand_bytes) == 24)
true
iex> assert(bit_size(rand_bytes) == 192)
true
iex> {:ok, rand_bytes} = AesCtr.rand_bytes(32)
iex> assert(byte_size(rand_bytes) == 32)
true
iex> assert(bit_size(rand_bytes) == 256)
true