crypto

package
v3.50.2+incompatible Latest Latest
Warning

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

Go to latest
Published: Oct 29, 2018 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package crypto provides common crypto libraries for V2Ray.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewAesCTRStream added in v1.1.0

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

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 added in v1.1.0

func NewAesGcm(key []byte) cipher.AEAD

func NewAesStreamMethod added in v1.1.0

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

func NewChaCha20Stream added in v1.1.0

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

NewChaCha20Stream creates a new Chacha20 encryption/descryption stream based on give key and IV. Caller must ensure the length of key is 32 bytes, and length of IV is either 8 or 12 bytes.

Types

type AEADAuthenticator added in v1.1.0

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

func (*AEADAuthenticator) Open added in v1.1.0

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

func (*AEADAuthenticator) Seal added in v1.1.0

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

type AEADChunkSizeParser added in v1.1.0

type AEADChunkSizeParser struct {
	Auth *AEADAuthenticator
}

func (*AEADChunkSizeParser) Decode added in v1.1.0

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

func (*AEADChunkSizeParser) Encode added in v1.1.0

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

func (*AEADChunkSizeParser) SizeBytes added in v1.1.0

func (p *AEADChunkSizeParser) SizeBytes() int32

type AuthenticationReader added in v1.1.0

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

func NewAuthenticationReader added in v1.1.0

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

func (*AuthenticationReader) ReadMultiBuffer added in v1.1.0

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

type AuthenticationWriter added in v1.1.0

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

func NewAuthenticationWriter added in v1.1.0

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

func (*AuthenticationWriter) WriteMultiBuffer added in v1.1.0

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

WriteMultiBuffer implements buf.Writer.

type Authenticator added in v1.1.0

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

type BytesGenerator added in v1.1.0

type BytesGenerator func() []byte

func GenerateEmptyBytes added in v1.1.0

func GenerateEmptyBytes() BytesGenerator

func GenerateIncreasingNonce added in v1.1.0

func GenerateIncreasingNonce(nonce []byte) BytesGenerator

func GenerateInitialAEADNonce added in v1.1.0

func GenerateInitialAEADNonce() BytesGenerator

func GenerateStaticBytes added in v1.1.0

func GenerateStaticBytes(content []byte) BytesGenerator

type ChunkSizeDecoder added in v1.1.0

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

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

type ChunkSizeEncoder added in v1.1.0

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

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

type ChunkStreamReader added in v1.1.0

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

func NewChunkStreamReader added in v1.1.0

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

func NewChunkStreamReaderWithChunkCount added in v1.1.0

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

func (*ChunkStreamReader) ReadMultiBuffer added in v1.1.0

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

type ChunkStreamWriter added in v1.1.0

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

func NewChunkStreamWriter added in v1.1.0

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

func (*ChunkStreamWriter) WriteMultiBuffer added in v1.1.0

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

type CryptionReader added in v1.1.0

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

func NewCryptionReader

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

func (*CryptionReader) Read added in v1.1.0

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

type CryptionWriter added in v1.1.0

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 added in v1.1.0

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

Write implements io.Writer.Write().

func (*CryptionWriter) WriteMultiBuffer added in v1.1.0

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

WriteMultiBuffer implements buf.Writer.

type PaddingLengthGenerator added in v1.1.0

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

type PlainChunkSizeParser added in v1.1.0

type PlainChunkSizeParser struct{}

func (PlainChunkSizeParser) Decode added in v1.1.0

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

func (PlainChunkSizeParser) Encode added in v1.1.0

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

func (PlainChunkSizeParser) SizeBytes added in v1.1.0

func (PlainChunkSizeParser) SizeBytes() int32

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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