You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.2 KiB
32 lines
1.2 KiB
package s3_constants
|
|
|
|
// Cryptographic constants
|
|
const (
|
|
// AES block and key sizes
|
|
AESBlockSize = 16 // 128 bits for AES block size (IV length)
|
|
AESKeySize = 32 // 256 bits for AES-256 keys
|
|
|
|
// SSE algorithm identifiers
|
|
SSEAlgorithmAES256 = "AES256"
|
|
SSEAlgorithmKMS = "aws:kms"
|
|
|
|
// SSE type identifiers for response headers and internal processing
|
|
SSETypeC = "SSE-C"
|
|
SSETypeKMS = "SSE-KMS"
|
|
SSETypeS3 = "SSE-S3"
|
|
|
|
// S3 multipart upload limits and offsets
|
|
S3MaxPartSize = 5 * 1024 * 1024 * 1024 // 5GB - AWS S3 maximum part size limit
|
|
|
|
// Multipart offset calculation for unique IV generation
|
|
// Using 8GB offset between parts (larger than max part size) to prevent IV collisions
|
|
// Critical for CTR mode encryption security in multipart uploads
|
|
PartOffsetMultiplier = int64(1) << 33 // 8GB per part offset
|
|
|
|
// KMS validation limits based on AWS KMS service constraints
|
|
MaxKMSEncryptionContextPairs = 10 // Maximum number of encryption context key-value pairs
|
|
MaxKMSKeyIDLength = 500 // Maximum length for KMS key identifiers
|
|
|
|
// S3 multipart upload limits based on AWS S3 service constraints
|
|
MaxS3MultipartParts = 10000 // Maximum number of parts in a multipart upload (1-10,000)
|
|
)
|