Documentation ¶
Overview ¶
Package segverifier implements primitives for verifying path segments.
A Unit contains a path segment, and all the revocations that reference IFIDs in that path segment.
When a unit is verified, it spawns one goroutine for the path segment's verification, and one goroutine for the verification of each revocation. It then collects the results from all workers (forcefully terminating them if the unit's context is Done). A UnitResult object is returned, containing a reference to the Unit itself and a map of errors. The map only contains non-nil errors as values, and the keys are represented by the following:
- If the path segment verification failed, its error is contained at key -1
- If a revocation verification failed, its error is contained at key x, where x is the position of the revocation in the slice of SignedRevInfos passed to BuildVerificationUnits.
Index ¶
- Variables
- func StartVerification(ctx context.Context, verifier infra.Verifier, server net.Addr, ...) (chan UnitResult, int)
- func VerifyRevInfo(ctx context.Context, verifier infra.Verifier, server net.Addr, ...) error
- func VerifySegment(ctx context.Context, verifier infra.Verifier, server net.Addr, ...) error
- type ElemResult
- type Unit
- type UnitResult
Constants ¶
This section is empty.
Variables ¶
var ( // ErrRevocation indicates the revocation failed to verify. ErrRevocation = serrors.New("revocation verification error") // ErrSegment indicates the segment failed to verify. ErrSegment = serrors.New("segment verification error") )
Errors
Functions ¶
func StartVerification ¶ added in v0.2.0
func StartVerification(ctx context.Context, verifier infra.Verifier, server net.Addr, segMetas []*seg.Meta, sRevInfos []*path_mgmt.SignedRevInfo) (chan UnitResult, int)
StartVerification builds the units for the given segMetas and sRevInfos and spawns verify method on the units. StartVerification returns a channel for the UnitResult and the expected amount of results.
func VerifyRevInfo ¶
Types ¶
type ElemResult ¶
type Unit ¶
type Unit struct { SegMeta *seg.Meta SRevInfos []*path_mgmt.SignedRevInfo }
Unit contains multiple verification items.
func BuildUnits ¶
func BuildUnits(segMetas []*seg.Meta, sRevInfos []*path_mgmt.SignedRevInfo) []*Unit
BuildUnits constructs one verification unit for each segment, together with its associated revocations.
type UnitResult ¶
func (*UnitResult) SegError ¶ added in v0.2.0
func (r *UnitResult) SegError() error
SegError returns the verification error of the segment or nil if there was none.