MCPcopy
hub / github.com/minio/minio-go / testSSECEncryptionPutGet

Function testSSECEncryptionPutGet

functional_tests.go:7127–7218  ·  view source on GitHub ↗

testSSECEncryptionPutGet tests encryption with customer provided encryption keys

()

Source from the content-addressed store, hash-verified

7125
7126// testSSECEncryptionPutGet tests encryption with customer provided encryption keys
7127func testSSECEncryptionPutGet() {
7128 // initialize logging params
7129 startTime := time.Now()
7130 testName := getFuncName()
7131 function := "PutEncryptedObject(bucketName, objectName, reader, sse)"
7132 args := map[string]interface{}{
7133 "bucketName": "",
7134 "objectName": "",
7135 "sse": "",
7136 }
7137
7138 c, err := NewClient(ClientConfig{})
7139 if err != nil {
7140 logError(testName, function, args, startTime, "", "MinIO client object creation failed", err)
7141 return
7142 }
7143
7144 // Generate a new random bucket name.
7145 bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-")
7146 args["bucketName"] = bucketName
7147
7148 // Make a new bucket.
7149 err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"})
7150 if err != nil {
7151 logError(testName, function, args, startTime, "", "MakeBucket failed", err)
7152 return
7153 }
7154
7155 defer cleanupBucket(bucketName, c)
7156
7157 testCases := []struct {
7158 buf []byte
7159 }{
7160 {buf: bytes.Repeat([]byte("F"), 1)},
7161 {buf: bytes.Repeat([]byte("F"), 15)},
7162 {buf: bytes.Repeat([]byte("F"), 16)},
7163 {buf: bytes.Repeat([]byte("F"), 17)},
7164 {buf: bytes.Repeat([]byte("F"), 31)},
7165 {buf: bytes.Repeat([]byte("F"), 32)},
7166 {buf: bytes.Repeat([]byte("F"), 33)},
7167 {buf: bytes.Repeat([]byte("F"), 1024)},
7168 {buf: bytes.Repeat([]byte("F"), 1024*2)},
7169 {buf: bytes.Repeat([]byte("F"), 1024*1024)},
7170 }
7171
7172 const password = "correct horse battery staple" // https://xkcd.com/936/
7173
7174 for i, testCase := range testCases {
7175 // Generate a random object name
7176 objectName := randString(60, rand.NewSource(time.Now().UnixNano()), "")
7177 args["objectName"] = objectName
7178
7179 // Secured object
7180 sse := encrypt.DefaultPBKDF([]byte(password), []byte(bucketName+objectName))
7181 args["sse"] = sse
7182
7183 // Put encrypted data
7184 _, err = c.PutObject(context.Background(), bucketName, objectName, bytes.NewReader(testCase.buf), int64(len(testCase.buf)), minio.PutObjectOptions{ServerSideEncryption: sse})

Callers 1

mainFunction · 0.85

Calls 13

MakeBucketMethod · 0.95
PutObjectMethod · 0.95
GetObjectMethod · 0.95
getFuncNameFunction · 0.85
NewClientFunction · 0.85
logErrorFunction · 0.85
cleanupBucketFunction · 0.85
logSuccessFunction · 0.85
LenMethod · 0.80
EqualMethod · 0.80
randStringFunction · 0.70
CloseMethod · 0.45

Tested by

no test coverage detected