class

Message::Encryptor

Inherits Reference < Object

Constants

KEY_LENGTH = 32

AES-256 requires a 32-byte key

Constructors

new(secret : String, cipher_algorithm : String = "aes-256-cbc", digest : Symbol = :sha256, fallback_digest : Symbol | Nil = :sha1, use_kdf : Bool = false, kdf_iterations : Int32 = 100000, kdf_salt : String = "session_kdf_salt")
Source

Instance methods

decrypt(value : Bytes) : Bytes
Source
encrypt(value) : Bytes
Source
encrypt_and_sign(value : Slice(UInt8)) : String

Encrypt and sign a message. We need to sign the message in order to avoid padding attacks. Reference: http://www.limited-entropy.com/padding-oracle-attacks.

Source
encrypt_and_sign(value : String) : String
Source
verifier
Source
verify_and_decrypt(value : String) : Bytes

Verify and Decrypt a message. We need to verify the message in order to avoid padding attacks. Reference: http://www.limited-entropy.com/padding-oracle-attacks.

Source