@ -320,8 +320,7 @@ func (cr *s3ChunkedReader) Read(buf []byte) (n int, err error) {
return 0 , cr . err
return 0 , cr . err
}
}
// Check checksum only for signed streaming
if cr . cred != nil {
// Validate checksum for data integrity (required for both signed and unsigned streaming with trailers)
computedChecksum := cr . checkSumWriter . Sum ( nil )
computedChecksum := cr . checkSumWriter . Sum ( nil )
base64Checksum := base64 . StdEncoding . EncodeToString ( computedChecksum )
base64Checksum := base64 . StdEncoding . EncodeToString ( computedChecksum )
if string ( extractedChecksum ) != base64Checksum {
if string ( extractedChecksum ) != base64Checksum {
@ -329,7 +328,6 @@ func (cr *s3ChunkedReader) Read(buf []byte) (n int, err error) {
cr . err = errors . New ( s3err . ErrMsgPayloadChecksumMismatch )
cr . err = errors . New ( s3err . ErrMsgPayloadChecksumMismatch )
return 0 , cr . err
return 0 , cr . err
}
}
}
// TODO: Extract signature from trailer chunk and verify it.
// TODO: Extract signature from trailer chunk and verify it.
// For now, we just read the trailer chunk and discard it.
// For now, we just read the trailer chunk and discard it.