crypto

package
v0.0.0-...-6f818a0 Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2023 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package crypto provides common crypto libraries for Xray.

Code generated by errors.codegen. DO NOT EDIT.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewAesCTRStream

func NewAesCTRStream(key []byte, iv []byte) cipher.Stream

NewAesCTRStream creates a stream cipher based on AES-CTR.

func NewAesDecryptionStream

func NewAesDecryptionStream(key []byte, iv []byte) cipher.Stream

NewAesDecryptionStream creates a new AES encryption stream based on given key and IV. Caller must ensure the length of key and IV is either 16, 24 or 32 bytes.

func NewAesEncryptionStream

func NewAesEncryptionStream(key []byte, iv []byte) cipher.Stream

NewAesEncryptionStream creates a new AES description stream based on given key and IV. Caller must ensure the length of key and IV is either 16, 24 or 32 bytes.

func NewAesGcm

func NewAesGcm(key []byte) cipher.AEAD

NewAesGcm creates a AEAD cipher based on AES-GCM.

func NewAesStreamMethod

func NewAesStreamMethod(key []byte, iv []byte, f func(cipher.Block, []byte) cipher.Stream) cipher.Stream

Types

type AEADAuthenticator

type AEADAuthenticator struct {
	cipher.AEAD
	NonceGenerator          BytesGenerator
	AdditionalDataGenerator BytesGenerator
}

func (*AEADAuthenticator) Open

func (v *AEADAuthenticator) Open(dst, cipherText []byte) ([]byte, error)

func (*AEADAuthenticator) Seal

func (v *AEADAuthenticator) Seal(dst, plainText []byte) ([]byte, error)

type AEADChunkSizeParser

type AEADChunkSizeParser struct {
	Auth *AEADAuthenticator
}

func (*AEADChunkSizeParser) Decode

func (p *AEADChunkSizeParser) Decode(b []byte) (uint16, error)

func (*AEADChunkSizeParser) Encode

func (p *AEADChunkSizeParser) Encode(size uint16, b []byte) []byte

func (*AEADChunkSizeParser) SizeBytes

func (p *AEADChunkSizeParser) SizeBytes() int32

type AuthenticationReader

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

func NewAuthenticationReader

func NewAuthenticationReader(auth Authenticator, sizeParser ChunkSizeDecoder, reader io.Reader, transferType protocol.TransferType, paddingLen PaddingLengthGenerator) *AuthenticationReader

func (*AuthenticationReader) ReadMultiBuffer

func (r *AuthenticationReader) ReadMultiBuffer() (buf.MultiBuffer, error)

type AuthenticationWriter

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

func NewAuthenticationWriter

func NewAuthenticationWriter(auth Authenticator, sizeParser ChunkSizeEncoder, writer io.Writer, transferType protocol.TransferType, padding PaddingLengthGenerator) *AuthenticationWriter

func (*AuthenticationWriter) WriteMultiBuffer

func (w *AuthenticationWriter) WriteMultiBuffer(mb buf.MultiBuffer) error

WriteMultiBuffer implements buf.Writer.

type Authenticator

type Authenticator interface {
	NonceSize() int
	Overhead() int
	Open(dst, cipherText []byte) ([]byte, error)
	Seal(dst, plainText []byte) ([]byte, error)
}

type BytesGenerator

type BytesGenerator func() []byte

func GenerateAEADNonceWithSize

func GenerateAEADNonceWithSize(nonceSize int) BytesGenerator

func GenerateEmptyBytes

func GenerateEmptyBytes() BytesGenerator

func GenerateIncreasingNonce

func GenerateIncreasingNonce(nonce []byte) BytesGenerator

func GenerateStaticBytes

func GenerateStaticBytes(content []byte) BytesGenerator

type ChunkSizeDecoder

type ChunkSizeDecoder interface {
	SizeBytes() int32
	Decode([]byte) (uint16, error)
}

ChunkSizeDecoder is a utility class to decode size value from bytes.

type ChunkSizeEncoder

type ChunkSizeEncoder interface {
	SizeBytes() int32
	Encode(uint16, []byte) []byte
}

ChunkSizeEncoder is a utility class to encode size value into bytes.

type ChunkStreamReader

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

func NewChunkStreamReader

func NewChunkStreamReader(sizeDecoder ChunkSizeDecoder, reader io.Reader) *ChunkStreamReader

func NewChunkStreamReaderWithChunkCount

func NewChunkStreamReaderWithChunkCount(sizeDecoder ChunkSizeDecoder, reader io.Reader, maxNumChunk uint32) *ChunkStreamReader

func (*ChunkStreamReader) ReadMultiBuffer

func (r *ChunkStreamReader) ReadMultiBuffer() (buf.MultiBuffer, error)

type ChunkStreamWriter

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

func NewChunkStreamWriter

func NewChunkStreamWriter(sizeEncoder ChunkSizeEncoder, writer io.Writer) *ChunkStreamWriter

func (*ChunkStreamWriter) WriteMultiBuffer

func (w *ChunkStreamWriter) WriteMultiBuffer(mb buf.MultiBuffer) error

type CryptionReader

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

func NewCryptionReader

func NewCryptionReader(stream cipher.Stream, reader io.Reader) *CryptionReader

func (*CryptionReader) Read

func (r *CryptionReader) Read(data []byte) (int, error)

type CryptionWriter

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

func NewCryptionWriter

func NewCryptionWriter(stream cipher.Stream, writer io.Writer) *CryptionWriter

NewCryptionWriter creates a new CryptionWriter.

func (*CryptionWriter) Write

func (w *CryptionWriter) Write(data []byte) (int, error)

Write implements io.Writer.Write().

func (*CryptionWriter) WriteMultiBuffer

func (w *CryptionWriter) WriteMultiBuffer(mb buf.MultiBuffer) error

WriteMultiBuffer implements buf.Writer.

type PaddingLengthGenerator

type PaddingLengthGenerator interface {
	MaxPaddingLen() uint16
	NextPaddingLen() uint16
}

type PlainChunkSizeParser

type PlainChunkSizeParser struct{}

func (PlainChunkSizeParser) Decode

func (PlainChunkSizeParser) Decode(b []byte) (uint16, error)

func (PlainChunkSizeParser) Encode

func (PlainChunkSizeParser) Encode(size uint16, b []byte) []byte

func (PlainChunkSizeParser) SizeBytes

func (PlainChunkSizeParser) SizeBytes() int32

Jump to

Keyboard shortcuts

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