class Crypto::ChaCha20
- Crypto::ChaCha20
- Reference
- Object
Overview
The ChaCha20 cipheris a high-speed cipher It is considerably faster than AES in software-only implementations, making it around three times as fast on platforms that lack specialized AES hardware. ChaCha20 is also not sensitive to timing attacks.
Defined in:
crypto/chacha20.crConstructors
-
.new(key : Bytes, nonce : Bytes, counter : UInt32 = 0_u32)
The inputs to ChaCha20 are: * key: A 256-bit key, treated as a concatenation of eight 32-bit little- endian integers.
-
.new(key : String, nonce : String, counter : UInt32 = 0_u32)
The inputs to ChaCha20 are: * key: A 256-bit key, treated as a concatenation of eight 32-bit little- endian integers.
-
.new(state : StaticArray(UInt32, 16))
Directly initialize using the state
Instance Method Summary
-
#clone
create a clone from the state
-
#encrypt(plaintext : Bytes, encrypted : Bytes) : Nil
reads from plaintext and writes to encrypted
-
#encrypt(plaintext : IO, encrypted : IO)
reads from plaintext and writes to encrypted
-
#encrypt(plaintext : Bytes) : Bytes
encrypt the plaintext returns the encrypted bytes
-
#reset
reset the counter
Constructor Detail
The inputs to ChaCha20 are:
- key: A 256-bit key, treated as a concatenation of eight 32-bit little- endian integers.
- nonce: A 96-bit nonce, treated as a concatenation of three 32-bit little- endian integers.
- counter: A 32-bit block count parameter, treated as a 32-bit little-endian integer.
The inputs to ChaCha20 are:
- key: A 256-bit key, treated as a concatenation of eight 32-bit little- endian integers. (hex encoded)
- nonce: A 96-bit nonce, treated as a concatenation of three 32-bit little- endian integers. (hex encoded)
- counter: A 32-bit block count parameter, treated as a 32-bit little-endian integer.
Instance Method Detail
reads from plaintext and writes to encrypted