integrity

package
v0.0.0-...-249e25c Latest Latest
Warning

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

Go to latest
Published: Jun 10, 2025 License: AGPL-3.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const ED25519SignatureSize = ed25519.SignatureSize
View Source
const NoneSignatureSize = 0

Variables

View Source
var (
	ErrMissingHashSubtree = errors.New("missing hash subtree")
	ErrSignatureTooShort  = errors.New("signature too short")
	ErrInvalidSignature   = errors.New("signature mismatch")
	ErrBinOutOfBounds     = errors.New("bin out of bounds")
)

errors ...

View Source
var (
	ErrMissingChunkSignature = errors.New("missing chunk signature")
	ErrInvalidChunkSignature = errors.New("invalid chunk signature")
)

errors ...

Functions

func NewMerkleWriter

func NewMerkleWriter(o *MerkleWriterOptions) ioutil.WriteFlushResetter

NewMerkleWriter ...

func NewSignAllWriter

func NewSignAllWriter(o *SignAllWriterOptions) ioutil.WriteFlushResetter

NewSignAllWriter ...

Types

type ChannelVerifier

type ChannelVerifier interface {
	ChunkVerifier(b binmap.Bin) ChunkVerifier
}

ChannelVerifier ...

type ChunkVerifier

type ChunkVerifier interface {
	SetSignedIntegrity(b binmap.Bin, t timeutil.Time, sig []byte)
	SetIntegrity(b binmap.Bin, hash []byte)
	Verify(b binmap.Bin, d []byte) (bool, error)
}

ChunkVerifier ...

type ED25519Signer

type ED25519Signer struct {
	// contains filtered or unexported fields
}

ED25519Signer ...

func NewED25519Signer

func NewED25519Signer(key ed25519.PrivateKey) *ED25519Signer

NewED25519Signer ...

func (*ED25519Signer) Sign

func (s *ED25519Signer) Sign(t timeutil.Time, p []byte) []byte

Sign ...

func (*ED25519Signer) Size

func (s *ED25519Signer) Size() int

Size ...

type ED25519Verifier

type ED25519Verifier struct {
	// contains filtered or unexported fields
}

ED25519Verifier ...

func NewED25519Verifier

func NewED25519Verifier(key ed25519.PublicKey) *ED25519Verifier

NewED25519Verifier ...

func (*ED25519Verifier) Size

func (s *ED25519Verifier) Size() int

Size ...

func (*ED25519Verifier) Verify

func (s *ED25519Verifier) Verify(t timeutil.Time, p []byte, sig []byte) bool

Verify ...

type HashFunc

type HashFunc func() hash.Hash

HashFunc ...

type LiveSignatureAlgorithm

type LiveSignatureAlgorithm uint8

LiveSignatureAlgorithm ...

const (
	LiveSignatureAlgorithmNone LiveSignatureAlgorithm
	LiveSignatureAlgorithmED25519
)

LiveSignatureAlgorithms ...

func (LiveSignatureAlgorithm) SignatureSize

func (a LiveSignatureAlgorithm) SignatureSize() int

SignatureSize ...

func (LiveSignatureAlgorithm) Signer

func (a LiveSignatureAlgorithm) Signer(key []byte) (SignatureSigner, error)

Signer ...

func (LiveSignatureAlgorithm) Verifier

func (a LiveSignatureAlgorithm) Verifier(key []byte) (SignatureVerifier, error)

Verifier ...

type MerkleChannelVerifier

type MerkleChannelVerifier struct {
	// contains filtered or unexported fields
}

MerkleChannelVerifier ...

func (*MerkleChannelVerifier) ChunkVerifier

func (v *MerkleChannelVerifier) ChunkVerifier(b binmap.Bin) ChunkVerifier

ChunkVerifier ...

type MerkleChunkVerifier

type MerkleChunkVerifier struct {
	// contains filtered or unexported fields
}

MerkleChunkVerifier ...

func (*MerkleChunkVerifier) Reset

func (v *MerkleChunkVerifier) Reset(b binmap.Bin)

Reset ...

func (*MerkleChunkVerifier) SetIntegrity

func (v *MerkleChunkVerifier) SetIntegrity(b binmap.Bin, hash []byte)

SetIntegrity ...

func (*MerkleChunkVerifier) SetSignedIntegrity

func (v *MerkleChunkVerifier) SetSignedIntegrity(b binmap.Bin, ts timeutil.Time, sig []byte)

SetSignedIntegrity ...

func (*MerkleChunkVerifier) Verify

func (v *MerkleChunkVerifier) Verify(b binmap.Bin, d []byte) (bool, error)

Verify ...

type MerkleHashTreeFunction

type MerkleHashTreeFunction uint8

MerkleHashTreeFunction ...

