From c3a8a8a755418c9a67dd10979d5089592c26ae98 Mon Sep 17 00:00:00 2001 From: Chili Palmer Date: Sun, 21 Jun 2026 14:15:55 +0200 Subject: [PATCH] Simplify secret backend fallback --- AUDIT.md | 1 + lib/bds/ai/secret_backend.ex | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/AUDIT.md b/AUDIT.md index 678862f..eddd2bf 100644 --- a/AUDIT.md +++ b/AUDIT.md @@ -33,6 +33,7 @@ after each item. - [x] `ai/openai_compatible_runtime.ex` - [x] `ai/one_shot.ex` - [x] `ai/secret_key.ex` +- [x] `ai/secret_backend.ex` --- diff --git a/lib/bds/ai/secret_backend.ex b/lib/bds/ai/secret_backend.ex index 32cf838..f00b1fe 100644 --- a/lib/bds/ai/secret_backend.ex +++ b/lib/bds/ai/secret_backend.ex @@ -41,10 +41,7 @@ defmodule BDS.AI.SecretBackend do @spec decrypt(String.t()) :: {:ok, String.t()} | {:error, term()} def decrypt(encoded) when is_binary(encoded) do with {:ok, key} <- secret_key() do - case decrypt_with(encoded, key) do - {:ok, plaintext} -> {:ok, plaintext} - {:error, :invalid_ciphertext} -> decrypt_legacy(encoded) - end + decrypt_with_fallback(encoded, key) end end @@ -79,6 +76,13 @@ defmodule BDS.AI.SecretBackend do ] end + defp decrypt_with_fallback(encoded, key) do + case decrypt_with(encoded, key) do + {:ok, _plaintext} = ok -> ok + {:error, :invalid_ciphertext} -> decrypt_legacy(encoded) + end + end + defp decrypt_with(encoded, key) do with {:ok, binary} <- Base.decode64(encoded), <> <- binary,