From b53ca357cdd6a1b3236cbcadff8626f6bfc37748 Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Thu, 11 May 2023 16:18:20 -0400 Subject: [PATCH] Fix key regression introduced (#974) --- atuin-client/src/encryption.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/atuin-client/src/encryption.rs b/atuin-client/src/encryption.rs index 9145a11..7ed640a 100644 --- a/atuin-client/src/encryption.rs +++ b/atuin-client/src/encryption.rs @@ -85,10 +85,19 @@ pub fn decode_key(key: String) -> Result { let buf = BASE64_STANDARD .decode(key.trim_end()) .wrap_err("encryption key is not a valid base64 encoding")?; - let buf: &[u8] = rmp_serde::from_slice(&buf) - .wrap_err("encryption key is not a valid message pack encoding")?; - Ok(*Key::from_slice(buf)) + let mbuf: Result<[u8; 32]> = + rmp_serde::from_slice(&buf).wrap_err("encryption key is not a valid message pack encoding"); + + match mbuf { + Ok(b) => Ok(*Key::from_slice(&b)), + Err(_) => { + let buf: &[u8] = rmp_serde::from_slice(&buf) + .wrap_err("encryption key is not a valid message pack encoding")?; + + Ok(*Key::from_slice(buf)) + } + } } pub fn encrypt(history: &History, key: &Key) -> Result {