trait CryptoPureApi extends EncryptionOps with SigningOps with HmacOps with HashOps with RandomOps with PasswordBasedEncryptionOps
- Alphabetic
- By Inheritance
- CryptoPureApi
- PasswordBasedEncryptionOps
- RandomOps
- HashOps
- HmacOps
- SigningOps
- EncryptionOps
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def createSymmetricKey(bytes: SecureRandomness, scheme: SymmetricKeyScheme = defaultSymmetricKeyScheme): Either[EncryptionKeyCreationError, SymmetricKey]
Creates a symmetric key with the specified scheme for the given randomness.
Creates a symmetric key with the specified scheme for the given randomness.
- Definition Classes
- EncryptionOps
- abstract def decryptWith[M](encrypted: Encrypted[M], symmetricKey: SymmetricKey)(deserialize: (ByteString) => Either[DeserializationError, M]): Either[DecryptionError, M]
Decrypts a message encrypted using
encryptWith
Decrypts a message encrypted using
encryptWith
- Definition Classes
- EncryptionOps
- abstract def decryptWithInternal[M](encrypted: AsymmetricEncrypted[M], privateKey: EncryptionPrivateKey)(deserialize: (ByteString) => Either[DeserializationError, M]): Either[DecryptionError, M]
- Attributes
- protected[crypto]
- Definition Classes
- EncryptionOps
- abstract def defaultEncryptionAlgorithmSpec: EncryptionAlgorithmSpec
- Definition Classes
- EncryptionOps
- abstract def defaultHashAlgorithm: HashAlgorithm
- Definition Classes
- HashOps
- abstract def defaultPbkdfScheme: PbkdfScheme
- Attributes
- protected[crypto]
- Definition Classes
- PasswordBasedEncryptionOps
- abstract def defaultSigningAlgorithmSpec: SigningAlgorithmSpec
- Definition Classes
- SigningOps
- abstract def defaultSymmetricKeyScheme: SymmetricKeyScheme
- Definition Classes
- EncryptionOps
- abstract def deriveSymmetricKey(password: String, symmetricKeyScheme: SymmetricKeyScheme, pbkdfScheme: PbkdfScheme, saltO: Option[SecureRandomness]): Either[PasswordBasedEncryptionError, PasswordBasedEncryptionKey]
Derive a symmetric encryption key from a given password.
Derive a symmetric encryption key from a given password.
- password
The password used to derive the key
- symmetricKeyScheme
The intended symmetric encryption scheme for the password-based encryption.
- pbkdfScheme
The password-based key derivation function (PBKDF) scheme to derive a key from the password.
- saltO
The optional salt used for the key derivation. If none is a given a random salt is generated.
- Definition Classes
- PasswordBasedEncryptionOps
- abstract def encryptDeterministicWith[M <: HasToByteString](message: M, publicKey: EncryptionPublicKey, encryptionAlgorithmSpec: EncryptionAlgorithmSpec = defaultEncryptionAlgorithmSpec)(implicit traceContext: TraceContext): Either[EncryptionError, AsymmetricEncrypted[M]]
Deterministically encrypts the given bytes using the given public key.
Deterministically encrypts the given bytes using the given public key. This is unsafe for general use and it's only used to encrypt the decryption key of each view
- Definition Classes
- EncryptionOps
- abstract def encryptWith[M <: HasToByteString](message: M, publicKey: EncryptionPublicKey, encryptionAlgorithmSpec: EncryptionAlgorithmSpec = defaultEncryptionAlgorithmSpec): Either[EncryptionError, AsymmetricEncrypted[M]]
Encrypts the bytes of the serialized message using the given public key.
Encrypts the bytes of the serialized message using the given public key.
- Definition Classes
- EncryptionOps
- abstract def generateRandomBytes(length: Int): Array[Byte]
- abstract def generateSymmetricKey(scheme: SymmetricKeyScheme = defaultSymmetricKeyScheme): Either[EncryptionKeyGenerationError, SymmetricKey]
Generates and returns a random symmetric key using the specified scheme.
Generates and returns a random symmetric key using the specified scheme.
- Definition Classes
- EncryptionOps
- abstract def signBytes(bytes: ByteString, signingKey: SigningPrivateKey, usage: NonEmpty[Set[SigningKeyUsage]], signingAlgorithmSpec: SigningAlgorithmSpec = defaultSigningAlgorithmSpec)(implicit traceContext: TraceContext): Either[SigningError, Signature]
Preferably, we sign a hash; however, we also allow signing arbitrary bytes when necessary.
Preferably, we sign a hash; however, we also allow signing arbitrary bytes when necessary.
- Attributes
- protected[crypto]
- Definition Classes
- SigningOps
- abstract def supportedEncryptionAlgorithmSpecs: NonEmpty[Set[EncryptionAlgorithmSpec]]
- Definition Classes
- EncryptionOps
- abstract def supportedSigningAlgorithmSpecs: NonEmpty[Set[SigningAlgorithmSpec]]
- Definition Classes
- SigningOps
- abstract def verifySignature(bytes: ByteString, publicKey: SigningPublicKey, signature: Signature, usage: NonEmpty[Set[SigningKeyUsage]])(implicit traceContext: TraceContext): Either[SignatureCheckError, Unit]
- Attributes
- protected[crypto]
- Definition Classes
- SigningOps
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def build(purpose: HashPurpose, algorithm: HashAlgorithm = defaultHashAlgorithm): HashBuilder
Creates a HashBuilder for computing a hash with the given purpose.
Creates a HashBuilder for computing a hash with the given purpose. For different purposes
purpose1
andpurpose2
, all implementations must ensure that it is computationally infeasible to find a sequencebs
of com.google.protobuf.ByteStrings such thatbs.foldLeft(hashBuilder(purpose1))((b, hb) => hb.add(b)).finish
andbs.foldLeft(hashBuilder(purpose2))((b, hb) => hb.add(b)).finish
yield the same hash.- Definition Classes
- HashOps
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def decryptWith[M](encrypted: AsymmetricEncrypted[M], privateKey: EncryptionPrivateKey)(deserialize: (ByteString) => Either[DeserializationError, M]): Either[DecryptionError, M]
Decrypts a message encrypted using
encryptWith
Decrypts a message encrypted using
encryptWith
- Definition Classes
- EncryptionOps
- def decryptWithPassword[M](pbencrypted: PasswordBasedEncrypted, password: String)(deserialize: (ByteString) => Either[DeserializationError, M]): Either[PasswordBasedEncryptionError, M]
- Definition Classes
- PasswordBasedEncryptionOps
- def defaultHmacAlgorithm: HmacAlgorithm
- Definition Classes
- HmacOps
- def digest(purpose: HashPurpose, bytes: ByteString, algorithm: HashAlgorithm = defaultHashAlgorithm): Hash
Convenience method for
build(purpose).addWithoutLengthPrefix(bytes).finish
Convenience method for
build(purpose).addWithoutLengthPrefix(bytes).finish
- Definition Classes
- HashOps
- def encryptSymmetricWith[M <: HasToByteString](message: M, symmetricKey: SymmetricKey): Either[EncryptionError, Encrypted[M]]
Encrypts the bytes of the serialized message using the given symmetric key.
Encrypts the bytes of the serialized message using the given symmetric key. Where the message embedded protocol version determines the message serialization.
- Definition Classes
- EncryptionOps
- def encryptWithPassword(message: ByteString, password: String, symmetricKeyScheme: SymmetricKeyScheme = defaultSymmetricKeyScheme, pbkdfScheme: PbkdfScheme = defaultPbkdfScheme): Either[PasswordBasedEncryptionError, PasswordBasedEncrypted]
- Definition Classes
- PasswordBasedEncryptionOps
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def generateRandomByteString(length: Int): ByteString
- Definition Classes
- RandomOps
- def generateSecureRandomness(length: Int): SecureRandomness
- Definition Classes
- RandomOps
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hmacWithSecret(secret: HmacSecret, message: ByteString, algorithm: HmacAlgorithm = defaultHmacAlgorithm): Either[HmacError, Hmac]
- Definition Classes
- HmacOps
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def sign(hash: Hash, signingKey: SigningPrivateKey, usage: NonEmpty[Set[SigningKeyUsage]], signingAlgorithmSpec: SigningAlgorithmSpec = defaultSigningAlgorithmSpec)(implicit traceContext: TraceContext): Either[SigningError, Signature]
Signs the given hash using the private signing key.
Signs the given hash using the private signing key.
- usage
the usage we intend to enforce. If multiple usages are enforced, at least one of them must be satisfied. In other words, the provided signing key's usage must intersect with the specified usages.
- Definition Classes
- SigningOps
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def verifySignature(hash: Hash, publicKey: SigningPublicKey, signature: Signature, usage: NonEmpty[Set[SigningKeyUsage]])(implicit traceContext: TraceContext): Either[SignatureCheckError, Unit]
Confirms if the provided signature is a valid signature of the payload using the public key
Confirms if the provided signature is a valid signature of the payload using the public key
- Definition Classes
- SigningOps
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])