record

package
v0.0.0-...-795e242 Latest Latest
Warning

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

Go to latest
Published: Oct 20, 2015 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrBadRecord = errors.New("bad dht record")

ErrBadRecord is returned any time a dht record is found to be incorrectly formatted or signed.

View Source
var ErrInvalidRecordType = errors.New("invalid record keytype")

ErrInvalidRecordType is returned if a DHTRecord keys prefix is not found in the Validator map of the DHT.

View Source
var PublicKeyValidator = &ValidChecker{
	Func: ValidatePublicKeyRecord,
	Sign: false,
}

Functions

func CheckRecordSig

func CheckRecordSig(r *pb.Record, pk ci.PubKey) error

func MakePutRecord

func MakePutRecord(sk ci.PrivKey, key key.Key, value []byte, sign bool) (*pb.Record, error)

MakePutRecord creates and signs a dht record for the given key/value pair

func PublicKeySelector

func PublicKeySelector(k key.Key, vals [][]byte) (int, error)

PublicKeySelector just selects the first entry. All valid public key records will be equivalent.

func RecordBlobForSig

func RecordBlobForSig(r *pb.Record) []byte

RecordBlobForSig returns the blob protected by the record signature

func ValidatePublicKeyRecord

func ValidatePublicKeyRecord(k key.Key, val []byte) error

ValidatePublicKeyRecord implements ValidatorFunc and verifies that the passed in record value is the PublicKey that matches the passed in key.

Types

type Selector

type Selector map[string]SelectorFunc

func (Selector) BestRecord

func (s Selector) BestRecord(k key.Key, recs [][]byte) (int, error)

type SelectorFunc

type SelectorFunc func(key.Key, [][]byte) (int, error)

A SelectorFunc selects the best value for the given key from a slice of possible values and returns the index of the chosen one

type ValidChecker

type ValidChecker struct {
	Func ValidatorFunc
	Sign bool
}

type Validator

type Validator map[string]*ValidChecker

Validator is an object that helps ensure routing records are valid. It is a collection of validator functions, each of which implements its own notion of validity.

func (Validator) IsSigned

func (v Validator) IsSigned(k key.Key) (bool, error)

func (Validator) VerifyRecord

func (v Validator) VerifyRecord(r *pb.Record) error

VerifyRecord checks a record and ensures it is still valid. It runs needed validators

type ValidatorFunc

type ValidatorFunc func(key.Key, []byte) error

ValidatorFunc is a function that is called to validate a given type of DHTRecord.

Jump to

Keyboard shortcuts

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