difftreelog
fix secret encoding handling
in: trunk
2 files changed
cmds/fleet/src/host.rsdiffbeforeafterboth130 .await130 .await131 .context("failed to call remote host for decrypt")?;131 .context("failed to call remote host for decrypt")?;132 let data: SecretData = encoded.parse().map_err(|e| anyhow!("{e}"))?;132 let data: SecretData = encoded.parse().map_err(|e| anyhow!("{e}"))?;133 ensure!(!data.encrypted, "didn't decrypted secret");133 ensure!(!data.encrypted, "secret came out encrypted");134 Ok(data.data)134 Ok(data.data)135 }135 }136 pub async fn reencrypt(&self, data: SecretData, targets: Vec<String>) -> Result<SecretData> {136 pub async fn reencrypt(&self, data: SecretData, targets: Vec<String>) -> Result<SecretData> {147 .await147 .await148 .context("failed to call remote host for decrypt")?;148 .context("failed to call remote host for decrypt")?;149 let data: SecretData = encoded.parse().map_err(|e| anyhow!("{e}"))?;149 let data: SecretData = encoded.parse().map_err(|e| anyhow!("{e}"))?;150 ensure!(!data.encrypted, "didn't decrypted secret");150 ensure!(data.encrypted, "secret came out not encrypted");151 Ok(data)151 Ok(data)152 }152 }153 /// Returns path for futureproofing, as path might change i.e on conversion to CA153 /// Returns path for futureproofing, as path might change i.e on conversion to CAnixos/secrets.nixdiffbeforeafterboth--- a/nixos/secrets.nix
+++ b/nixos/secrets.nix
@@ -5,7 +5,7 @@
...
}:
with lib; let
- inherit (lib.strings) hasPrefix stripPrefix;
+ inherit (lib.strings) hasPrefix removePrefix;
plaintextPrefix = "<PLAINTEXT>";
plaintextNewlinePrefix = "<PLAINTEXT-NL>";
@@ -40,9 +40,9 @@
hash = mkOptionDefault (builtins.hashString "sha1" config.raw);
data = mkOptionDefault (
if hasPrefix plaintextPrefix config.raw
- then stripPrefix plaintextPrefix config.raw
+ then removePrefix plaintextPrefix config.raw
else if hasPrefix plaintextNewlinePrefix config.raw
- then stripPrefix plaintextNewlinePrefix config.raw
+ then removePrefix plaintextNewlinePrefix config.raw
else throw "secret.part.data attribute only works for public plaintext secret parts, got ${config.raw}"
);
path = mkOptionDefault "/run/secrets/${secretName}/${config.hash}-${partName}";