mirror of
https://github.com/getsops/sops.git
synced 2026-02-05 12:45:21 +01:00
Support using comments to select parts to encrypt
Signed-off-by: Mitar <mitar.git@tnode.com>
This commit is contained in:
@@ -56,6 +56,8 @@ type Metadata struct {
|
||||
EncryptedSuffix string `yaml:"encrypted_suffix,omitempty" json:"encrypted_suffix,omitempty"`
|
||||
UnencryptedRegex string `yaml:"unencrypted_regex,omitempty" json:"unencrypted_regex,omitempty"`
|
||||
EncryptedRegex string `yaml:"encrypted_regex,omitempty" json:"encrypted_regex,omitempty"`
|
||||
UnencryptedCommentRegex string `yaml:"unencrypted_comment_regex,omitempty" json:"unencrypted_comment_regex,omitempty"`
|
||||
EncryptedCommentRegex string `yaml:"encrypted_comment_regex,omitempty" json:"encrypted_comment_regex,omitempty"`
|
||||
MACOnlyEncrypted bool `yaml:"mac_only_encrypted,omitempty" json:"mac_only_encrypted,omitempty"`
|
||||
Version string `yaml:"version" json:"version"`
|
||||
}
|
||||
@@ -119,6 +121,8 @@ func MetadataFromInternal(sopsMetadata sops.Metadata) Metadata {
|
||||
m.EncryptedSuffix = sopsMetadata.EncryptedSuffix
|
||||
m.UnencryptedRegex = sopsMetadata.UnencryptedRegex
|
||||
m.EncryptedRegex = sopsMetadata.EncryptedRegex
|
||||
m.UnencryptedCommentRegex = sopsMetadata.UnencryptedCommentRegex
|
||||
m.EncryptedCommentRegex = sopsMetadata.EncryptedCommentRegex
|
||||
m.MessageAuthenticationCode = sopsMetadata.MessageAuthenticationCode
|
||||
m.MACOnlyEncrypted = sopsMetadata.MACOnlyEncrypted
|
||||
m.Version = sopsMetadata.Version
|
||||
@@ -260,9 +264,15 @@ func (m *Metadata) ToInternal() (sops.Metadata, error) {
|
||||
if m.EncryptedRegex != "" {
|
||||
cryptRuleCount++
|
||||
}
|
||||
if m.UnencryptedCommentRegex != "" {
|
||||
cryptRuleCount++
|
||||
}
|
||||
if m.EncryptedCommentRegex != "" {
|
||||
cryptRuleCount++
|
||||
}
|
||||
|
||||
if cryptRuleCount > 1 {
|
||||
return sops.Metadata{}, fmt.Errorf("Cannot use more than one of encrypted_suffix, unencrypted_suffix, encrypted_regex or unencrypted_regex in the same file")
|
||||
return sops.Metadata{}, fmt.Errorf("Cannot use more than one of encrypted_suffix, unencrypted_suffix, encrypted_regex, unencrypted_regex, encrypted_comment_regex, or unencrypted_comment_regex in the same file")
|
||||
}
|
||||
|
||||
if cryptRuleCount == 0 {
|
||||
@@ -277,6 +287,8 @@ func (m *Metadata) ToInternal() (sops.Metadata, error) {
|
||||
EncryptedSuffix: m.EncryptedSuffix,
|
||||
UnencryptedRegex: m.UnencryptedRegex,
|
||||
EncryptedRegex: m.EncryptedRegex,
|
||||
UnencryptedCommentRegex: m.UnencryptedCommentRegex,
|
||||
EncryptedCommentRegex: m.EncryptedCommentRegex,
|
||||
MACOnlyEncrypted: m.MACOnlyEncrypted,
|
||||
LastModified: lastModified,
|
||||
}, nil
|
||||
|
||||
Reference in New Issue
Block a user