(
&self,
key: &[u8],
ciphertext: &[u8],
allowed: &BTreeSet<String>,
)
| 1435 | |
| 1436 | impl Stage1<'_> { |
| 1437 | fn decrypt_env_vars( |
| 1438 | &self, |
| 1439 | key: &[u8], |
| 1440 | ciphertext: &[u8], |
| 1441 | allowed: &BTreeSet<String>, |
| 1442 | ) -> Result<BTreeMap<String, String>> { |
| 1443 | let vars = if !key.is_empty() && !ciphertext.is_empty() { |
| 1444 | info!("Processing encrypted env"); |
| 1445 | let env_crypt_key: [u8; 32] = key |
| 1446 | .try_into() |
| 1447 | .ok() |
| 1448 | .context("Invalid env crypt key length")?; |
| 1449 | let decrypted_json = |
| 1450 | dh_decrypt(env_crypt_key, ciphertext).context("Failed to decrypt env file")?; |
| 1451 | crate::parse_env_file::parse_env(&decrypted_json, allowed)? |
| 1452 | } else { |
| 1453 | info!("No encrypted env, using default"); |
| 1454 | Default::default() |
| 1455 | }; |
| 1456 | Ok(vars) |
| 1457 | } |
| 1458 | |
| 1459 | fn write_env_file(&self, env_vars: &BTreeMap<String, String>) -> Result<()> { |
| 1460 | info!("Writing env"); |
no test coverage detected