server: github.com/katzenpost/server/internal/glue Index | Files

package glue

import "github.com/katzenpost/server/internal/glue"

Package glue implements the glue structure that ties all the internal subpackages together.

Index

Package Files

glue.go

type Connector Uses

type Connector interface {
    Halt()
    DispatchPacket(*packet.Packet)
    IsValidForwardDest(*[constants.NodeIDLength]byte) bool
    ForceUpdate()
}

type Decoy Uses

type Decoy interface {
    Halt()
    OnNewDocument(*pkicache.Entry)
    OnPacket(*packet.Packet)
}

type Glue Uses

type Glue interface {
    Config() *config.Config
    LogBackend() *log.Backend
    IdentityKey() *eddsa.PrivateKey
    LinkKey() *ecdh.PrivateKey

    Management() *thwack.Server
    MixKeys() MixKeys
    PKI() PKI
    Provider() Provider
    Scheduler() Scheduler
    Connector() Connector
    Listeners() []Listener
    Decoy() Decoy

    ReshadowCryptoWorkers()
}

Glue is the structure that binds the internal components together.

type Listener Uses

type Listener interface {
    Halt()
    IsConnUnique(interface{}) bool
    OnNewSendRatePerMinute(uint64)
    OnNewSendBurst(uint64)
}

type MixKeys Uses

type MixKeys interface {
    Halt()
    Generate(uint64) (bool, error)
    Prune() bool
    Get(uint64) (*ecdh.PublicKey, bool)
    Shadow(map[uint64]*mixkey.MixKey)
}

type PKI Uses

type PKI interface {
    Halt()
    StartWorker()
    OutgoingDestinations() map[[constants.NodeIDLength]byte]*pki.MixDescriptor
    AuthenticateConnection(*wire.PeerCredentials, bool) (*pki.MixDescriptor, bool, bool)
    GetRawConsensus(uint64) ([]byte, error)
}

type Provider Uses

type Provider interface {
    Halt()
    UserDB() userdb.UserDB
    Spool() spool.Spool
    AuthenticateClient(*wire.PeerCredentials) bool
    OnPacket(*packet.Packet)
    KaetzchenForPKI() (map[string]map[string]interface{}, error)
    AdvertiseRegistrationHTTPAddresses() []string
}

type Scheduler Uses

type Scheduler interface {
    Halt()
    OnNewMixMaxDelay(uint64)
    OnPacket(*packet.Packet)
}

Package glue imports 13 packages (graph) and is imported by 10 packages. Updated 2019-10-08. Refresh now. Tools for package owners.