import "crypto/xtea"

このパッケージは、Needham and Wheeler’s 1997 technical report, “Tea extensions.”で定義されているXTEA暗号を実装しています。

パッケージファイル

block.go cipher.go

定数

XTEAのブロックのバイトサイズ。

const BlockSize = 8

Cipher型

Cipherは、特定のキーを使用するXTEA暗号のインスタンスです。tableには事前に算出された一連の値が含まれており、暗号化、復号化の度に使用されます。

type Cipher struct {
    // contains unexported fields
}

NewCipher関数

func NewCipher(key []byte) (*Cipher, os.Error)

NewCipherは、新しいCipherを作成して返します。引数keyにはXTEAキーを指定する必要があります。XTEAがサポートしているキーは128ビット(16バイト)のみです。

(*Cipher) BlockSize関数

func (c *Cipher) BlockSize() int

BlockSizeは、XTEAのブロックサイズである8を返します。この値は、パッケージ”crypto/block”のCipherインタフェースを満たしている必要があります。

(*Cipher) Decrypt関数

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

Decryptは、8バイトのsrcバッファを鍵で復号化し、結果をdstに格納します。

(*Cipher) Encrypt関数

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

Encryptは、8バイトのsrcバッファを鍵で暗号化し、結果をdstに格納します。注意すべき点は、データ量がブロックサイズより大きいときに、連続したブロックでEncryptを呼び出すのは安全ではありません。代わりにCBCのような暗号化モードを使用してください。(crypto/block/cbc.goを参照)

(*Cipher) Reset関数

func (c *Cipher) Reset()

Resetは、プロセスのメモリ上から消去するためにtableをゼロ埋めします。

KeySizeError型

type KeySizeError int

(KeySizeError) String関数

func (k KeySizeError) String() string