Documentation
¶
Index ¶
- Constants
- Variables
- func NewMerkleWriter(o *MerkleWriterOptions) ioutil.WriteFlushResetter
- func NewSignAllWriter(o *SignAllWriterOptions) ioutil.WriteFlushResetter
- func NewWriter(s SignatureSigner, v SwarmVerifier, w ioutil.WriteFlushResetter, ...) (ioutil.WriteFlushResetter, error)
- type ChannelVerifier
- type ChunkVerifier
- type ED25519Signer
- type ED25519Verifier
- type HashFunc
- type LiveSignatureAlgorithm
- type MerkleChannelVerifier
- type MerkleChunkVerifier
- type MerkleHashTreeFunction
- type MerkleOptions
- type MerkleSwarmVerifier
- func (v *MerkleSwarmVerifier) ChannelVerifier() ChannelVerifier
- func (v *MerkleSwarmVerifier) ExportCache() *swarmpb.Cache_Integrity
- func (v *MerkleSwarmVerifier) ImportCache(c *swarmpb.Cache) error
- func (v *MerkleSwarmVerifier) Reset()
- func (v *MerkleSwarmVerifier) WriteIntegrity(b binmap.Bin, m *binmap.Map, w Writer) (int, error)
- type MerkleWriterOptions
- type NoneChannelVerifier
- type NoneChunkVerifier
- type NoneSigner
- type NoneSwarmVerifier
- func (v *NoneSwarmVerifier) ChannelVerifier() ChannelVerifier
- func (v *NoneSwarmVerifier) ExportCache() *swarmpb.Cache_Integrity
- func (v *NoneSwarmVerifier) ImportCache(c *swarmpb.Cache) error
- func (v *NoneSwarmVerifier) Reset()
- func (v *NoneSwarmVerifier) WriteIntegrity(b binmap.Bin, m *binmap.Map, w Writer) (int, error)
- type NoneVerifier
- type ProtectionMethod
- type SignAllChannelVerifier
- type SignAllChunkVerifier
- type SignAllOptions
- type SignAllSwarmVerifier
- func (v *SignAllSwarmVerifier) ChannelVerifier() ChannelVerifier
- func (v *SignAllSwarmVerifier) ExportCache() *swarmpb.Cache_Integrity
- func (v *SignAllSwarmVerifier) ImportCache(c *swarmpb.Cache) error
- func (v *SignAllSwarmVerifier) Reset()
- func (v *SignAllSwarmVerifier) WriteIntegrity(b binmap.Bin, m *binmap.Map, w Writer) (int, error)
- type SignAllWriterOptions
- type SignatureSigner
- type SignatureVerifier
- type SwarmVerifier
- type SwarmVerifierOptions
- type SwarmWriterOptions
- type VerifierOptions
- type Writer
Constants ¶
const ED25519SignatureSize = ed25519.SignatureSize
const NoneSignatureSize = 0
Variables ¶
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 ...
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 ...
func NewWriter ¶
func NewWriter(s SignatureSigner, v SwarmVerifier, w ioutil.WriteFlushResetter, opt SwarmWriterOptions) (ioutil.WriteFlushResetter, error)
NewWriter ...
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 ...
type ED25519Verifier ¶
type ED25519Verifier struct {
// contains filtered or unexported fields
}
ED25519Verifier ...
func NewED25519Verifier ¶
func NewED25519Verifier(key ed25519.PublicKey) *ED25519Verifier
NewED25519Verifier ...
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) SetIntegrity ¶
func (v *MerkleChunkVerifier) SetIntegrity(b binmap.Bin, hash []byte)
SetIntegrity ...
func (*MerkleChunkVerifier) SetSignedIntegrity ¶
SetSignedIntegrity ...
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 ¶
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 ¶
SetSignedIntegrity ...
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 ¶
WriteIntegrity ...
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 ¶
SetSignedIntegrity ...
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 ¶
WriteIntegrity ...
type SignAllWriterOptions ¶
type SignAllWriterOptions struct {
Verifier *SignAllSwarmVerifier
Writer ioutil.WriteFlushResetter
ChunkSize int
Signer SignatureSigner
}
SignAllWriterOptions ...
type SignatureSigner ¶
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 ¶
func NewVerifier(v SignatureVerifier, opt SwarmVerifierOptions) (SwarmVerifier, error)
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 ...