const (
	MerkleHashTreeFunctionSHA1 MerkleHashTreeFunction
	MerkleHashTreeFunctionSHA256
	MerkleHashTreeFunctionSHA512
	MerkleHashTreeFunctionBLAKE2B256
	MerkleHashTreeFunctionBLAKE2B512
	MerkleHashTreeFunctionMD5
	MerkleHashTreeFunctionBLAKE3
	MerkleHashTreeFunctionSHA3224
	MerkleHashTreeFunctionSHA3256
	MerkleHashTreeFunctionSHA3384
	MerkleHashTreeFunctionSHA3512
)

MerkleHashTreeFunctions ...

func (MerkleHashTreeFunction) HashFunc

func (f MerkleHashTreeFunction) HashFunc() HashFunc

HashFunc ...

func (MerkleHashTreeFunction) HashSize

func (f MerkleHashTreeFunction) HashSize() int

HashSize ...

type MerkleOptions

type MerkleOptions struct {
	LiveDiscardWindow  int
	ChunkSize          int
	ChunksPerSignature int
	Verifier           SignatureVerifier
	Hash               HashFunc
}

MerkleOptions ...

type MerkleSwarmVerifier

type MerkleSwarmVerifier struct {
	// contains filtered or unexported fields
}

MerkleSwarmVerifier ...

func NewMerkleSwarmVerifier

func NewMerkleSwarmVerifier(o *MerkleOptions) *MerkleSwarmVerifier

NewMerkleSwarmVerifier ...

func (*MerkleSwarmVerifier) ChannelVerifier

func (v *MerkleSwarmVerifier) ChannelVerifier() ChannelVerifier

ChannelVerifier ...

func (*MerkleSwarmVerifier) ExportCache

func (v *MerkleSwarmVerifier) ExportCache() *swarmpb.Cache_Integrity

func (*MerkleSwarmVerifier) ImportCache

func (v *MerkleSwarmVerifier) ImportCache(c *swarmpb.Cache) error

func (*MerkleSwarmVerifier) Reset

func (v *MerkleSwarmVerifier) Reset()

func (*MerkleSwarmVerifier) WriteIntegrity

func (v *MerkleSwarmVerifier) WriteIntegrity(b binmap.Bin, m *binmap.Map, w Writer) (int, error)

WriteIntegrity ...

type MerkleWriterOptions

type MerkleWriterOptions struct {
	Verifier           *MerkleSwarmVerifier
	Writer             ioutil.WriteFlushResetter
	ChunksPerSignature int
	ChunkSize          int
	Signer             SignatureSigner
}

MerkleWriterOptions ...

type NoneChannelVerifier

type NoneChannelVerifier struct{}

NoneChannelVerifier ...

func (*NoneChannelVerifier) ChunkVerifier

func (v *NoneChannelVerifier) ChunkVerifier(b binmap.Bin) ChunkVerifier

ChunkVerifier ...

type NoneChunkVerifier

type NoneChunkVerifier struct{}

NoneChunkVerifier ...

func (*NoneChunkVerifier) SetIntegrity

func (v *NoneChunkVerifier) SetIntegrity(b binmap.Bin, hash []byte)

SetIntegrity ...

func (*NoneChunkVerifier) SetSignedIntegrity

func (v *NoneChunkVerifier) SetSignedIntegrity(b binmap.Bin, ts timeutil.Time, sig []byte)

SetSignedIntegrity ...

func (*NoneChunkVerifier) Verify

func (v *NoneChunkVerifier) Verify(b binmap.Bin, d []byte) (bool, error)

Verify ...

type NoneSigner

type NoneSigner struct{}

NoneSigner ...

func NewNoneSigner

func NewNoneSigner() *NoneSigner

NewNoneSigner ...

func (*NoneSigner) Sign

func (s *NoneSigner) Sign(t timeutil.Time, p []byte) []byte

Sign ...

func (*NoneSigner) Size

func (s *NoneSigner) Size() int

Size ...

type NoneSwarmVerifier

type NoneSwarmVerifier struct{}

NoneSwarmVerifier ...

func (*NoneSwarmVerifier) ChannelVerifier

func (v *NoneSwarmVerifier) ChannelVerifier() ChannelVerifier

ChannelVerifier ...

func (*NoneSwarmVerifier) ExportCache

func (v *NoneSwarmVerifier) ExportCache() *swarmpb.Cache_Integrity

func (*NoneSwarmVerifier) ImportCache

func (v *NoneSwarmVerifier) ImportCache(c *swarmpb.Cache) error

func (*NoneSwarmVerifier) Reset

func (v *NoneSwarmVerifier) Reset()

func (*NoneSwarmVerifier) WriteIntegrity

func (v *NoneSwarmVerifier) WriteIntegrity(b binmap.Bin, m *binmap.Map, w Writer) (int, error)

WriteIntegrity ...

type NoneVerifier

type NoneVerifier struct{}

NoneVerifier ...

func NewNoneVerifier

func NewNoneVerifier() *NoneVerifier

NewNoneVerifier ...

func (*NoneVerifier) Size

func (s *NoneVerifier) Size() int

Size ...

func (*NoneVerifier) Verify

func (s *NoneVerifier) Verify(t timeutil.Time, p []byte, sig []byte) bool

Verify ...

