Packages

package crypto

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Package Members

  1. package admin
  2. package provider
  3. package store
  4. package v0
  5. package version

Type Members

  1. case class CertificateId(str: String255) extends LengthLimitedStringWrapper with PrettyPrinting with Product with Serializable
  2. class Crypto extends NamedLogging with FlagCloseable

    Wrapper class to simplify crypto dependency management

  3. trait CryptoKey extends Product with Serializable
  4. sealed trait CryptoKeyFormat extends Product with Serializable with PrettyPrinting
  5. trait CryptoKeyPair[PK <: PublicKey, SK <: PrivateKey] extends AnyRef
  6. trait CryptoKeyPairKey extends CryptoKey
  7. trait CryptoPrivateApi extends EncryptionPrivateOps with SigningPrivateOps with HmacPrivateOps
  8. trait CryptoPrivateStoreApi extends CryptoPrivateApi with EncryptionPrivateStoreOps with SigningPrivateStoreOps with HmacPrivateStoreOps
  9. trait CryptoPureApi extends EncryptionOps with SigningOps with HmacOps with HkdfOps with HashOps
  10. sealed trait DecryptionError extends Product with Serializable with PrettyPrinting
  11. class DomainSnapshotSyncCryptoApi extends SyncCryptoApi with NamedLogging

    crypto operations for a (domain,timestamp)

  12. class DomainSyncCryptoClient extends SyncCryptoClient with NamedLogging

    Crypto operations on a particular domain

  13. case class Encrypted[+M] extends NoCopy with Product with Serializable

    A tag to denote encrypted data.

  14. sealed trait EncryptionError extends Product with Serializable with PrettyPrinting
  15. sealed trait EncryptionKeyGenerationError extends Product with Serializable with PrettyPrinting
  16. final case class EncryptionKeyPair(publicKey: EncryptionPublicKey, privateKey: EncryptionPrivateKey) extends CryptoKeyPair[EncryptionPublicKey, EncryptionPrivateKey] with HasProtoV0[crypto.v0.EncryptionKeyPair] with NoCopy with Product with Serializable
  17. sealed trait EncryptionKeyScheme extends Product with Serializable with PrettyPrinting

    Key schemes for asymmetric/hybrid encryption.

  18. trait EncryptionOps extends AnyRef

    Encryption operations that do not require access to a private key store but operates with provided keys.

  19. final case class EncryptionPrivateKey extends PrivateKey with HasVersionedWrapper[VersionedEncryptionPrivateKey] with HasProtoV0[crypto.v0.EncryptionPrivateKey] with NoCopy with Product with Serializable
  20. trait EncryptionPrivateOps extends AnyRef

    Encryption operations that require access to stored private keys.

  21. trait EncryptionPrivateStoreOps extends EncryptionPrivateOps

    A default implementation with a private key store

  22. case class EncryptionPublicKey extends PublicKey with HasVersionedWrapper[VersionedEncryptionPublicKey] with PrettyPrinting with HasProtoV0[crypto.v0.EncryptionPublicKey] with NoCopy with Product with Serializable
  23. case class EncryptionPublicKeyWithName(publicKey: EncryptionPublicKey, name: Option[KeyName]) extends PublicKeyWithName with Product with Serializable
  24. final case class Fingerprint extends LengthLimitedStringWrapper with PrettyPrinting with NoCopy with Product with Serializable

    a human readable fingerprint of a key that serves as a unique identifier

  25. case class Hash extends HasCryptographicEvidence with Ordered[Hash] with PrettyPrinting with NoCopy with Product with Serializable
  26. sealed abstract class HashAlgorithm extends AnyRef

    A Multi-hash compatible description of a hash algorithm

  27. trait HashBuilder extends AnyRef

    The methods of HashBuilder change its internal state and return this for convenience.

    The methods of HashBuilder change its internal state and return this for convenience.

    Requirements for all implementations:

    For any HashBuilder hb, it is computationally infeasible to find two sequences as1 and as2 of calls to add such that the concatenation of as1 differs from the concatenation as2, yet their computed hashes are the same, i.e., as1.foldLeft(hb)((hb, a) => hb.add(a)).finish is the same as as2.foldLeft(hb)((hb, a) => hb.add(a)).finish.

  28. trait HashOps extends AnyRef

    Trait only needed if we want to make the default algorithm configurable

  29. final class HashPurpose extends AnyVal

    The purpose of a hash serves to avoid hash collisions due to equal encodings for different objects.

    The purpose of a hash serves to avoid hash collisions due to equal encodings for different objects. It is in general not possible to derive the purpose of the hash from the hash alone.

    Whenever a hash is computed using HashOps, a HashPurpose must be specified that gets included in the hash. To reliably prevent hash collisions, every HashPurpose object should be used only in a single place.

    All HashPurpose objects must be created through the HashPurpose$.apply method, which checks that the id is fresh.

  30. sealed trait HkdfError extends Product with Serializable with PrettyPrinting
  31. final class HkdfInfo extends AnyVal

    Ensures unique values of "info" HKDF parameter for the different usages of the KDF.

    Ensures unique values of "info" HKDF parameter for the different usages of the KDF. E.g., we may have one purpose for deriving the encryption key for a view from a random value, and another one for deriving the random values used for the subviews.

  32. trait HkdfOps extends AnyRef

    The expansion step of the HMAC-based key derivation function (HKDF) as defined in: https://tools.ietf.org/html/rfc5869

  33. final case class Hmac extends HasProtoV0[crypto.v0.Hmac] with PrettyPrinting with NoCopy with Product with Serializable
  34. sealed abstract class HmacAlgorithm extends PrettyPrinting
  35. sealed trait HmacError extends Product with Serializable with PrettyPrinting
  36. trait HmacOps extends AnyRef

    pure HMAC operations that do not require access to external keys.

  37. trait HmacPrivateOps extends HmacOps

    HMAC operations that require access to private key store and knowledge about the current entity to key association

  38. trait HmacPrivateStoreOps extends HmacPrivateOps

    A default implementation with a private key store for the HMAC secret.

  39. final case class HmacSecret extends NoCopy with PrettyPrinting with Product with Serializable
  40. sealed trait JavaKeyConversionError extends Product with Serializable with PrettyPrinting
  41. trait JavaKeyConverter extends AnyRef
  42. case class KeyName(str: String300) extends LengthLimitedStringWrapper with Product with Serializable
  43. sealed trait KeyPurpose extends Product with Serializable with PrettyPrinting
  44. class LtHash16 extends AnyRef

    A running digest of a set of bytes, where elements can be added and removed.

    A running digest of a set of bytes, where elements can be added and removed.

    Note that it's the caller's responsibility to ensure that the collection defined by the sequence of additions/removals is really a set. In particular: 1. the digest accepts a call to remove before the corresponding call to add 2. the digest will change if the same element is added twice. Note, however, that the digest rolls over if you add an element 216 times; i.e., taking a digest d, then adding the same element 216 times results in d again.

  45. final case class Nonce extends NoCopy with HasCryptographicEvidence with Product with Serializable
  46. trait PrivateKey extends CryptoKeyPairKey
  47. trait PublicKey extends CryptoKeyPairKey
  48. trait PublicKeyWithName extends Product with Serializable with HasProtoV0[crypto.v0.PublicKeyWithName]
  49. final case class Salt extends HasProtoV0[crypto.v0.Salt] with PrettyPrinting with NoCopy with Product with Serializable

    A (pseudo-)random salt used for hashing to prevent pre-computed hash attacks.

    A (pseudo-)random salt used for hashing to prevent pre-computed hash attacks.

    The algorithm that was used to generate/derive the salt is kept to support the verification of the salt generation.

  50. sealed trait SaltAlgorithm extends Product with Serializable with PrettyPrinting

    Indicates the algorithm used to generate and derive salts.

  51. sealed trait SaltError extends Product with Serializable with PrettyPrinting
  52. case class SecureRandomness extends HasCryptographicEvidence with NoCopy with Product with Serializable

    The class is a tag that denotes a byte string as a securely generated random value.

    The class is a tag that denotes a byte string as a securely generated random value.

    Not an AnyVal as we also want it to be a serializable value such that we can encrypt it.

  53. case class Signature extends HasVersionedWrapper[VersionedSignature] with HasProtoV0[crypto.v0.Signature] with PrettyPrinting with NoCopy with Product with Serializable
  54. sealed trait SignatureCheckError extends Product with Serializable with PrettyPrinting
  55. sealed trait SignatureFormat extends Product with Serializable
  56. sealed trait SigningError extends Product with Serializable with PrettyPrinting
  57. sealed trait SigningKeyGenerationError extends Product with Serializable with PrettyPrinting
  58. final case class SigningKeyPair(publicKey: SigningPublicKey, privateKey: SigningPrivateKey) extends CryptoKeyPair[SigningPublicKey, SigningPrivateKey] with HasProtoV0[crypto.v0.SigningKeyPair] with NoCopy with Product with Serializable
  59. sealed trait SigningKeyScheme extends Product with Serializable with PrettyPrinting
  60. trait SigningOps extends AnyRef

    Signing operations that do not require access to a private key store but operates with provided keys.

  61. final case class SigningPrivateKey extends PrivateKey with HasProtoV0[crypto.v0.SigningPrivateKey] with HasVersionedWrapper[VersionedSigningPrivateKey] with NoCopy with Product with Serializable
  62. trait SigningPrivateOps extends AnyRef

    Signing operations that require access to stored private keys.

  63. trait SigningPrivateStoreOps extends SigningPrivateOps

    A default implementation with a private key store

  64. case class SigningPublicKey extends PublicKey with HasVersionedWrapper[VersionedSigningPublicKey] with PrettyPrinting with HasProtoV0[crypto.v0.SigningPublicKey] with NoCopy with Product with Serializable
  65. case class SigningPublicKeyWithName(publicKey: SigningPublicKey, name: Option[KeyName]) extends PublicKeyWithName with Product with Serializable
  66. final case class SymmetricKey extends CryptoKey with MemoizedEvidence with HasVersionedWrapper[VersionedSymmetricKey] with NoCopy with Product with Serializable
  67. sealed trait SymmetricKeyScheme extends Product with Serializable with PrettyPrinting

    Key schemes for symmetric encryption.

  68. trait SyncCryptoApi extends AnyRef

    impure part of the crypto api with access to private key store and knowledge about the current entity to key assoc

  69. class SyncCryptoApiProvider extends AnyRef

    Crypto API Provider class

    Crypto API Provider class

    The utility class combines the information provided by the IPSclient, the pure crypto functions and the signing and decryption operations on a private key vault in order to automatically resolve the right keys to use for signing / decryption based on domain and timestamp.

  70. trait SyncCryptoClient extends TopologyClientApi[SyncCryptoApi]
  71. sealed trait SyncCryptoError extends Product with Serializable with PrettyPrinting
  72. final case class X509Certificate(cert: java.security.cert.X509Certificate) extends Product with Serializable

    A Scala wrapper for Java X509 Certificates

  73. case class X509CertificateDer extends NoCopy with Product with Serializable

    A X509 Certificate serialized in DER format.

  74. sealed trait X509CertificateEncoder[Encoding] extends AnyRef
  75. sealed trait X509CertificateError extends Product with Serializable
  76. class X509CertificateGenerator extends NamedLogging
  77. case class X509CertificatePem extends NoCopy with Product with Serializable

    A X509 Certificate serialized in PEM format.

