cryptmt: blitter.com/go/cryptmt Index | Files

package cryptmt

import "blitter.com/go/cryptmt"

Package CryptMT - implementation of cryptMTv1 stream cipher (but with mtwist64 as base accum) https://eprint.iacr.org/2005/165.pdf

Index

Package Files

cryptmt.go

type Cipher Uses

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

func New Uses

func New(r io.Reader, w io.Writer, key []byte) (c *Cipher)

New creates and returns a Cipher. The key argument should be the CryptMT key, 64 bytes.

func (*Cipher) Read Uses

func (c *Cipher) Read(p []byte) (n int, err error)

func (*Cipher) Write Uses

func (c *Cipher) Write(p []byte) (n int, err error)

func (*Cipher) XORKeyStream Uses

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

XORKeyStream XORs each byte in the given slice with a byte from the cipher's key stream. Dst and src must overlap entirely or not at all.

If len(dst) < len(src), XORKeyStream should panic. It is acceptable to pass a dst bigger than src, and in that case, XORKeyStream will only update dst[:len(src)] and will not touch the rest of dst.

Multiple calls to XORKeyStream behave as if the concatenation of the src buffers was passed in a single run. That is, Stream maintains state and does not reset at each XORKeyStream call.

Package cryptmt imports 3 packages (graph). Updated 2020-02-11. Refresh now. Tools for package owners.