summaryrefslogtreecommitdiffstats
path: root/openpgp/src/serialize
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2021-03-05 14:25:42 +0100
committerJustus Winter <justus@sequoia-pgp.org>2021-03-05 14:28:46 +0100
commitad026605585d0a2451578f755f21d5c27c3c1503 (patch)
tree83cdb8fa19a16c910ba4f1721b954b8d993c7a2a /openpgp/src/serialize
parent39539aa6105bc5e2173d211108be665495124aed (diff)
openpgp: Do not recommend padding by default.
- We discovered compatibility problems with the padding mechanism, so we should caution against its use when compatibility with certain implementations is required. Also, don't use padding in the module's example.
Diffstat (limited to 'openpgp/src/serialize')
-rw-r--r--openpgp/src/serialize/stream.rs6
-rw-r--r--openpgp/src/serialize/stream/padding.rs8
2 files changed, 6 insertions, 8 deletions
diff --git a/openpgp/src/serialize/stream.rs b/openpgp/src/serialize/stream.rs
index 249b8101..6c9906f2 100644
--- a/openpgp/src/serialize/stream.rs
+++ b/openpgp/src/serialize/stream.rs
@@ -75,9 +75,7 @@
//!
//! This example demonstrates how to create the most common OpenPGP
//! message structure (see [Section 11.3 of RFC 4880]). The plaintext
-//! is first signed, then compressed, encrypted, and finally ASCII
-//! armored. Our example pads the plaintext instead of compressing
-//! it, but the resulting message structure is the same.
+//! is first signed, then encrypted, and finally ASCII armored.
//!
//! ```
//! # fn main() -> sequoia_openpgp::Result<()> {
@@ -87,7 +85,6 @@
//! use openpgp::cert::prelude::*;
//! use openpgp::serialize::stream::{
//! Message, Armorer, Encryptor, Signer, LiteralWriter,
-//! padding::Padder,
//! };
//! # use openpgp::parse::Parse;
//!
@@ -114,7 +111,6 @@
//! let message = Armorer::new(message).build()?;
//! let message = Encryptor::for_recipients(message, recipients).build()?;
//! // Reduce metadata leakage by concealing the message size.
-//! let message = Padder::new(message).build()?;
//! let message = Signer::new(message, signing_keypair)
//! // Prevent Surreptitious Forwarding.
//! .add_intended_recipient(&recipient)
diff --git a/openpgp/src/serialize/stream/padding.rs b/openpgp/src/serialize/stream/padding.rs
index da96c6e7..247ac5cc 100644
--- a/openpgp/src/serialize/stream/padding.rs
+++ b/openpgp/src/serialize/stream/padding.rs
@@ -41,10 +41,12 @@
//! transparent for the recipient (for example, no weird packets are
//! inserted).
//!
-//! Cursory [testing] (RNP, DKGPG, PGPy, OpenKeychain, GnuPG classic
-//! and modern) revealed no problems.
+//! Unfortunately, [testing] discovered problems when the resulting
+//! messages are consumed by (at the time of this writing) OpenPGP.js,
+//! RNP, and GnuPG. If compatibility with these implementations is a
+//! concern, using this padding method is not advisable.
//!
-//! [testing]: https://tests.sequoia-pgp.org/#Encrypt-Decrypt_roundtrip_with_key__Bob___AES256
+//! [testing]: https://tests.sequoia-pgp.org/#Packet_excess_consumption
//!
//! To be effective, the padding layer must be placed inside the
//! encryption container. To increase compatibility, the padding