Documentation

Overview

    Package xtea implements XTEA encryption, as defined in Needham and Wheeler's 1997 technical report, "Tea extensions."

    XTEA 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).

    Index

    Constants

    View Source
    const BlockSize = 8

      The XTEA block size in bytes.

      Variables

      This section is empty.

      Functions

      This section is empty.

      Types

      type Cipher

      type Cipher struct {
      	// contains filtered or unexported fields
      }

        A Cipher is an instance of an XTEA cipher using a particular key.

        func NewCipher

        func NewCipher(key []byte) (*Cipher, error)

          NewCipher creates and returns a new Cipher. The key argument should be the XTEA key. XTEA only supports 128 bit (16 byte) keys.

          func (*Cipher) BlockSize

          func (c *Cipher) BlockSize() int

            BlockSize returns the XTEA block size, 8 bytes. It is necessary to satisfy the Block interface in the package "crypto/cipher".

            func (*Cipher) Decrypt

            func (c *Cipher) Decrypt(dst, src []byte)

              Decrypt decrypts the 8 byte buffer src using the key and stores the result in dst.

              func (*Cipher) Encrypt

              func (c *Cipher) Encrypt(dst, src []byte)

                Encrypt encrypts the 8 byte buffer src using the key and stores the result in dst. Note that for amounts of data larger than a block, it is not safe to just call Encrypt on successive blocks; instead, use an encryption mode like CBC (see crypto/cipher/cbc.go).

                type KeySizeError

                type KeySizeError int

                func (KeySizeError) Error

                func (k KeySizeError) Error() string

                Source Files