package symmetric
- Source
- package.scala
- Alphabetic
- By Inheritance
- symmetric
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- type AAD = symmetric.AAD.Type
- trait AADEncryptor[F[_], A, K[_]] extends AuthEncryptor[F, A, K]
-
trait
AEADAPI[A, K[_]] extends AuthCipherAPI[A, K]
Our AEAD algebra *
-
trait
AEADCipher[A] extends AECipher[A]
Typeclass evidence for a construction that serves as encryption for Authenticated encryption with Additional Data
-
trait
AECipher[A] extends AnyRef
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
-
trait
AES[A] extends BlockCipher[A] with AEADCipher[A]
Our typeclass generalizing over AES, that lends itself to variable key sizes (128, 192 and 256 bits).
- trait AuthCipherAPI[A, K[_]] extends CipherAPI[A, K]
- trait AuthEncryptor[F[_], A, K[_]] extends Encryptor[F, A, K]
- type AuthTag[A] = symmetric.AuthTag.Type[A]
-
trait
BlockCipher[A] extends Cipher[A]
Our general typeclass over block ciphers
-
trait
Cipher[A] extends AnyRef
Our general cipher type class, to carry cipher name information, block
-
trait
CipherAPI[A, K[_]] extends AnyRef
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
- A
The cipher algorithm
- K
Key type constructor
-
trait
CipherMode[M] extends AnyRef
This trait propagates type information about a parametrized M being a symmetric cipher mode of operation
- case class CipherText[A](content: RawCipherText[A], nonce: Iv[A]) extends Product with Serializable
- trait Encryptor[F[_], A, K[_]] extends AnyRef
- type Iv[A] = symmetric.Iv.Type[A]
- trait IvGen[F[_], A] extends AnyRef
- type PlainText = symmetric.PlainText.Type
- type RawCipherText[A] = symmetric.RawCipherText.Type[A]
Value Members
- val NISTIvLengthBytes: Int
-
val
NISTTagLengthBits: Int
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
- object AAD extends ArrayNewt
- object AEADCipher
- object AES
- object AuthTag extends ArrayHKNewt
- object Iv extends ArrayHKNewt
- object PlainText extends ArrayNewt
- object RawCipherText extends ArrayHKNewt