github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/db/encryption/fallback_strategy.go (about) 1 package encryption 2 3 type FallbackStrategy struct { 4 main Strategy 5 fallback Strategy 6 } 7 8 func NewFallbackStrategy(main, fallback Strategy) *FallbackStrategy { 9 return &FallbackStrategy{ 10 main: main, 11 fallback: fallback, 12 } 13 } 14 15 func (n *FallbackStrategy) Encrypt(plaintext []byte) (string, *string, error) { 16 return n.main.Encrypt(plaintext) 17 } 18 19 func (n *FallbackStrategy) Decrypt(text string, nonce *string) ([]byte, error) { 20 plaintext, err := n.main.Decrypt(text, nonce) 21 if err == nil { 22 return plaintext, nil 23 } 24 return n.fallback.Decrypt(text, nonce) 25 } 26