SessionTransportTransformerEncrypt

class SessionTransportTransformerEncrypt(encryptionKeySpec: SecretKeySpec, signKeySpec: SecretKeySpec, ivGenerator: (size: Int) -> ByteArray, encryptAlgorithm: String, signAlgorithm: String) : SessionTransportTransformer

Session transformer that encrypts/decrypts the input.

Where the input is either a session contents or a previous transformation.

It encrypts/decrypts the input with an encryptAlgorithm and an encryptionKeySpec and includes an authenticated MAC (Message Authentication Code) hash with signAlgorithm and a signKeySpec and includes an IV (Initialization Vector) that is generated by an ivGenerator by default secure random bytes.

By default it uses AES for encryption and HmacSHA256 for authenticating.

You have to provide keys of compatible sizes: 16, 24 and 32 for AES encryption. For HmacSHA256 it is recommended a key of 32 bytes.

Constructors

Link copied to clipboard
fun SessionTransportTransformerEncrypt(encryptionKey: ByteArray, signKey: ByteArray, ivGenerator: (size: Int) -> ByteArray = { size -> ByteArray(size).apply { SecureRandom().nextBytes(this) } }, encryptAlgorithm: String = "AES", signAlgorithm: String = "HmacSHA256")
Link copied to clipboard
fun SessionTransportTransformerEncrypt(encryptionKeySpec: SecretKeySpec, signKeySpec: SecretKeySpec, ivGenerator: (size: Int) -> ByteArray = { size -> ByteArray(size).apply { SecureRandom().nextBytes(this) } }, encryptAlgorithm: String = encryptionKeySpec.algorithm, signAlgorithm: String = signKeySpec.algorithm)

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
open override fun transformRead(transportValue: String): String?

Un-apply a transformation for transportValue representing a transformed session. Returns null if it fails.

Link copied to clipboard
open override fun transformWrite(transportValue: String): String

Apply a transformation for transportValue representing a session.

Properties

Link copied to clipboard
val encryptAlgorithm: String

is an encryption algorithm name

Link copied to clipboard
val encryptionKeySize: Int

Encryption key size in bytes

Link copied to clipboard
val encryptionKeySpec: SecretKeySpec

is a secret key that is used for encryption

Link copied to clipboard
val ivGenerator: (size: Int) -> ByteArray

is a function that generates input vectors

Link copied to clipboard
val signAlgorithm: String

is a signing algorithm name

Link copied to clipboard
val signKeySpec: SecretKeySpec

is a secret key that is used for signing