crypto: implement Stringer for S3 and SSEC (#6216)

This commit adds a `fmt.Stringer` implementation for
SSE-S3 and SSE-C. The string representation is the
domain used for object key sealing.
See: `ObjectKey.Seal(...)` and `ObjectKey.Unseal(...)`
This commit is contained in:
Andreas Auernhammer 2018-07-31 20:15:12 +02:00 committed by kannappanr
parent b16e33bcf5
commit a7c9058375
2 changed files with 39 additions and 0 deletions

View File

@ -65,6 +65,14 @@ const (
InsecureSealAlgorithm = "DARE-SHA256" InsecureSealAlgorithm = "DARE-SHA256"
) )
// String returns the SSE domain as string. For SSE-S3 the
// domain is "SSE-S3".
func (s3) String() string { return "SSE-S3" }
// String returns the SSE domain as string. For SSE-C the
// domain is "SSE-C".
func (ssec) String() string { return "SSE-C" }
// EncryptSinglePart encrypts an io.Reader which must be the // EncryptSinglePart encrypts an io.Reader which must be the
// the body of a single-part PUT request. // the body of a single-part PUT request.
func EncryptSinglePart(r io.Reader, key ObjectKey) io.Reader { func EncryptSinglePart(r io.Reader, key ObjectKey) io.Reader {

31
cmd/crypto/sse_test.go Normal file
View File

@ -0,0 +1,31 @@
// Minio Cloud Storage, (C) 2015, 2016, 2017, 2018 Minio, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package crypto
import "testing"
func TestS3String(t *testing.T) {
const Domain = "SSE-S3"
if domain := S3.String(); domain != Domain {
t.Errorf("S3's string method returns wrong domain: got '%s' - want '%s'", domain, Domain)
}
}
func TestSSECString(t *testing.T) {
const Domain = "SSE-C"
if domain := SSEC.String(); domain != Domain {
t.Errorf("SSEC's string method returns wrong domain: got '%s' - want '%s'", domain, Domain)
}
}