Documentation

Overview

    Package chacha20poly1305 implements the ChaCha20-Poly1305 AEAD and its extended nonce variant XChaCha20-Poly1305, as specified in RFC 8439 and draft-irtf-cfrg-xchacha-01.

    Index

    Examples

    Constants

    View Source
    const (
    	// KeySize is the size of the key used by this AEAD, in bytes.
    	KeySize = 32
    
    	// NonceSize is the size of the nonce used with the standard variant of this
    	// AEAD, in bytes.
    	//
    	// Note that this is too short to be safely generated at random if the same
    	// key is reused more than 2³² times.
    	NonceSize = 12
    
    	// NonceSizeX is the size of the nonce used with the XChaCha20-Poly1305
    	// variant of this AEAD, in bytes.
    	NonceSizeX = 24
    )

    Variables

    This section is empty.

    Functions

    func New

    func New(key []byte) (cipher.AEAD, error)

      New returns a ChaCha20-Poly1305 AEAD that uses the given 256-bit key.

      func NewX

      func NewX(key []byte) (cipher.AEAD, error)

        NewX returns a XChaCha20-Poly1305 AEAD that uses the given 256-bit key.

        XChaCha20-Poly1305 is a ChaCha20-Poly1305 variant that takes a longer nonce, suitable to be generated randomly without risk of collisions. It should be preferred when nonce uniqueness cannot be trivially ensured, or whenever nonces are randomly generated.

        Example
        Output:
        
        Gophers, gophers, gophers everywhere!
        

        Types

        This section is empty.