Documentation ¶
Overview ¶
SEEP, short for Socket Extensible Encryption Protocol, is a socket encryption protocol based on the noise protocol framwork and XDR (external data representation). This package also comes with an RPC codec, loosely based on SEEP and an encoding format (XDR and GOB are supported).
Index ¶
- func NewGobRpcClient(src *xdr.Decoder, dst *xdr.Encoder, nc noise.Config, c io.Closer) (rpc.ClientCodec, error)
- func NewGobRpcSource(src *xdr.Decoder, dst *xdr.Encoder, nc noise.Config, c io.Closer) (rpc.ServerCodec, error)
- func NewRpcClient(src *xdr.Decoder, dst *xdr.Encoder, nc noise.Config, c io.Closer) (rpc.ClientCodec, error)
- func NewRpcSource(src *xdr.Decoder, dst *xdr.Encoder, nc noise.Config, c io.Closer) (rpc.ServerCodec, error)
- type Connection
- type Reader
- type Writer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewGobRpcClient ¶
func NewGobRpcClient(src *xdr.Decoder, dst *xdr.Encoder, nc noise.Config, c io.Closer) (rpc.ClientCodec, error)
Creates a client side RPC codec, that uses GOB as format to encode structures.
func NewGobRpcSource ¶
func NewGobRpcSource(src *xdr.Decoder, dst *xdr.Encoder, nc noise.Config, c io.Closer) (rpc.ServerCodec, error)
Creates a server side RPC codec, that uses GOB as format to encode structures.
func NewRpcClient ¶
func NewRpcClient(src *xdr.Decoder, dst *xdr.Encoder, nc noise.Config, c io.Closer) (rpc.ClientCodec, error)
Creates a client side RPC codec, that uses XDR as format to encode structures.
func NewRpcSource ¶
func NewRpcSource(src *xdr.Decoder, dst *xdr.Encoder, nc noise.Config, c io.Closer) (rpc.ServerCodec, error)
Creates a client side RPC codec, that uses XDR as format to encode structures.
Types ¶
type Connection ¶
The Connection is a simple object acting as reader and writer, carrying the minimal information needed to perform the noise protocol handshake. After the call to the .Init() method, the connection can be written to, so that the data is being send during the handshake. However, this data is not encrypted using a private key, so no secrecy for this data is given.
c := new(seep.Connection) c.Init() c.Write(someData) // this data is sent during the handshake. err := c.Handshake(src,dst,cfg) // ... check error // use c as Reader and Writer
func (*Connection) Handshake ¶
func (c *Connection) Handshake(src *xdr.Decoder, dst *xdr.Encoder, nc noise.Config) error
func (*Connection) Init ¶
func (c *Connection) Init()