From 38cddff6e9fdcb2b1bda3bd51413ba093471518e Mon Sep 17 00:00:00 2001 From: Alexander Krotov Date: Fri, 6 Dec 2019 20:33:25 +0300 Subject: [PATCH] Move keydata= wrapping from key.rs to aheader.rs --- src/aheader.rs | 19 ++++++++++++++----- src/key.rs | 15 ++------------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/aheader.rs b/src/aheader.rs index 62437ce74..6fb3b7ebc 100644 --- a/src/aheader.rs +++ b/src/aheader.rs @@ -95,15 +95,24 @@ impl Aheader { impl fmt::Display for Aheader { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { - // TODO replace 78 with enum /rtn - // adds a whitespace every 78 characters, this allows libEtPan to - // wrap the lines according to RFC 5322 - // (which may insert a linebreak before every whitespace) - let keydata = self.public_key.to_base64(78); write!(fmt, "addr={};", self.addr)?; if self.prefer_encrypt == EncryptPreference::Mutual { write!(fmt, " prefer-encrypt=mutual;")?; } + + // adds a whitespace every 78 characters, this allows libEtPan to + // wrap the lines according to RFC 5322 + // (which may insert a linebreak before every whitespace) + let keydata = self.public_key.to_base64().chars().enumerate().fold( + String::new(), + |mut res, (i, c)| { + if i > 0 && i % 78 == 0 { + res.push(' ') + } + res.push(c); + res + }, + ); write!(fmt, " keydata={}", keydata) } } diff --git a/src/key.rs b/src/key.rs index d4dcf4deb..388897944 100644 --- a/src/key.rs +++ b/src/key.rs @@ -178,20 +178,9 @@ impl Key { } } - pub fn to_base64(&self, break_every: usize) -> String { + pub fn to_base64(&self) -> String { let buf = self.to_bytes(); - - let encoded = base64::encode(&buf); - encoded - .chars() - .enumerate() - .fold(String::new(), |mut res, (i, c)| { - if i > 0 && i % break_every == 0 { - res.push(' ') - } - res.push(c); - res - }) + base64::encode(&buf) } pub fn to_armored_string(