Value Members

  1. object Blake2xb

    Derives Blake2xb on top of Blake2b as defined in: https://www.blake2.net/blake2x.pdf In particular, the parameters for Blake2b invocations are as specified in that document

  2. object CertificateId extends LengthLimitedStringWrapperCompanion[String255, CertificateId] with Serializable
  3. object CryptoFactory
  4. object CryptoHandshakeValidator
  5. object CryptoKeyFormat extends Serializable
  6. object CryptoKeyPair
  7. object DecryptionError extends Serializable
  8. object Encrypted extends Serializable
  9. object EncryptionError extends Serializable
  10. object EncryptionKeyGenerationError extends Serializable
  11. object EncryptionKeyPair extends Serializable
  12. object EncryptionKeyScheme extends Serializable
  13. object EncryptionPrivateKey extends HasVersionedWrapperCompanion[VersionedEncryptionPrivateKey, EncryptionPrivateKey] with Serializable
  14. object EncryptionPublicKey extends HasVersionedWrapperCompanion[VersionedEncryptionPublicKey, EncryptionPublicKey] with Serializable
  15. object EncryptionPublicKeyWithName extends Serializable
  16. object Fingerprint extends Serializable
  17. object Hash extends Serializable
  18. object HashAlgorithm
  19. object HashPurpose
  20. object HkdfError extends Serializable
  21. object HkdfInfo
  22. object Hmac extends Serializable
  23. object HmacAlgorithm
  24. object HmacError extends Serializable
  25. object HmacSecret extends Serializable
  26. object JavaKeyConversionError extends Serializable
  27. object JavaKeyConverter
  28. object KeyName extends LengthLimitedStringWrapperCompanion[String300, KeyName] with Serializable
  29. object KeyPurpose extends Serializable
  30. object LtHash16
  31. object Nonce extends Serializable
  32. object PrivateKey extends Serializable
  33. object PseudoRandom

    Pseudo randomness, MUST NOT be used for security-relevant operations.

  34. object PublicKey extends Serializable
  35. object PublicKeyWithName extends Serializable
  36. object Salt extends Serializable
  37. object SaltAlgorithm extends Serializable
  38. object SaltError extends Serializable
  39. object SecureRandomness extends Serializable

    Cryptographically-secure randomness

  40. object Signature extends HasVersionedWrapperCompanion[VersionedSignature, Signature] with Serializable
  41. object SignatureCheckError extends Serializable
  42. object SignatureFormat extends Serializable
  43. object SigningError extends Serializable
  44. object SigningKeyGenerationError extends Serializable
  45. object SigningKeyPair extends Serializable
  46. object SigningKeyScheme extends Serializable

    Schemes for signature keys.

    Schemes for signature keys.

    Ed25519 is the best performing curve and should be the default. EC-DSA is slower than Ed25519 but has better compatibility with other systems (such as CCF).

  47. object SigningPrivateKey extends HasVersionedWrapperCompanion[VersionedSigningPrivateKey, SigningPrivateKey] with Serializable
  48. object SigningPublicKey extends HasVersionedWrapperCompanion[VersionedSigningPublicKey, SigningPublicKey] with Serializable
  49. object SigningPublicKeyWithName extends Serializable
  50. object SymmetricKey extends Serializable
  51. object SymmetricKeyScheme extends Serializable
  52. object SyncCryptoError extends Serializable
  53. object X509Certificate extends Serializable
  54. object X509CertificateDer extends X509CertificateEncoder[X509CertificateDer] with Serializable
  55. object X509CertificateError extends Serializable
  56. object X509CertificatePem extends X509CertificateEncoder[X509CertificatePem] with Serializable

Ungrouped