Packages

package recrypt

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. recrypt
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Package Members

  1. package internal

    Internal is a namespace that houses all the internal types and algorithms for the implementation.

    Internal is a namespace that houses all the internal types and algorithms for the implementation. This is not meant to be used by public consumers of recrypt.

  2. package syntax

Type Members

  1. class Api extends CoreApi

    An instance of the recrypt Api.

  2. sealed abstract class ApiError extends AnyRef
  3. type AuthHash = recrypt.internal.AuthHash
  4. class CoreApi extends AnyRef

    A version of the API that does not have scala specific features in it.

  5. final case class DecryptedSymmetricKey(bytes: ByteVector) extends Product with Serializable
  6. type Ed25519Signing = recrypt.internal.Ed25519Signing
  7. implicit class EitherSyntax[A] extends AnyRef
  8. final case class EncryptedElement(bytes: ByteVector) extends Product with Serializable

    Should be 384 bytes, an FP12Elem.

  9. final case class EncryptedMessage(bytes: ByteVector) extends Product with Serializable

    Newtype for an encrypted plaintext, which is an FP12Elem

  10. final case class EncryptedOnceValue(ephemeralPublicKey: PublicKey, encryptedMessage: EncryptedMessage, authHash: AuthHash, publicSigningKey: PublicSigningKey, signature: Signature) extends EncryptedValue with Product with Serializable
  11. sealed abstract class EncryptedValue extends AnyRef

    ADT defining a value which is Encrypted.

    ADT defining a value which is Encrypted. If it's only been encrypted once, it'll be an EncryptedOnceValue, if it's been transformed (delegated) to another person then it'll be a TransformedValue.

  12. type Hashable[A] = recrypt.internal.Hashable[A]
  13. sealed abstract case class HashedValue extends Product with Serializable

    A value (which is a point on the elliptic curve in the extension field) and is valid by construction.

    A value (which is a point on the elliptic curve in the extension field) and is valid by construction. bytes - Concatenated bytes of the 2 FP2Elems that make up the point.

  14. final case class InvalidHashedValue(message: String) extends ApiError with Product with Serializable
  15. final case class InvalidTransformKey(message: String) extends ApiError with Product with Serializable
  16. final case class Plaintext(bytes: ByteVector) extends Product with Serializable

    DecryptedSymmetricKey, which is an FP12Elem.

  17. case class PrivateKey(bytes: ByteVector) extends Product with Serializable
  18. type PrivateSigningKey = recrypt.internal.PrivateSigningKey
  19. sealed abstract case class PublicKey extends Product with Serializable

    Public key which can be encrypted to.

    Public key which can be encrypted to. Ideally this would just be the internal public key, but for now that is backed by AffinePoint, which means it's a pain.

    This is guarenteed to be a valid point on the curve by construction.

  20. type PublicSigningKey = recrypt.internal.PublicSigningKey
  21. final case class SchnorrMessage(bytes: ByteVector) extends Product with Serializable
  22. sealed abstract case class SchnorrSignature extends Product with Serializable

    Functions and types for working with the Schnorr signature.

    Functions and types for working with the Schnorr signature. Similar to the Ed25519 signing, but we use our existing PRE public and private keys for Schnorr signing and verification, so this type only includes the Signature.

    A Schnorr signature is actually two parts, r and s. Each of them will fit into a 32-byte ByteVector; r will convert to a BigInt in the range [1 .. Curve.Order), and s will convert to a BigInt in the range [0 .. Curve.Order). But we keep that detail internal; externally, the signature is just a single 64-byte ByteVector.

  23. type Signature = recrypt.internal.Signature
  24. final case class TransformBlock(publicKey: PublicKey, encryptedTempKey: EncryptedElement, randomTransformPublicKey: PublicKey, randomTransformEncryptedTempKey: EncryptedElement) extends Product with Serializable
  25. final case class TransformKey(ephemeralPublicKey: PublicKey, toPublicKey: PublicKey, encryptedTempKey: EncryptedElement, hashedTempKey: HashedValue, publicSigningKey: PublicSigningKey, signature: Signature) extends Product with Serializable
  26. final case class TransformedValue(ephemeralPublicKey: PublicKey, encryptedMessage: EncryptedMessage, authHash: AuthHash, transformBlocks: NonEmptyVector[TransformBlock], publicSigningKey: PublicSigningKey, signature: Signature) extends EncryptedValue with Product with Serializable

Value Members

  1. val AuthHash: recrypt.internal.AuthHash.type
  2. val Ed25519Signing: recrypt.internal.Ed25519Signing.type
  3. val Hashable: recrypt.internal.Hashable.type
  4. val PrivateSigningKey: recrypt.internal.PrivateSigningKey.type
  5. val PublicSigningKey: recrypt.internal.PublicSigningKey.type
  6. val Signature: recrypt.internal.Signature.type
  7. object CoreApi
  8. object EncryptedElement extends Serializable
  9. object HashedValue extends Serializable
  10. case object InvalidPublicKey extends ApiError with Product with Serializable
  11. object Plaintext extends Serializable
  12. object PrivateKey extends Serializable
  13. object PublicKey extends Serializable
  14. object SchnorrMessage extends Serializable
  15. object SchnorrSignature extends Serializable
  16. object Sha256 extends (ByteVector) => ByteVector
  17. object TransformKey extends Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped