v.io: v.io/x/ref/runtime/internal/flow/crypto Index | Files

package crypto

import "v.io/x/ref/runtime/internal/flow/crypto"

Index

Package Files

box_cipher.go control_cipher.go null_cipher.go

type BoxKey Uses

type BoxKey [32]byte

type ControlCipher Uses

type ControlCipher interface {
    // MACSize returns the number of bytes in the MAC.
    MACSize() int

    // Seal replaces the message with an authenticated and encrypted version.
    // The trailing MACSize bytes of the data are used for the MAC; they are
    // discarded and overwritten.
    Seal(data []byte) error

    // Open authenticates and decrypts a box produced by Seal.  The trailing
    // MACSize bytes are not changed.  Returns true on success.
    Open(data []byte) bool

    // Encrypt encrypts the data in place.  No MAC is added.
    Encrypt(data []byte)

    // Decrypt decrypts the data in place.  No MAC is verified.
    Decrypt(data []byte)

    // ChannelBinding Returns a byte slice that is unique for the the
    // particular cipher (and the parties between which it is operating).
    // Having both parties assert out of the band that they are indeed
    // participating in a connection with that channel binding value is
    // sufficient to authenticate the data received through the cipher.
    ChannelBinding() []byte
}

ControlCipher provides the ciphers and MAC for control channel encryption. Encryption and decryption are performed in place.

func NewControlCipherRPC11 Uses

func NewControlCipherRPC11(myPublicKey, myPrivateKey, theirPublicKey *BoxKey) ControlCipher

NewControlCipher returns a ControlCipher for RPC versions greater than or equal to 11.

func NewDisabledControlCipher Uses

func NewDisabledControlCipher(c ControlCipher) ControlCipher

NewDisabledControlCipher returns a cipher that has the correct MACSize, but encryption and decryption are disabled.

type NullControlCipher Uses

type NullControlCipher struct{}

NullControlCipher is a cipher that does nothing.

func (NullControlCipher) ChannelBinding Uses

func (NullControlCipher) ChannelBinding() []byte

func (NullControlCipher) Decrypt Uses

func (NullControlCipher) Decrypt(data []byte)

func (NullControlCipher) Encrypt Uses

func (NullControlCipher) Encrypt(data []byte)

func (NullControlCipher) MACSize Uses

func (NullControlCipher) MACSize() int

func (NullControlCipher) Open Uses

func (NullControlCipher) Open(data []byte) bool

func (NullControlCipher) Seal Uses

func (NullControlCipher) Seal(data []byte) error

Package crypto imports 5 packages (graph) and is imported by 5 packages. Updated 2020-10-24. Refresh now. Tools for package owners.