tsec.cipher.symmetric

Members list

Type members

Classlikes

object AAD

Attributes

Source
package.scala
Supertypes
class Object
trait Matchable
class Any
Self type
AAD.type
trait AADEncryptor[F[_], A, K[_]] extends AuthEncryptor[F, A, K]

Attributes

Source
Encryptor.scala
Supertypes
trait AuthEncryptor[F, A, K]
trait Encryptor[F, A, K]
class Object
trait Matchable
class Any
trait AEADAPI[A, K[_]] extends AuthCipherAPI[A, K]

Our AEAD algebra *

Our AEAD algebra *

Attributes

Source
CipherAPI.scala
Supertypes
trait AuthCipherAPI[A, K]
trait CipherAPI[A, K]
class Object
trait Matchable
class Any
object AEADCipher

Attributes

Companion
trait
Source
package.scala
Supertypes
class Object
trait Matchable
class Any
Self type
AEADCipher.type
trait AEADCipher[A] extends AECipher[A]

Typeclass evidence for a construction that serves as encryption for Authenticated encryption with Additional Data

Typeclass evidence for a construction that serves as encryption for Authenticated encryption with Additional Data

Attributes

Companion
object
Source
package.scala
Supertypes
trait AECipher[A]
class Object
trait Matchable
class Any
Known subtypes
trait AES[A]
trait AECipher[A]

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

Attributes

Source
package.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait AEADCipher[A]
trait AES[A]
object AES

Attributes

Companion
trait
Source
package.scala
Supertypes
class Object
trait Matchable
class Any
Self type
AES.type
trait AES[A] extends BlockCipher[A], AEADCipher[A]

Our typeclass generalizing over AES, that lends itself to variable key sizes (128, 192 and 256 bits).

Our typeclass generalizing over AES, that lends itself to variable key sizes (128, 192 and 256 bits).

Attributes

Companion
object
Source
package.scala
Supertypes
trait AEADCipher[A]
trait AECipher[A]
trait BlockCipher[A]
trait Cipher[A]
class Object
trait Matchable
class Any
Show all
trait AuthCipherAPI[A, K[_]] extends CipherAPI[A, K]

Attributes

Source
CipherAPI.scala
Supertypes
trait CipherAPI[A, K]
class Object
trait Matchable
class Any
Known subtypes
trait AEADAPI[A, K]
trait AuthEncryptor[F[_], A, K[_]] extends Encryptor[F, A, K]

Attributes

Source
Encryptor.scala
Supertypes
trait Encryptor[F, A, K]
class Object
trait Matchable
class Any
Known subtypes
trait AADEncryptor[F, A, K]
object AuthTag

Attributes

Source
package.scala
Supertypes
class Object
trait Matchable
class Any
Self type
AuthTag.type
trait BlockCipher[A] extends Cipher[A]

Our general typeclass over block ciphers

Our general typeclass over block ciphers

Attributes

Source
package.scala
Supertypes
trait Cipher[A]
class Object
trait Matchable
class Any
Known subtypes
trait AES[A]
trait Cipher[A]

Our general cipher type class, to carry cipher name information, block

Our general cipher type class, to carry cipher name information, block

Attributes

Source
package.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait BlockCipher[A]
trait AES[A]
trait CipherAPI[A, K[_]]

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

Type parameters

A

The cipher algorithm

K

Key type constructor

Attributes

Source
CipherAPI.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait AuthCipherAPI[A, K]
trait AEADAPI[A, K]
trait CipherMode[M]

This trait propagates type information about a parametrized M being a symmetric cipher mode of operation

This trait propagates type information about a parametrized M being a symmetric cipher mode of operation

Attributes

Source
package.scala
Supertypes
class Object
trait Matchable
class Any
case class CipherText[A](content: Type[A], nonce: Type[A])

Attributes

Source
package.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
trait Encryptor[F[_], A, K[_]]

Attributes

Source
Encryptor.scala
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait AuthEncryptor[F, A, K]
trait AADEncryptor[F, A, K]
object Iv

Attributes

Source
package.scala
Supertypes
class Object
trait Matchable
class Any
Self type
Iv.type
trait IvGen[F[_], A]

Attributes

Source
IvGen.scala
Supertypes
class Object
trait Matchable
class Any
object PlainText

Attributes

Source
package.scala
Supertypes
class Object
trait Matchable
class Any
Self type
PlainText.type
object RawCipherText

Attributes

Source
package.scala
Supertypes
class Object
trait Matchable
class Any
Self type

Types

type AAD = Type

Attributes

Source
package.scala
type AuthTag[A] = Type[A]

Attributes

Source
package.scala
type Iv[A] = Type[A]

Attributes

Source
package.scala
type PlainText = Type

Attributes

Source
package.scala
type RawCipherText[A] = Type[A]

Attributes

Source
package.scala

Value members

Concrete fields

Attributes

Source
package.scala

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

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

Attributes

Source
package.scala