cipher

package
v1.0.4026 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 5, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

implements the GOST 28147 OFB counter mode (GCTR).

Index

Constants

View Source
const WRAP_MAX = uint64(1) << 31

Input size limit: lower than maximum of standards but far larger than anything that will be used in practice.

Variables

This section is empty.

Functions

func NewBCDecrypter

func NewBCDecrypter(b cipher.Block, iv []byte) cipher.BlockMode

func NewBCEncrypter

func NewBCEncrypter(b cipher.Block, iv []byte) cipher.BlockMode

func NewCFB1

func NewCFB1(block cipher.Block, iv []byte, decrypt bool) cipher.Stream

func NewCFB16

func NewCFB16(block cipher.Block, iv []byte, decrypt bool) cipher.Stream

func NewCFB16Decrypter

func NewCFB16Decrypter(block cipher.Block, iv []byte) cipher.Stream

func NewCFB16Encrypter

func NewCFB16Encrypter(block cipher.Block, iv []byte) cipher.Stream

func NewCFB1Decrypter

func NewCFB1Decrypter(block cipher.Block, iv []byte) cipher.Stream

func NewCFB1Encrypter

func NewCFB1Encrypter(block cipher.Block, iv []byte) cipher.Stream

func NewCFB32

func NewCFB32(block cipher.Block, iv []byte, decrypt bool) cipher.Stream

func NewCFB32Decrypter

func NewCFB32Decrypter(block cipher.Block, iv []byte) cipher.Stream

func NewCFB32Encrypter

func NewCFB32Encrypter(block cipher.Block, iv []byte) cipher.Stream

func NewCFB64

func NewCFB64(block cipher.Block, iv []byte, decrypt bool) cipher.Stream

func NewCFB64Decrypter

func NewCFB64Decrypter(block cipher.Block, iv []byte) cipher.Stream

func NewCFB64Encrypter

func NewCFB64Encrypter(block cipher.Block, iv []byte) cipher.Stream

func NewCFB8

func NewCFB8(block cipher.Block, iv []byte, decrypt bool) cipher.Stream

func NewCFB8Decrypter

func NewCFB8Decrypter(block cipher.Block, iv []byte) cipher.Stream

NewCFB8Decrypter returns a Stream which decrypts with cipher feedback mode (segment size = 8), using the given Block. The iv must be the same length as the Block's block size.

func NewCFB8Encrypter

func NewCFB8Encrypter(block cipher.Block, iv []byte) cipher.Stream

NewCFB8Encrypter returns a Stream which encrypts with cipher feedback mode (segment size = 8), using the given Block. The iv must be the same length as the Block's block size.

func NewECBDecrypter

func NewECBDecrypter(b cipher.Block) cipher.BlockMode

NewECBDecrypter returns a BlockMode which decrypts in electronic code book mode, using the given Block.

func NewECBEncrypter

func NewECBEncrypter(b cipher.Block) cipher.BlockMode

NewECBEncrypter returns a BlockMode which encrypts in electronic code book mode, using the given Block.

func NewG3413CBCDecrypter

func NewG3413CBCDecrypter(b cipher.Block, iv []byte) cipher.BlockMode

NewG3413CBCDecrypter returns a cipher.BlockMode which decrypts in cipher block chaining mode, using the given cipher.Block. The length of iv must be the same as the Block's block size and must match the iv used to encrypt the data.

func NewG3413CBCEncrypter

func NewG3413CBCEncrypter(b cipher.Block, iv []byte) cipher.BlockMode

NewG3413CBCEncrypter returns a cipher.BlockMode which encrypts in cipher block chaining mode, using the given cipher.Block. The length of iv must be the same as the Block's block size.

func NewG3413CFBDecrypter

func NewG3413CFBDecrypter(block cipher.Block, iv []byte) cipher.Stream

NewG3413CFBDecrypter returns a Stream which decrypts with cipher feedback mode, using the given cipher.Block. The iv must be the same length as the cipher.Block's block size.

func NewG3413CFBDecrypterWithBitBlockSize

func NewG3413CFBDecrypterWithBitBlockSize(block cipher.Block, iv []byte, bitBlockSize int) cipher.Stream

func NewG3413CFBEncrypter

func NewG3413CFBEncrypter(block cipher.Block, iv []byte) cipher.Stream

NewG3413CFBEncrypter returns a Stream which encrypts with cipher feedback mode, using the given cipher.Block. The iv must be the same length as the cipher.Block's block size.

func NewG3413CFBEncrypterWithBitBlockSize

func NewG3413CFBEncrypterWithBitBlockSize(block cipher.Block, iv []byte, bitBlockSize int) cipher.Stream

func NewG3413CTR

func NewG3413CTR(block cipher.Block, iv []byte) cipher.Stream

NewCTR returns a Stream which encrypts/decrypts using the given Block in counter mode. The length of iv must be the same as the Block's block size.

func NewG3413CTRWithBitBlockSize

func NewG3413CTRWithBitBlockSize(block cipher.Block, iv []byte, bitBlockSize int) cipher.Stream

