mirror of
https://github.com/containers/skopeo.git
synced 2025-09-22 18:37:21 +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:
21
vendor/github.com/klauspost/compress/zstd/framedec.go
generated
vendored
21
vendor/github.com/klauspost/compress/zstd/framedec.go
generated
vendored
@@ -49,7 +49,8 @@ type frameDec struct {
|
||||
|
||||
const (
|
||||
// The minimum Window_Size is 1 KB.
|
||||
minWindowSize = 1 << 10
|
||||
MinWindowSize = 1 << 10
|
||||
MaxWindowSize = 1 << 30
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -60,7 +61,7 @@ var (
|
||||
func newFrameDec(o decoderOptions) *frameDec {
|
||||
d := frameDec{
|
||||
o: o,
|
||||
maxWindowSize: 1 << 30,
|
||||
maxWindowSize: MaxWindowSize,
|
||||
}
|
||||
if d.maxWindowSize > o.maxDecodedSize {
|
||||
d.maxWindowSize = o.maxDecodedSize
|
||||
@@ -193,14 +194,14 @@ func (d *frameDec) reset(br byteBuffer) error {
|
||||
// When FCS_Field_Size is 2, the offset of 256 is added.
|
||||
d.FrameContentSize = uint64(b[0]) | (uint64(b[1]) << 8) + 256
|
||||
case 4:
|
||||
d.FrameContentSize = uint64(b[0]) | (uint64(b[1]) << 8) | (uint64(b[2]) << 16) | (uint64(b[3] << 24))
|
||||
d.FrameContentSize = uint64(b[0]) | (uint64(b[1]) << 8) | (uint64(b[2]) << 16) | (uint64(b[3]) << 24)
|
||||
case 8:
|
||||
d1 := uint32(b[0]) | (uint32(b[1]) << 8) | (uint32(b[2]) << 16) | (uint32(b[3]) << 24)
|
||||
d2 := uint32(b[4]) | (uint32(b[5]) << 8) | (uint32(b[6]) << 16) | (uint32(b[7]) << 24)
|
||||
d.FrameContentSize = uint64(d1) | (uint64(d2) << 32)
|
||||
}
|
||||
if debug {
|
||||
println("field size bits:", v, "fcsSize:", fcsSize, "FrameContentSize:", d.FrameContentSize, hex.EncodeToString(b[:fcsSize]))
|
||||
println("field size bits:", v, "fcsSize:", fcsSize, "FrameContentSize:", d.FrameContentSize, hex.EncodeToString(b[:fcsSize]), "singleseg:", d.SingleSegment, "window:", d.WindowSize)
|
||||
}
|
||||
}
|
||||
// Move this to shared.
|
||||
@@ -215,8 +216,8 @@ func (d *frameDec) reset(br byteBuffer) error {
|
||||
if d.WindowSize == 0 && d.SingleSegment {
|
||||
// We may not need window in this case.
|
||||
d.WindowSize = d.FrameContentSize
|
||||
if d.WindowSize < minWindowSize {
|
||||
d.WindowSize = minWindowSize
|
||||
if d.WindowSize < MinWindowSize {
|
||||
d.WindowSize = MinWindowSize
|
||||
}
|
||||
}
|
||||
|
||||
@@ -225,7 +226,7 @@ func (d *frameDec) reset(br byteBuffer) error {
|
||||
return ErrWindowSizeExceeded
|
||||
}
|
||||
// The minimum Window_Size is 1 KB.
|
||||
if d.WindowSize < minWindowSize {
|
||||
if d.WindowSize < MinWindowSize {
|
||||
println("got window size: ", d.WindowSize)
|
||||
return ErrWindowSizeTooSmall
|
||||
}
|
||||
@@ -309,7 +310,9 @@ func (d *frameDec) checkCRC() error {
|
||||
}
|
||||
return ErrCRCMismatch
|
||||
}
|
||||
println("CRC ok")
|
||||
if debug {
|
||||
println("CRC ok", tmp[:])
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -411,6 +414,7 @@ func (d *frameDec) startDecoder(output chan decodeOutput) {
|
||||
}
|
||||
written += int64(len(r.b))
|
||||
if d.SingleSegment && uint64(written) > d.FrameContentSize {
|
||||
println("runDecoder: single segment and", uint64(written), ">", d.FrameContentSize)
|
||||
r.err = ErrFrameSizeExceeded
|
||||
output <- r
|
||||
return
|
||||
@@ -461,6 +465,7 @@ func (d *frameDec) runDecoder(dst []byte, dec *blockDec) ([]byte, error) {
|
||||
break
|
||||
}
|
||||
if d.SingleSegment && uint64(len(d.history.b)) > d.o.maxDecodedSize {
|
||||
println("runDecoder: single segment and", uint64(len(d.history.b)), ">", d.o.maxDecodedSize)
|
||||
err = ErrFrameSizeExceeded
|
||||
break
|
||||
}
|
||||
|
Reference in New Issue
Block a user