xar

package
v0.0.0-...-f0e06b6 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2025 License: MIT Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	FileEncodingNone  FileEncoding = &fileEncoding{"application/octet-stream", noneCompressor, noneDecompressor}
	FileEncodingGzip  FileEncoding = &fileEncoding{"application/x-gzip", gzipCompressor, gzipDecompressor}
	FileEncodingBzip2 FileEncoding = &fileEncoding{"application/x-bzip2", bzip2Compressor, bzip2Decompressor}

	FileChecksumMD5    FileChecksumStyle = &fileChecksumStyle{"md5", md5.New}
	FileChecksumSHA1   FileChecksumStyle = &fileChecksumStyle{"sha1", sha1.New}
	FileChecksumSHA256 FileChecksumStyle = &fileChecksumStyle{"sha256", sha256.New}
	FileChecksumSHA512 FileChecksumStyle = &fileChecksumStyle{"sha512", sha512.New}
)

Functions

func RegisterFileInfoHeaderPatcher

func RegisterFileInfoHeaderPatcher[T any](patchFn func(fiSys T, hdr *FileHeader))

Types

type File

type File struct {
	FileHeader
	// contains filtered or unexported fields
}

func (*File) Open

func (f *File) Open() (fs.File, error)

func (*File) OpenRaw

func (f *File) OpenRaw() io.Reader

type FileChecksum

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

func NewFileChecksum

func NewFileChecksum(style FileChecksumStyle) *FileChecksum

func (*FileChecksum) Style

func (ch *FileChecksum) Style() FileChecksumStyle

func (*FileChecksum) Value

func (ch *FileChecksum) Value() []byte

type FileChecksumStyle

type FileChecksumStyle interface {
	// contains filtered or unexported methods
}

type FileEncoding

type FileEncoding interface {
	// contains filtered or unexported methods
}

type FileHeader

type FileHeader struct {
	Path                 string
	Encoding             FileEncoding
	CompressedSize       int64
	CompressedChecksum   *FileChecksum
	UncompressedSize     int64
	UncompressedChecksum *FileChecksum
	Mode                 fs.FileMode
	Uid                  string
	User                 string
	Gid                  string
	Group                string
	CreateTime           time.Time
	ModTime              time.Time
	AccessTime           time.Time
	DeviceNo             uint64
	Inode                uint64
	SymlinkTarget        string
	RDeviceMajor         uint32
	RDeviceMinor         uint32
}

func FileInfoHeader

func FileInfoHeader(fi fs.FileInfo) *FileHeader

func (*FileHeader) FileInfo

func (fh *FileHeader) FileInfo() fs.FileInfo

type Reader

type Reader struct {
	Files []*File
	// contains filtered or unexported fields
}

func NewReader

func NewReader(r io.ReaderAt) (*Reader, error)

func NewReaderOffset

func NewReaderOffset(r io.ReaderAt, off int64) (*Reader, error)

func (*Reader) CreationTime

func (r *Reader) CreationTime() time.Time

func (*Reader) Open

func (r *Reader) Open(path string) (fs.File, error)

type SignatureStyle

type SignatureStyle interface {
	// contains filtered or unexported methods
}
var (
	SignatureRSA SignatureStyle = &rsaSignatureStyle{}
)

type TocChecksumStyle

type TocChecksumStyle interface {
	// contains filtered or unexported methods
}
var (
	TocChecksumNone   TocChecksumStyle = &tocChecksumStyle{0, "", 0, hash0.New}
	TocChecksumSHA1   TocChecksumStyle = &tocChecksumStyle{1, "sha1", crypto.SHA1, sha1.New}
	TocChecksumMD5    TocChecksumStyle = &tocChecksumStyle{2, "md5", crypto.MD5, md5.New}
	TocChecksumSHA256 TocChecksumStyle = &tocChecksumStyle{3, "sha256", crypto.SHA256, sha256.New}
	TocChecksumSHA512 TocChecksumStyle = &tocChecksumStyle{4, "sha512", crypto.SHA512, sha512.New}
)

type Writer

type Writer struct {
	TocChecksumStyle  TocChecksumStyle
	FileEncoding      FileEncoding
	FileChecksumStyle FileChecksumStyle
	// contains filtered or unexported fields
}

func NewWriter

func NewWriter(w io.Writer) *Writer

func (*Writer) Add

func (w *Writer) Add(hdr *FileHeader, src io.Reader) error

func (*Writer) AddFS

func (w *Writer) AddFS(src fs.FS) error

func (*Writer) Close

func (w *Writer) Close() error

func (*Writer) Signature

func (w *Writer) Signature(style SignatureStyle, key any, certs ...*x509.Certificate)

Jump to

Keyboard shortcuts

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