()
| 9545 | } |
| 9546 | |
| 9547 | func testEncryptedEmptyObject() { |
| 9548 | // initialize logging params |
| 9549 | startTime := time.Now() |
| 9550 | testName := getFuncName() |
| 9551 | function := "PutObject(bucketName, objectName, reader, objectSize, opts)" |
| 9552 | args := map[string]interface{}{} |
| 9553 | |
| 9554 | c, err := NewClient(ClientConfig{}) |
| 9555 | if err != nil { |
| 9556 | logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err) |
| 9557 | return |
| 9558 | } |
| 9559 | |
| 9560 | // Generate a new random bucket name. |
| 9561 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-") |
| 9562 | args["bucketName"] = bucketName |
| 9563 | // Make a new bucket in 'us-east-1' (source bucket). |
| 9564 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 9565 | if err != nil { |
| 9566 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 9567 | return |
| 9568 | } |
| 9569 | |
| 9570 | defer cleanupBucket(bucketName, c) |
| 9571 | |
| 9572 | sse := encrypt.DefaultPBKDF([]byte("correct horse battery staple"), []byte(bucketName+"object")) |
| 9573 | |
| 9574 | // 1. create an sse-c encrypted object to copy by uploading |
| 9575 | const srcSize = 0 |
| 9576 | var buf []byte // Empty buffer |
| 9577 | args["objectName"] = "object" |
| 9578 | _, err = c.PutObject(context.Background(), bucketName, "object", bytes.NewReader(buf), int64(len(buf)), minio.PutObjectOptions{ServerSideEncryption: sse}) |
| 9579 | if err != nil { |
| 9580 | logError(testName, function, args, startTime, "", "PutObject call failed", err) |
| 9581 | return |
| 9582 | } |
| 9583 | |
| 9584 | // 2. Test CopyObject for an empty object |
| 9585 | src := minio.CopySrcOptions{ |
| 9586 | Bucket: bucketName, |
| 9587 | Object: "object", |
| 9588 | Encryption: sse, |
| 9589 | } |
| 9590 | |
| 9591 | dst := minio.CopyDestOptions{ |
| 9592 | Bucket: bucketName, |
| 9593 | Object: "new-object", |
| 9594 | Encryption: sse, |
| 9595 | } |
| 9596 | |
| 9597 | if _, err = c.CopyObject(context.Background(), dst, src); err != nil { |
| 9598 | function = "CopyObject(dst, src)" |
| 9599 | logError(testName, function, map[string]interface{}{}, startTime, "", "CopyObject failed", err) |
| 9600 | return |
| 9601 | } |
| 9602 | |
| 9603 | // 3. Test Key rotation |
| 9604 | newSSE := encrypt.DefaultPBKDF([]byte("Don't Panic"), []byte(bucketName+"new-object")) |
no test coverage detected