From: Ian Jackson Date: Tue, 1 Jun 2021 20:51:26 +0000 (+0100) Subject: sshkeys: Add paranoid whitespace check X-Git-Tag: otter-0.7.0~124 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=3c941532b6f325b2f7020b0c290311458d952574;p=otter.git sshkeys: Add paranoid whitespace check Newlines, in particular, would mess things up. Signed-off-by: Ian Jackson --- diff --git a/src/sshkeys.rs b/src/sshkeys.rs index 30b7693d..a3268464 100644 --- a/src/sshkeys.rs +++ b/src/sshkeys.rs @@ -119,6 +119,7 @@ mod veneer { #[derive(Error,Debug,Clone,Serialize,Deserialize)] pub enum KeyError { #[error("bad key data: {0}")] BadData(String), + #[error("whitespace in public key data!")] Whitespace, #[error("failed to save key data, possibly broken")] Dirty, } @@ -146,7 +147,11 @@ mod veneer { options: None, comment: None, }; - (PubData(data.to_string()), Comment(comment.unwrap_or_default())) + let data = PubData(data.to_string()); + if data.0.chars().any(|c| c !=' ' && c.is_whitespace()) { + throw!(KeyError::Whitespace); + } + (data, Comment(comment.unwrap_or_default())) } }