mirror of
https://github.com/containers/skopeo.git
synced 2025-09-23 02:48:26 +00:00
Image encryption/decryption support in skopeo
Signed-off-by: Harshal Patil <harshal.patil@in.ibm.com> Signed-off-by: Brandon Lum <lumjjb@gmail.com>
This commit is contained in:
36
vendor/github.com/klauspost/compress/zstd/encoder_options.go
generated
vendored
36
vendor/github.com/klauspost/compress/zstd/encoder_options.go
generated
vendored
@@ -1,6 +1,7 @@
|
||||
package zstd
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"runtime"
|
||||
"strings"
|
||||
@@ -18,6 +19,7 @@ type encoderOptions struct {
|
||||
blockSize int
|
||||
windowSize int
|
||||
level EncoderLevel
|
||||
fullZero bool
|
||||
}
|
||||
|
||||
func (o *encoderOptions) setDefault() {
|
||||
@@ -63,6 +65,30 @@ func WithEncoderConcurrency(n int) EOption {
|
||||
}
|
||||
}
|
||||
|
||||
// WithWindowSize will set the maximum allowed back-reference distance.
|
||||
// The value must be a power of two between WindowSizeMin and WindowSizeMax.
|
||||
// A larger value will enable better compression but allocate more memory and,
|
||||
// for above-default values, take considerably longer.
|
||||
// The default value is determined by the compression level.
|
||||
func WithWindowSize(n int) EOption {
|
||||
return func(o *encoderOptions) error {
|
||||
switch {
|
||||
case n < MinWindowSize:
|
||||
return fmt.Errorf("window size must be at least %d", MinWindowSize)
|
||||
case n > MaxWindowSize:
|
||||
return fmt.Errorf("window size must be at most %d", MaxWindowSize)
|
||||
case (n & (n - 1)) != 0:
|
||||
return errors.New("window size must be a power of 2")
|
||||
}
|
||||
|
||||
o.windowSize = n
|
||||
if o.blockSize > o.windowSize {
|
||||
o.blockSize = o.windowSize
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// WithEncoderPadding will add padding to all output so the size will be a multiple of n.
|
||||
// This can be used to obfuscate the exact output size or make blocks of a certain size.
|
||||
// The contents will be a skippable frame, so it will be invisible by the decoder.
|
||||
@@ -166,6 +192,16 @@ func WithEncoderLevel(l EncoderLevel) EOption {
|
||||
}
|
||||
}
|
||||
|
||||
// WithZeroFrames will encode 0 length input as full frames.
|
||||
// This can be needed for compatibility with zstandard usage,
|
||||
// but is not needed for this package.
|
||||
func WithZeroFrames(b bool) EOption {
|
||||
return func(o *encoderOptions) error {
|
||||
o.fullZero = b
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// WithSingleSegment will set the "single segment" flag when EncodeAll is used.
|
||||
// If this flag is set, data must be regenerated within a single continuous memory segment.
|
||||
// In this case, Window_Descriptor byte is skipped, but Frame_Content_Size is necessarily present.
|
||||
|
Reference in New Issue
Block a user