1package s3crypto
2
3import "fmt"
4
5type clientVersion int
6
7const (
8	v1ClientVersion clientVersion = 1 + iota
9	v2ClientVersion
10)
11
12var errDeprecatedIncompatibleCipherBuilder = fmt.Errorf("attempted to use deprecated or incompatible cipher builder")
13
14// compatibleEncryptionFixture is an unexported interface to expose whether a given fixture is compatible for encryption
15// given the provided client version.
16type compatibleEncryptionFixture interface {
17	isEncryptionVersionCompatible(clientVersion) error
18}
19
20// awsFixture is an unexported interface to expose whether a given fixture is an aws provided fixture, and whether that
21// fixtures dependencies were constructed using aws types.
22//
23// This interface is used in v2 clients to warn users if they are using custom implementations of ContentCipherBuilder
24// or CipherDataGenerator.
25type awsFixture interface {
26	isAWSFixture() bool
27}
28