record

package
v1.7.1 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2021 License: MIT Imports: 11 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 string, 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 string, 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(r *ValidationRecord) 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 string, recs [][]byte) (int, error)

type SelectorFunc

type SelectorFunc func(string, [][]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 ValidationRecord

type ValidationRecord struct {
	Namespace string
	Key       string
	Value     []byte
	// Note: author is only present if the source record is signed
	// Otherwise it will be ""
	Author peer.ID
}

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 string) (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. Note that VerifyRecord does not perform signature verification, the signature must be verified by the caller.

type ValidatorFunc

type ValidatorFunc func(*ValidationRecord) error

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

Directories

Path Synopsis
Package record_pb is a generated protocol buffer package.
Package record_pb is a generated protocol buffer package.

Jump to

Keyboard shortcuts

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