Awesome
Hint for users of OTP >= 20
Since OTP 20 the AES-CMAC is in :crypto
You can simply use for example:
:crypto.cmac :"aes_cbc128", <<0x2b7e1516_28aed2a6_abf71588_09cf4f3c::128>>,<<0x6bc1bee2_2e409f96_e93d7e11_7393172a_ae2d8a57_1e03ac9c_9eb76fac_45af8e51_30c81c46_a35ce411::320>>
See in Erlang sources
Aescmac
Implementation of rfc4493 in elixir using :crypto from erlang for aes.
All tests from rfc4493 passing.
Aescmac.aes_cmac takes two binaries, the key and the message, where the key has to be 128bit
Usage example:
# Aescmac.aes_cmac(key, message)
<<0x070a16b4_6b4d4144_f79bdd9d_d04a287c::128>> = Aescmac.aes_cmac(<<0x2b7e1516_28aed2a6_abf71588_09cf4f3c::128>>,<<0x6bc1bee2_2e409f96_e93d7e11_7393172a::128>>)
Documentation
Docs can be found at hexdocs.pm.
Installation
Available in Hex, the package can be installed with:
- Add aescmac to your list of dependencies in
mix.exs
:
def deps do
[{:aescmac, "~> 0.0.1"}]
end
- Ensure aescmac is started before your application:
def application do
[applications: [:aescmac]]
end