Documentation

Overview

    Package userdb defines the Katzenpost server user database abstract interface.

    Index

    Constants

    View Source
    const MaxUsernameSize = constants.RecipientIDLength

      MaxUsernameSize is the maximum username length in bytes.

      Variables

      View Source
      var (
      	// ErrNoSuchUser is the error returned when an operation fails due to
      	// a non-existent user.
      	ErrNoSuchUser = errors.New("userdb: no such user")
      
      	// ErrNoIdentity is the error returned when the specified user has no
      	// identity key set.
      	ErrNoIdentity = errors.New("userdb: no identity key set")
      )

      Functions

      This section is empty.

      Types

      type UserDB

      type UserDB interface {
      	// Exists returns true iff the user identified by the username exists.
      	Exists([]byte) bool
      
      	// IsValid returns true iff the user identified by the username and
      	// public key is valid.
      	IsValid([]byte, *ecdh.PublicKey) bool
      
      	// Link returns the user's link layer authentication key.
      	Link([]byte) (*ecdh.PublicKey, error)
      
      	// Add adds the user identified by the username and public key
      	// to the database.  Existing users will have their public keys
      	// updated if specified, otherwise an error will be returned.
      	Add([]byte, *ecdh.PublicKey, bool) error
      
      	// SetIdentity sets the optional identity key for the user identified
      	// by the user name to the provided public key.  Providing a nil key
      	// will remove the user's identity key iff it exists.
      	SetIdentity([]byte, *ecdh.PublicKey) error
      
      	// Identity returns the optional identity key for the user identified
      	// by the user name.
      	Identity([]byte) (*ecdh.PublicKey, error)
      
      	// Remove removes the user identified by the username from the database.
      	Remove([]byte) error
      
      	// Close closes the UserDB instance.
      	Close()
      }

        UserDB is the interface provided by all user database implementations.

        Source Files

        Directories

        Path Synopsis
        Package boltuserdb implements the Katzenpost server user database with a simple boltdb based backend.
        Package boltuserdb implements the Katzenpost server user database with a simple boltdb based backend.
        Package externuserdb implements the Katzenpost server user database with http calls to a external authorization source (expected to run in localhost).
        Package externuserdb implements the Katzenpost server user database with http calls to a external authorization source (expected to run in localhost).