package

aes

crypto/internal/fips140/v1.0.0-c2097c7c/aes

Subpackages

gcmcrypto/internal/fips140/v1.0.0-c2097c7c/aes/gcm

Constants

BlockSizesource

const BlockSize = 16

BlockSize is the AES block size in bytes.

Functions

EncryptBlockInternalsource

func EncryptBlockInternal(c *Block, dst, src []byte)

EncryptBlockInternal applies the AES encryption function to one block.

It is an internal function meant only for the gcm package.

EncryptionKeySchedulesource

func EncryptionKeySchedule(c *Block) []uint32

EncryptionKeySchedule is used from the GCM implementation to access the precomputed AES key schedule, to pass to the assembly implementation.

RoundToBlocksource

func RoundToBlock(c *CTR)

RoundToBlock is used by CTR_DRBG, which discards the rightmost unused bits at each request. It rounds the offset up to the next block boundary.

type Block source

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

A Block is an instance of AES using a particular key. It is safe for concurrent use.

Constructors

Newsource

func New(key []byte) (*Block, error)

New creates and returns a new [cipher.Block] implementation. The key argument should be the AES key, either 16, 24, or 32 bytes to select AES-128, AES-192, or AES-256.

Methods

type CBCDecrypter source

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

Constructors

NewCBCDecryptersource

func NewCBCDecrypter(b *Block, iv [BlockSize]byte) *CBCDecrypter

NewCBCDecrypter returns a [cipher.BlockMode] which decrypts in cipher block chaining mode, using the given Block.

Methods

type CBCEncrypter source

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

Constructors

NewCBCEncryptersource

func NewCBCEncrypter(b *Block, iv [BlockSize]byte) *CBCEncrypter

NewCBCEncrypter returns a [cipher.BlockMode] which encrypts in cipher block chaining mode, using the given Block.

Methods

type CTR source

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

Constructors

Methods

XORKeyStreamAtsource

func (c *CTR) XORKeyStreamAt(dst, src []byte, offset uint64)

XORKeyStreamAt behaves like XORKeyStream but keeps no state, and instead seeks into the keystream by the given bytes offset from the start (ignoring any XORKetStream calls). This allows for random access into the keystream, up to 16 EiB from the start.

type KeySizeError source

type KeySizeError int

Methods