class JcePureCrypto extends CryptoPureApi with ShowUtil with NamedLogging
- Alphabetic
- By Inheritance
- JcePureCrypto
- NamedLogging
- ShowUtil
- ShowSyntax
- ToShowOps
- CryptoPureApi
- PasswordBasedEncryptionOps
- RandomOps
- HashOps
- HmacOps
- SigningOps
- EncryptionOps
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new JcePureCrypto(defaultSymmetricKeyScheme: SymmetricKeyScheme, defaultSigningAlgorithmSpec: SigningAlgorithmSpec, supportedSigningAlgorithmSpecs: NonEmpty[Set[SigningAlgorithmSpec]], defaultEncryptionAlgorithmSpec: EncryptionAlgorithmSpec, supportedEncryptionAlgorithmSpecs: NonEmpty[Set[EncryptionAlgorithmSpec]], defaultHashAlgorithm: HashAlgorithm, defaultPbkdfScheme: PbkdfScheme, loggerFactory: NamedLoggerFactory)
Type Members
- implicit class ShowAnyRefSyntax extends AnyRef
- Definition Classes
- ShowUtil
- implicit class ShowEitherSyntax[L, R] extends AnyRef
Enables the syntax
show"${myEither.showMerged}"
.Enables the syntax
show"${myEither.showMerged}"
.- Definition Classes
- ShowUtil
- implicit class ShowLengthLimitedStringSyntax extends StringOperators
- Definition Classes
- ShowUtil
- implicit class ShowLengthLimitedStringWrapperSyntax extends StringOperators
- Definition Classes
- ShowUtil
- implicit class ShowOptionSyntax[T] extends AnyRef
- Definition Classes
- ShowUtil
- implicit class ShowProductSyntax extends AnyRef
- Definition Classes
- ShowUtil
- Annotations
- @SuppressWarnings()
- implicit class ShowStringSyntax extends StringOperators
- Definition Classes
- ShowUtil
- implicit class ShowTraversableSyntax[T] extends AnyRef
Enables syntax like
show"Found several elements: ${myCollection.mkShow()}"
.Enables syntax like
show"Found several elements: ${myCollection.mkShow()}"
.- Definition Classes
- ShowUtil
- abstract class StringOperators extends AnyRef
Enables syntax like:
Enables syntax like:
show"This is a string: ${myString.doubleQuoted}"
and:
show"This is a hash: ${myHash.readableHash}"
- Definition Classes
- ShowUtil
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 createSymmetricKey(bytes: SecureRandomness, scheme: SymmetricKeyScheme): 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
- JcePureCrypto → EncryptionOps
- 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
- JcePureCrypto → EncryptionOps
- 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 decryptWithInternal[M](encrypted: AsymmetricEncrypted[M], privateKey: EncryptionPrivateKey)(deserialize: (ByteString) => Either[DeserializationError, M]): Either[DecryptionError, M]
- Attributes
- protected[crypto]
- Definition Classes
- JcePureCrypto → EncryptionOps
- def decryptWithPassword[M](pbencrypted: PasswordBasedEncrypted, password: String)(deserialize: (ByteString) => Either[DeserializationError, M]): Either[PasswordBasedEncryptionError, M]
- Definition Classes
- PasswordBasedEncryptionOps
- val defaultEncryptionAlgorithmSpec: EncryptionAlgorithmSpec
- Definition Classes
- JcePureCrypto → EncryptionOps
- val defaultHashAlgorithm: HashAlgorithm
- Definition Classes
- JcePureCrypto → HashOps
- def defaultHmacAlgorithm: HmacAlgorithm
- Definition Classes
- HmacOps
- val defaultPbkdfScheme: PbkdfScheme
- Definition Classes
- JcePureCrypto → PasswordBasedEncryptionOps
- val defaultSigningAlgorithmSpec: SigningAlgorithmSpec
- Definition Classes
- JcePureCrypto → SigningOps
- val defaultSymmetricKeyScheme: SymmetricKeyScheme
- Definition Classes
- JcePureCrypto → EncryptionOps
- 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
- JcePureCrypto → PasswordBasedEncryptionOps
- 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 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
- JcePureCrypto → EncryptionOps
- 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 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
- JcePureCrypto → 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
- implicit def errorLoggingContext(implicit traceContext: TraceContext): ErrorLoggingContext
- Attributes
- protected
- Definition Classes
- NamedLogging
- def generateRandomByteString(length: Int): ByteString
- Definition Classes
- RandomOps
- def generateRandomBytes(length: Int): Array[Byte]
- Attributes
- protected[crypto]
- Definition Classes
- JcePureCrypto → RandomOps
- def generateSecureRandomness(length: Int): SecureRandomness
- Definition Classes
- RandomOps
- def generateSymmetricKey(scheme: SymmetricKeyScheme): 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
- JcePureCrypto → EncryptionOps
- 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
- def logger: TracedLogger
- Attributes
- protected
- Definition Classes
- NamedLogging
- val loggerFactory: NamedLoggerFactory
- Definition Classes
- JcePureCrypto → NamedLogging
- implicit def namedLoggingContext(implicit traceContext: TraceContext): NamedLoggingContext
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def noTracingLogger: Logger
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- implicit final def showInterpolator(sc: StringContext): ShowInterpolator
- Definition Classes
- ShowSyntax
- implicit def showPretty[T](implicit arg0: Pretty[T]): Show[T]
Enables the syntax
show"This object is pretty: $myPrettyType"
.Enables the syntax
show"This object is pretty: $myPrettyType"
.- Definition Classes
- ShowUtil
- 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
- 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
- JcePureCrypto → SigningOps
- val supportedEncryptionAlgorithmSpecs: NonEmpty[Set[EncryptionAlgorithmSpec]]
- Definition Classes
- JcePureCrypto → EncryptionOps
- val supportedSigningAlgorithmSpecs: NonEmpty[Set[SigningAlgorithmSpec]]
- Definition Classes
- JcePureCrypto → SigningOps
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- implicit def toShow[A](target: A)(implicit tc: Show[A]): Ops[A]
- Definition Classes
- ToShowOps
- def toString(): String
- Definition Classes
- AnyRef → Any
- def verifySignature(bytes: ByteString, publicKey: SigningPublicKey, signature: Signature, usage: NonEmpty[Set[SigningKeyUsage]])(implicit traceContext: TraceContext): Either[SignatureCheckError, Unit]
- Definition Classes
- JcePureCrypto → SigningOps
- 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])