...

Package tea

import "golang.org/x/crypto/tea"
Overview
Index

Overview ▾

Package tea implements the TEA algorithm, as defined in Needham and Wheeler's 1994 technical report, “TEA, a Tiny Encryption Algorithm”. See http://www.cix.co.uk/~klockstone/tea.pdf for details.

TEA is a legacy cipher and its short block size makes it vulnerable to birthday bound attacks (see https://sweet32.info). It should only be used where compatibility with legacy systems, not security, is the goal.

Deprecated: any new system should use AES (from crypto/aes, if necessary in an AEAD mode like crypto/cipher.NewGCM) or XChaCha20-Poly1305 (from golang.org/x/crypto/chacha20poly1305).

Constants

const (
    // BlockSize is the size of a TEA block, in bytes.
    BlockSize = 8

    // KeySize is the size of a TEA key, in bytes.
    KeySize = 16
)

func NewCipher

func NewCipher(key []byte) (cipher.Block, error)

NewCipher returns an instance of the TEA cipher with the standard number of rounds. The key argument must be 16 bytes long.

func NewCipherWithRounds

func NewCipherWithRounds(key []byte, rounds int) (cipher.Block, error)

NewCipherWithRounds returns an instance of the TEA cipher with a given number of rounds, which must be even. The key argument must be 16 bytes long.