()
| 9649 | } |
| 9650 | |
| 9651 | func testEncryptedEmptyObject() { |
| 9652 | // initialize logging params |
| 9653 | startTime := time.Now() |
| 9654 | testName := getFuncName() |
| 9655 | function := "PutObject(bucketName, objectName, reader, objectSize, opts)" |
| 9656 | args := map[string]interface{}{} |
| 9657 | |
| 9658 | c, err := NewClient(ClientConfig{}) |
| 9659 | if err != nil { |
| 9660 | logError(testName, function, args, startTime, "", "MinIO v4 client object creation failed", err) |
| 9661 | return |
| 9662 | } |
| 9663 | |
| 9664 | // Generate a new random bucket name. |
| 9665 | bucketName := randString(60, rand.NewSource(time.Now().UnixNano()), "minio-go-test-") |
| 9666 | args["bucketName"] = bucketName |
| 9667 | // Make a new bucket in 'us-east-1' (source bucket). |
| 9668 | err = c.MakeBucket(context.Background(), bucketName, minio.MakeBucketOptions{Region: "us-east-1"}) |
| 9669 | if err != nil { |
| 9670 | logError(testName, function, args, startTime, "", "MakeBucket failed", err) |
| 9671 | return |
| 9672 | } |
| 9673 | |
| 9674 | defer cleanupBucket(bucketName, c) |
| 9675 | |
| 9676 | sse := encrypt.DefaultPBKDF([]byte("correct horse battery staple"), []byte(bucketName+"object")) |
| 9677 | |
| 9678 | // 1. create an sse-c encrypted object to copy by uploading |
| 9679 | const srcSize = 0 |
| 9680 | var buf []byte // Empty buffer |
| 9681 | args["objectName"] = "object" |
| 9682 | _, err = c.PutObject(context.Background(), bucketName, "object", bytes.NewReader(buf), int64(len(buf)), minio.PutObjectOptions{ServerSideEncryption: sse}) |
| 9683 | if err != nil { |
| 9684 | logError(testName, function, args, startTime, "", "PutObject call failed", err) |
| 9685 | return |
| 9686 | } |
| 9687 | |
| 9688 | // 2. Test CopyObject for an empty object |
| 9689 | src := minio.CopySrcOptions{ |
| 9690 | Bucket: bucketName, |
| 9691 | Object: "object", |
| 9692 | Encryption: sse, |
| 9693 | } |
| 9694 | |
| 9695 | dst := minio.CopyDestOptions{ |
| 9696 | Bucket: bucketName, |
| 9697 | Object: "new-object", |
| 9698 | Encryption: sse, |
| 9699 | } |
| 9700 | |
| 9701 | if _, err = c.CopyObject(context.Background(), dst, src); err != nil { |
| 9702 | function = "CopyObject(dst, src)" |
| 9703 | logError(testName, function, map[string]interface{}{}, startTime, "", "CopyObject failed", err) |
| 9704 | return |
| 9705 | } |
| 9706 | |
| 9707 | // 3. Test Key rotation |
| 9708 | newSSE := encrypt.DefaultPBKDF([]byte("Don't Panic"), []byte(bucketName+"new-object")) |
no test coverage detected