From: Ian Jackson Date: Fri, 16 Jun 2023 10:58:08 +0000 (+0100) Subject: base64: Tolerate lack of padding when decoding X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=6aab922b5867bef1ca2d568c6de300f82030e49e;p=hippotat.git base64: Tolerate lack of padding when decoding This restores the behaviour of hippotat 1.1.7. Signed-off-by: Ian Jackson --- diff --git a/src/prelude.rs b/src/prelude.rs index 11c1383..fad8af1 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -83,7 +83,19 @@ pub const SLIP_MIME_ESC: u8 = b'-'; // 2d pub const MAX_OVERHEAD: usize = 2_000; -pub use base64::engine::{Engine as _}; -pub use base64::engine::general_purpose::STANDARD as BASE64_CONFIG; +mod base64_config { + use base64::engine::*; + // Emit padding when we base64 encode things, but tolerate its lack + // hippotat 1.x always ignored padding (except for 1.1.8). + // Eventually we plan to stop emitting padding. + pub const BASE64_CONFIG: GeneralPurpose = GeneralPurpose::new( + &base64::alphabet::STANDARD, + GeneralPurposeConfig::new() + .with_encode_padding(true) + .with_decode_padding_mode(DecodePaddingMode::Indifferent) + ); +} +pub use base64_config::*; +pub use base64::Engine as _; pub fn default() -> T { Default::default() }