attestedtls

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: May 31, 2022 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Dial

func Dial(network string, addr string, config *tls.Config, moreConfigs ...ConnectionOption[cmcConfig]) (*tls.Conn, error)

Wraps tls.Dial Additionally performs remote attestation before returning the established connection.

func GetCert

func GetCert(moreConfigs ...ConnectionOption[cmcConfig]) (tls.Certificate, error)

Obtains Certificate for the used TLS key from cmcd

func Listen

func Listen(network, laddr string, config *tls.Config, moreConfigs ...ConnectionOption[cmcConfig]) (net.Listener, error)

Wrapper for tls.Listen Returns custom Listener that will perform additional remote attestation operations right after successful TLS connection establishment

func Read

func Read(c net.Conn) ([]byte, error)

Receives byte array from provided channel by first receiving length information, then data

func Write

func Write(msg []byte, c net.Conn) error

Writes byte array to provided channel by first sending length information, then data

Types

type ConnectionOption added in v0.4.0

type ConnectionOption[T any] func(*T)

func WithCmcAddress added in v0.4.0

func WithCmcAddress(address string) ConnectionOption[cmcConfig]

WithCmcAddress sets the address with which to contact the CMC. If not specified, default is "localhost"

func WithCmcCa added in v0.4.0

func WithCmcCa(pem []byte) ConnectionOption[cmcConfig]

WithCmcCa specifies the CA the attestation report should be verified against in PEM format

func WithCmcPolicies added in v0.4.0

func WithCmcPolicies(policies []byte) ConnectionOption[cmcConfig]

WithCmcPolicies specified optional custom policies the attestation report should be verified against

func WithCmcPort added in v0.4.0

func WithCmcPort(port string) ConnectionOption[cmcConfig]

WithCmcPort sets the port on which to contact the CMC. If not specified, default is "9955"

type Listener

type Listener struct {
	net.Listener // embedded interface

	*tls.Config // embedded struct
	// contains filtered or unexported fields
}

Struct to implement Listener interface * holds net.Listener and adds additional functionality to it

func (Listener) Accept

func (ln Listener) Accept() (net.Conn, error)

Implementation of Accept() in net.Listener iface Calls Accept of the net.Listnener and additionally performs remote attestation after connection establishment before returning the connection

func (Listener) Addr

func (ln Listener) Addr() net.Addr

Implementation of Addr in net.Listener iface Only calls original Addr(), since no new functionality required

func (Listener) Close

func (ln Listener) Close() error

Implementation of Close in net.Listener iface Only calls original Close(), since no new functionality required

type PrivateKey

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

PrivateKey Wrapper Implementing crypto.Signer interface Used to contact cmcd for signing operations

func (PrivateKey) Public

func (priv PrivateKey) Public() crypto.PublicKey

func (PrivateKey) Sign

func (priv PrivateKey) Sign(random io.Reader, digest []byte, opts crypto.SignerOpts) ([]byte, error)

Implementation of Sign() in crypto.Signer iface Contacts cmcd for sign operation and returns received signature

Jump to

Keyboard shortcuts

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