dynamiclink

package
v0.0.8 Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2023 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidDynamicLinkData                 = fmt.Errorf("%w for dynamic link", blobtypes.ErrValidationFailed)
	ErrInvalidDynamicLinkDataReservedByte     = fmt.Errorf("%w: invalid value of the reserved byte", ErrInvalidDynamicLinkData)
	ErrInvalidDynamicLinkDataBlobName         = fmt.Errorf("%w: blob name mismatch", ErrInvalidDynamicLinkData)
	ErrInvalidDynamicLinkDataSignature        = fmt.Errorf("%w: signature mismatch", ErrInvalidDynamicLinkData)
	ErrInvalidDynamicLinkDataTruncated        = fmt.Errorf("%w: data truncated", ErrInvalidDynamicLinkData)
	ErrInvalidDynamicLinkDataBlockSize        = fmt.Errorf("%w: block size too large", ErrInvalidDynamicLinkData)
	ErrInvalidDynamicLinkInternalReservedByte = fmt.Errorf("%w: invalid value of the internal reserved byte", ErrInvalidDynamicLinkData)

	ErrInvalidDynamicLinkIVMismatch                  = fmt.Errorf("%w: iv mismatch", ErrInvalidDynamicLinkData)
	ErrInvalidDynamicLinkKeyMismatch                 = fmt.Errorf("%w: key mismatch", ErrInvalidDynamicLinkData)
	ErrInvalidDynamicLinkKeyValidationBlock          = fmt.Errorf("%w: invalid key validation block", ErrInvalidDynamicLinkData)
	ErrInvalidDynamicLinkKeyValidationBlockSignature = fmt.Errorf("%w signature", ErrInvalidDynamicLinkKeyValidationBlock)
)
View Source
var (
	ErrInvalidDynamicLinkAuthInfo = errors.New("invalid dynamic link auth info")
)

Functions

This section is empty.

Types

type Public

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

Public represents public link static data

That identity corresponds to a single blob name

func (*Public) BlobName

func (d *Public) BlobName() *common.BlobName

type PublicReader

type PublicReader struct {
	Public
	// contains filtered or unexported fields
}

PublicReader can be used to read publicly available information from given public data stream (or validate and stream the data out) The data can only be read once due to a streaming nature (it read the data on-the-fly from another reader).

func FromPublicData

func FromPublicData(name *common.BlobName, r io.Reader) (*PublicReader, error)

FromPublicData creates an encrypted dynamic link data (public part) from given io.Reader

Invalid links are rejected - i.e. if there's any error while reading the data or when the validation of the link fails for whatever reason

func (*PublicReader) GetEncryptedLinkReader

func (d *PublicReader) GetEncryptedLinkReader() io.Reader

func (*PublicReader) GetLinkDataReader

func (d *PublicReader) GetLinkDataReader(key *common.BlobKey) (io.Reader, error)

func (*PublicReader) GetPublicDataReader

func (d *PublicReader) GetPublicDataReader() io.Reader

func (*PublicReader) GreaterThan

func (d *PublicReader) GreaterThan(d2 *PublicReader) bool

type Publisher

type Publisher struct {
	Public
	// contains filtered or unexported fields
}

func Create

func Create(randSource io.Reader) (*Publisher, error)

func FromAuthInfo

func FromAuthInfo(authInfo *common.AuthInfo) (*Publisher, error)

func ReNonce

func ReNonce(p *Publisher, randSource io.Reader) (*Publisher, error)

func (*Publisher) AuthInfo

func (dl *Publisher) AuthInfo() *common.AuthInfo

func (*Publisher) EncryptionKey added in v0.0.7

func (dl *Publisher) EncryptionKey() *common.BlobKey

func (*Publisher) UpdateLinkData

func (dl *Publisher) UpdateLinkData(r io.Reader, version uint64) (*PublicReader, *common.BlobKey, error)

Jump to

Keyboard shortcuts

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