NewG3413CTRWithBitBlockSize returns a Stream which encrypts/decrypts using the given Block in counter mode. The length of iv must be the same as the Block's block size.

func NewG3413OFB

func NewG3413OFB(b cipher.Block, iv []byte) cipher.Stream

NewG3413OFB returns a Stream that encrypts or decrypts using the block cipher b in output feedback mode. The initialization vector iv's length must be equal to b's block size.

func NewGCFBDecrypter

func NewGCFBDecrypter(block GCFBCipherFunc, key, iv []byte) cipher.Stream

NewGCFBDecrypter returns a Stream which decrypts with cipher feedback mode, using the given Block. The iv must be the same length as the Block's block size.

func NewGCFBEncrypter

func NewGCFBEncrypter(block GCFBCipherFunc, key, iv []byte) cipher.Stream

NewGCFBEncrypter returns a Stream which encrypts with cipher feedback mode, using the given Block. The iv must be the same length as the Block's block size.

func NewGOFB

func NewGOFB(b cipher.Block, iv []byte) cipher.Stream

NewGOFB returns a Stream that encrypts or decrypts using the block cipher b in output feedback mode. The initialization vector iv's length must be equal to b's block size.

func NewIGEDecrypter

func NewIGEDecrypter(b cipher.Block, iv []byte) cipher.BlockMode

NewIGEDecrypter returns a BlockMode which decrypts in infinite garble extension mode, using the given Block. The length of iv must be 2 times of Block's block size.

func NewIGEEncrypter

func NewIGEEncrypter(b cipher.Block, iv []byte) cipher.BlockMode

NewIGEEncrypter returns a BlockMode which encrypts in infinite garble extension mode, using the given Block. The length of iv must be 2 times of Block's block size.

func NewNCFBDecrypter

func NewNCFBDecrypter(block cipher.Block, iv []byte) cipher.Stream

func NewNCFBEncrypter

func NewNCFBEncrypter(block cipher.Block, iv []byte) cipher.Stream

func NewNOFB

func NewNOFB(b cipher.Block, iv []byte) cipher.Stream

NewNOFB returns a Stream that encrypts or decrypts using the block cipher b in output feedback mode. The initialization vector iv's length must be equal to b's block size.

func NewOCFBDecrypter

func NewOCFBDecrypter(block cipher.Block, prefix []byte, resync OCFBResyncOption) cipher.Stream

NewOCFBDecrypter returns a cipher.Stream which decrypts data with OpenPGP's cipher feedback mode using the given cipher.Block. Prefix must be the first blockSize + 2 bytes of the ciphertext, where blockSize is the cipher.Block's block size. If an incorrect key is detected then nil is returned. On successful exit, blockSize+2 bytes of decrypted data are written into prefix. Resync determines if the "resynchronization step" from RFC 4880, 13.9 step 7 is performed. Different parts of OpenPGP vary on this point.

func NewOCFBEncrypter

func NewOCFBEncrypter(block cipher.Block, randData []byte, resync OCFBResyncOption) (cipher.Stream, []byte)

NewOCFBEncrypter returns a cipher.Stream which encrypts data with OpenPGP's cipher feedback mode using the given cipher.Block, and an initial amount of ciphertext. randData must be random bytes and be the same length as the cipher.Block's block size. Resync determines if the "resynchronization step" from RFC 4880, 13.9 step 7 is performed. Different parts of OpenPGP vary on this point.

func NewOFB8

func NewOFB8(b cipher.Block, iv []byte) cipher.Stream

func NewOFBNLFDecrypter

func NewOFBNLFDecrypter(newKey KeyCreator, key, iv []byte) cipher.BlockMode

func NewOFBNLFEncrypter

func NewOFBNLFEncrypter(newKey KeyCreator, key, iv []byte) cipher.BlockMode

func NewPCBCDecrypter

func NewPCBCDecrypter(b cipher.Block, iv []byte) cipher.BlockMode

func NewPCBCEncrypter

func NewPCBCEncrypter(b cipher.Block, iv []byte) cipher.BlockMode

func NewWrapDecrypter

func NewWrapDecrypter(b cipher.Block, iv []byte) cipher.BlockMode

func NewWrapEncrypter

func NewWrapEncrypter(b cipher.Block, iv []byte) cipher.BlockMode

func NewWrapPadDecrypter

func NewWrapPadDecrypter(b cipher.Block, iv []byte) cipher.BlockMode

func NewWrapPadEncrypter

func NewWrapPadEncrypter(b cipher.Block, iv []byte) cipher.BlockMode

Types

type GCFBCipherFunc

type GCFBCipherFunc = func([]byte) (cipher.Block, error)

type KeyCreator

type KeyCreator = func([]byte) (cipher.Block, error)

type OCFBResyncOption

type OCFBResyncOption bool

An OCFBResyncOption determines if the "resynchronization step" of OCFB is performed.

const (
	OCFBResync   OCFBResyncOption = true
	OCFBNoResync OCFBResyncOption = false
)

Directories

Path Synopsis
siv
aes

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL