Documentation ¶
Overview ¶
Package chacha20 implements the ChaCha20 stream cipher.
Index ¶
Constants ¶
View Source
const ( // KeySize is the ChaCha20 key size in bytes. KeySize = 32 // NonceSize is the ChaCha20 nonce size in bytes. NonceSize = 8 // INonceSize is the IETF ChaCha20 nonce size in bytes. INonceSize = 12 // XNonceSize is the XChaCha20 nonce size in bytes. XNonceSize = 24 // HNonceSize is the HChaCha20 nonce size in bytes. HNonceSize = 16 )
Variables ¶
View Source
var ( // ErrInvalidKey is the error returned when the key is invalid. ErrInvalidKey = errors.New("chacha20: key length must be KeySize bytes") // ErrInvalidNonce is the error returned when the nonce is invalid. ErrInvalidNonce = errors.New("chacha20: nonce length must be NonceSize/INonceSize/XNonceSize bytes") // ErrInvalidCounter is the error returned when the counter is invalid. ErrInvalidCounter = errors.New("chacha20: block counter is invalid (out of range)") )
Functions ¶
Types ¶
type Cipher ¶
type Cipher struct {
// contains filtered or unexported fields
}
Cipher is an instance of ChaCha20/XChaCha20 using a particular key and nonce.
func (*Cipher) ReKey ¶
ReKey reinitializes the ChaCha20/XChaCha20 instance with the provided key and nonce.
func (*Cipher) Reset ¶
func (c *Cipher) Reset()
Reset zeros the key data so that it will no longer appear in the process's memory.
func (*Cipher) XORKeyStream ¶
XORKeyStream sets dst to the result of XORing src with the key stream. Dst and src may be the same slice but otherwise should not overlap.
Directories ¶
Path | Synopsis |
---|---|
internal
|
|
api
Package api provides the ChaCha20 implementation abstract interface.
|
Package api provides the ChaCha20 implementation abstract interface. |
hardware
Package hardware provides the hardware accelerated ChaCha20 implementations.
|
Package hardware provides the hardware accelerated ChaCha20 implementations. |
ref
Package ref provides the portable ChaCha20 implementation.
|
Package ref provides the portable ChaCha20 implementation. |
Click to show internal directories.
Click to hide internal directories.