strategy_test.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package s3crypto_test
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. "github.com/aws/aws-sdk-go/aws"
  6. "github.com/aws/aws-sdk-go/aws/request"
  7. "github.com/aws/aws-sdk-go/service/s3"
  8. "github.com/aws/aws-sdk-go/service/s3/s3crypto"
  9. )
  10. func TestHeaderV2SaveStrategy(t *testing.T) {
  11. env := s3crypto.Envelope{
  12. CipherKey: "Foo",
  13. IV: "Bar",
  14. MatDesc: "{}",
  15. WrapAlg: s3crypto.KMSWrap,
  16. CEKAlg: s3crypto.AESGCMNoPadding,
  17. TagLen: "128",
  18. UnencryptedMD5: "hello",
  19. UnencryptedContentLen: "0",
  20. }
  21. params := &s3.PutObjectInput{}
  22. req := &request.Request{
  23. Params: params,
  24. }
  25. strat := s3crypto.HeaderV2SaveStrategy{}
  26. err := strat.Save(env, req)
  27. assert.NoError(t, err)
  28. expected := map[string]*string{
  29. "X-Amz-Key-V2": aws.String("Foo"),
  30. "X-Amz-Iv": aws.String("Bar"),
  31. "X-Amz-Matdesc": aws.String("{}"),
  32. "X-Amz-Wrap-Alg": aws.String(s3crypto.KMSWrap),
  33. "X-Amz-Cek-Alg": aws.String(s3crypto.AESGCMNoPadding),
  34. "X-Amz-Tag-Len": aws.String("128"),
  35. "X-Amz-Unencrypted-Content-Md5": aws.String("hello"),
  36. "X-Amz-Unencrypted-Content-Length": aws.String("0"),
  37. }
  38. assert.Equal(t, len(expected), len(params.Metadata))
  39. assert.Equal(t, expected, params.Metadata)
  40. }