type ProtectionMethod

type ProtectionMethod uint8

ProtectionMethod ...

const (
	ProtectionMethodNone ProtectionMethod
	ProtectionMethodMerkleTree
	ProtectionMethodSignAll
)

ProtectionMethods ...

type SignAllChannelVerifier

type SignAllChannelVerifier struct {
	// contains filtered or unexported fields
}

SignAllChannelVerifier ...

func (*SignAllChannelVerifier) ChunkVerifier

func (v *SignAllChannelVerifier) ChunkVerifier(b binmap.Bin) ChunkVerifier

ChunkVerifier ...

type SignAllChunkVerifier

type SignAllChunkVerifier struct {
	// contains filtered or unexported fields
}

SignAllChunkVerifier ...

func (*SignAllChunkVerifier) SetIntegrity

func (v *SignAllChunkVerifier) SetIntegrity(b binmap.Bin, d []byte)

SetIntegrity ...

func (*SignAllChunkVerifier) SetSignedIntegrity

func (v *SignAllChunkVerifier) SetSignedIntegrity(b binmap.Bin, ts timeutil.Time, sig []byte)

SetSignedIntegrity ...

func (*SignAllChunkVerifier) Verify

func (v *SignAllChunkVerifier) Verify(b binmap.Bin, d []byte) (bool, error)

Verify ...

type SignAllOptions

type SignAllOptions struct {
	LiveDiscardWindow int
	ChunkSize         int
	Verifier          SignatureVerifier
	Hash              HashFunc
}

SignAllOptions ...

type SignAllSwarmVerifier

type SignAllSwarmVerifier struct {
	// contains filtered or unexported fields
}

SignAllSwarmVerifier ...

func NewSignAllSwarmVerifier

func NewSignAllSwarmVerifier(o *SignAllOptions) *SignAllSwarmVerifier

NewSignAllSwarmVerifier ...

func (*SignAllSwarmVerifier) ChannelVerifier

func (v *SignAllSwarmVerifier) ChannelVerifier() ChannelVerifier

ChannelVerifier ...

func (*SignAllSwarmVerifier) ExportCache

func (v *SignAllSwarmVerifier) ExportCache() *swarmpb.Cache_Integrity

func (*SignAllSwarmVerifier) ImportCache

func (v *SignAllSwarmVerifier) ImportCache(c *swarmpb.Cache) error

func (*SignAllSwarmVerifier) Reset

func (v *SignAllSwarmVerifier) Reset()

func (*SignAllSwarmVerifier) WriteIntegrity

func (v *SignAllSwarmVerifier) WriteIntegrity(b binmap.Bin, m *binmap.Map, w Writer) (int, error)

WriteIntegrity ...

type SignAllWriterOptions

type SignAllWriterOptions struct {
	Verifier  *SignAllSwarmVerifier
	Writer    ioutil.WriteFlushResetter
	ChunkSize int
	Signer    SignatureSigner
}

SignAllWriterOptions ...

type SignatureSigner

type SignatureSigner interface {
	Sign(timestamp timeutil.Time, hash []byte) []byte
	Size() int
}

SignatureSigner ...

type SignatureVerifier

type SignatureVerifier interface {
	Verify(timestamp timeutil.Time, hash, sig []byte) bool
	Size() int
}

SignatureVerifier ...

type SwarmVerifier

type SwarmVerifier interface {
	WriteIntegrity(b binmap.Bin, m *binmap.Map, w Writer) (int, error)
	ChannelVerifier() ChannelVerifier
	ImportCache(c *swarmpb.Cache) error
	ExportCache() *swarmpb.Cache_Integrity
	Reset()
}

SwarmVerifier ...

func NewVerifier

NewVerifier ...

type SwarmVerifierOptions

type SwarmVerifierOptions struct {
	LiveDiscardWindow  int
	ChunkSize          int
	ChunksPerSignature int
	VerifierOptions
}

SwarmVerifierOptions ...

func (SwarmVerifierOptions) MaxMessageBytes

func (o SwarmVerifierOptions) MaxMessageBytes() int

MaxMessageBytes ...

type SwarmWriterOptions

type SwarmWriterOptions struct {
	LiveSignatureAlgorithm LiveSignatureAlgorithm
	ProtectionMethod       ProtectionMethod
	ChunkSize              int
	ChunksPerSignature     int
}

SwarmWriterOptions ...

type VerifierOptions

type VerifierOptions struct {
	ProtectionMethod       ProtectionMethod
	MerkleHashTreeFunction MerkleHashTreeFunction
	LiveSignatureAlgorithm LiveSignatureAlgorithm
}

VerifierOptions ...

func NewDefaultVerifierOptions

func NewDefaultVerifierOptions() VerifierOptions

NewDefaultVerifierOptions ...

type Writer

type Writer interface {
	WriteSignedIntegrity(m codec.SignedIntegrity) (int, error)
	WriteIntegrity(m codec.Integrity) (int, error)
}

Writer ...

Jump to

Keyboard shortcuts

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