Our AEAD algebra *
Typeclass evidence for a construction that serves as encryption for Authenticated encryption with Additional Data
Typeclass evidence that some type A is also an Authenticated Encryption Cipher
Typeclass evidence that some type A is also an Authenticated Encryption Cipher
It does not inherit from cipher, to simply exist as an evidence typeclass
Our typeclass generalizing over AES, that lends itself to variable key sizes (128, 192 and 256 bits).
Our general typeclass over block ciphers
Our general cipher type class, to carry cipher name information, block
Our high level cipher algebra, wherein the implicit Scala cipher is placed as a type parameter for future libsodium algebra compatibility
Our high level cipher algebra, wherein the implicit Scala cipher is placed as a type parameter for future libsodium algebra compatibility
The cipher algorithm
Key type constructor
This trait propagates type information about a parametrized M being a symmetric cipher mode of operation
In our implementation, we will use the most secure tag size as defined by: http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf Iv length of 96 bits is recommended as per the spec on page 8