decryptByName returns a *secrets.Keeper for decryption when decoderName contains "decrypt".
(ctx context.Context, decoderName string)
| 540 | // decryptByName returns a *secrets.Keeper for decryption when decoderName |
| 541 | // contains "decrypt". |
| 542 | func decryptByName(ctx context.Context, decoderName string) (*secrets.Keeper, string, error) { |
| 543 | if !strings.HasPrefix(decoderName, "decrypt") { |
| 544 | return nil, decoderName, nil |
| 545 | } |
| 546 | keeperURL := os.Getenv("RUNTIMEVAR_KEEPER_URL") |
| 547 | if keeperURL == "" { |
| 548 | return nil, "", errors.New("environment variable RUNTIMEVAR_KEEPER_URL needed to open a *secrets.Keeper for decryption") |
| 549 | } |
| 550 | k, err := secrets.OpenKeeper(ctx, keeperURL) |
| 551 | if err != nil { |
| 552 | return nil, "", err |
| 553 | } |
| 554 | decoderName = strings.TrimPrefix(decoderName, "decrypt") |
| 555 | if decoderName != "" { |
| 556 | decoderName = strings.TrimLeftFunc(decoderName, func(r rune) bool { |
| 557 | return r == ' ' || r == '+' |
| 558 | }) |
| 559 | } |
| 560 | // The parsed value is "decrypt <decoderName>". |
| 561 | return k, decoderName, nil |
| 562 | } |
| 563 | |
| 564 | func maybeDecrypt(ctx context.Context, k *secrets.Keeper, dec *Decoder) *Decoder { |
| 565 | if k == nil { |
no test coverage detected