package chacha20

Import Path
	vendor/golang.org/x/crypto/chacha20 (on golang.org and go.dev)

Dependency Relation
	imports 6 packages, and imported by one package

Involved Source Files
	d-> chacha_generic.go
	    chacha_noasm.go
	    xor.go

Exported Type Names

type Cipher (struct) Cipher is a stateful instance of ChaCha20 or XChaCha20 using a particular key and nonce. A *Cipher implements the cipher.Stream interface. (*T) SetCounter(counter uint32) (*T) XORKeyStream(dst, src []byte) *T : crypto/cipher.Stream func NewUnauthenticatedCipher(key, nonce []byte) (*Cipher, error)
Exported Values
func HChaCha20(key, nonce []byte) ([]byte, error) HChaCha20 uses the ChaCha20 core to generate a derived key from a 32 bytes key and a 16 bytes nonce. It returns an error if key or nonce have any other length. It is used as part of the XChaCha20 construction.
const KeySize = 32 KeySize is the size of the key used by this cipher, in bytes.
func NewUnauthenticatedCipher(key, nonce []byte) (*Cipher, error) NewUnauthenticatedCipher creates a new ChaCha20 stream cipher with the given 32 bytes key and a 12 or 24 bytes nonce. If a nonce of 24 bytes is provided, the XChaCha20 construction will be used. It returns an error if key or nonce have any other length. Note that ChaCha20, like all stream ciphers, is not authenticated and allows attackers to silently tamper with the plaintext. For this reason, it is more appropriate as a building block than as a standalone encryption mechanism. Instead, consider using package golang.org/x/crypto/chacha20poly1305.
const NonceSize = 12 NonceSize is the size of the nonce used with the standard variant of this cipher, in bytes. Note that this is too short to be safely generated at random if the same key is reused more than 2³² times.
const NonceSizeX = 24 NonceSizeX is the size of the nonce used with the XChaCha20 variant of this cipher, in bytes.