Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Dear release team, Please unblock schleuder 3.6.0-3. It ships an upstream patch to fix verifying encapsulated messages: monkeypatch ruby-mail-gpg to restore the use of the unaltered raw source of the relevant email part. This code was removed in a recent release of ruby-mail-gpg for yet unknown reasons, and uploaded to Debian via 0.4.4-1. The change is guarded by a test, which contributes a lot to the size of the diff; autopkgtests look good, no regressions reported. Histogramm of the diff: ~ debdiff schleuder_3.6.0-2.dsc schleuder_3.6.0-3.dsc | diffstat changelog | 11 patches/0030-fix-verifying-encapsulated-messages.patch | 308 +++++++++++++++++ patches/series | 1 3 files changed, 320 insertions(+) Please find the full debdiff attached. unblock schleuder/3.6.0-3 Thanks for your work, cheers, Georg
diff -Nru schleuder-3.6.0/debian/changelog schleuder-3.6.0/debian/changelog --- schleuder-3.6.0/debian/changelog 2021-05-23 17:32:19.000000000 +0000 +++ schleuder-3.6.0/debian/changelog 2021-07-29 20:36:52.000000000 +0000 @@ -1,3 +1,14 @@ +schleuder (3.6.0-3) unstable; urgency=medium + + * debian/patches: + - Pull in upstream patch to fix verifying encapsulated messages: + monkeypatch ruby-mail-gpg to restore the use of the unaltered raw source + of the relevant email part. + This code was removed in a recent release of ruby-mail-gpg for yet + unknown reasons, and uploaded to Debian via 0.4.4-1. + + -- Georg Faerber <ge...@debian.org> Thu, 29 Jul 2021 20:36:52 +0000 + schleuder (3.6.0-2) unstable; urgency=medium * debian/control: diff -Nru schleuder-3.6.0/debian/patches/0030-fix-verifying-encapsulated-messages.patch schleuder-3.6.0/debian/patches/0030-fix-verifying-encapsulated-messages.patch --- schleuder-3.6.0/debian/patches/0030-fix-verifying-encapsulated-messages.patch 1970-01-01 00:00:00.000000000 +0000 +++ schleuder-3.6.0/debian/patches/0030-fix-verifying-encapsulated-messages.patch 2021-07-29 20:36:52.000000000 +0000 @@ -0,0 +1,308 @@ +Description: Fix verifying encapsulated messages + This monkeypatches mail-gpg to restore the use of the unaltered raw + source of the relevant email part. + This code was removed in + <https://github.com/jkraemer/mail-gpg/commit/5fded41ccee4a58f848a2f8e7bd53d11236f8984> + for yet unknown reasons. + The issue is tracked at <https://github.com/jkraemer/mail-gpg/issues/67>. +Origin: upstream +Bug: https://0xacab.org/schleuder/schleuder/-/issues/502 +Applied-Upstream: cf9a046436e6a1cfe06565bf9b4a41d6b6eebb0d, 7c049123971bde41b5b9203b45009a40ff667b03 +Reviewed-by: Georg Faerber <ge...@debian.org> +Last-Update: 2021-07-29 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: schleuder/lib/schleuder.rb +=================================================================== +--- schleuder.orig/lib/schleuder.rb 2021-07-29 20:07:47.289606627 +0000 ++++ schleuder/lib/schleuder.rb 2021-07-29 20:07:47.281606517 +0000 +@@ -31,6 +31,7 @@ + require 'schleuder/mail/message.rb' + require 'schleuder/mail/gpg.rb' + require 'schleuder/mail/encrypted_part.rb' ++require 'schleuder/mail/gpg/sign_part.rb' + require 'schleuder/gpgme/import_status.rb' + require 'schleuder/gpgme/key.rb' + require 'schleuder/gpgme/sub_key.rb' +Index: schleuder/lib/schleuder/mail/gpg/sign_part.rb +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ schleuder/lib/schleuder/mail/gpg/sign_part.rb 2021-07-29 20:07:47.281606517 +0000 +@@ -0,0 +1,33 @@ ++module Mail ++ module Gpg ++ class SignPart < Mail::Part ++ # Copied verbatim from mail-gpg v.0.4.2. This code was changed in ++ # <https://github.com/jkraemer/mail-gpg/commit/5fded41ccee4a58f848a2f8e7bd53d11236f8984>, ++ # which breaks verifying some encapsulated (signed-then-encrypted) ++ # messages. See ++ # <https://github.com/jkraemer/mail-gpg/pull/40#issue-95776382> for ++ # details. ++ def self.verify_signature(plain_part, signature_part, options = {}) ++ if !(signature_part.has_content_type? && ++ ('application/pgp-signature' == signature_part.mime_type)) ++ return false ++ end ++ ++ # Work around the problem that plain_part.raw_source prefixes an ++ # erroneous CRLF, <https://github.com/mikel/mail/issues/702>. ++ if ! plain_part.raw_source.empty? ++ plaintext = [ plain_part.header.raw_source, ++ "\r\n\r\n", ++ plain_part.body.raw_source ++ ].join ++ else ++ plaintext = plain_part.encoded ++ end ++ ++ signature = signature_part.body.encoded ++ GpgmeHelper.sign_verify(plaintext, signature, options) ++ end ++ end ++ end ++end ++ +Index: schleuder/spec/fixtures/mails/encapsulated.eml +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ schleuder/spec/fixtures/mails/encapsulated.eml 2021-07-29 20:10:54.600042128 +0000 +@@ -0,0 +1,55 @@ ++From admin@a Wed Jun 09 16:14:08 2021 ++From: admin@a ++To: list@a ++Subject: test ++Date: Wed, 09 Jun 2021 18:14:08 +0200 ++Message-ID: <6066403.5e4LmiuuCV@deepthought> ++MIME-Version: 1.0 ++Content-Type: multipart/encrypted; boundary="nextPart2013499.KfxGTPaf5f"; protocol="application/pgp-encrypted" ++ ++--nextPart2013499.KfxGTPaf5f ++Content-Type: application/pgp-encrypted ++Content-Disposition: attachment ++Content-Transfer-Encoding: 7Bit ++ ++Version: 1 ++--nextPart2013499.KfxGTPaf5f ++Content-Type: application/octet-stream ++Content-Disposition: inline; filename="msg.asc" ++Content-Transfer-Encoding: 7Bit ++ ++-----BEGIN PGP MESSAGE----- ++ ++hQIMAx0nShUMaPCRAQ//f0l0D6hTAYsNxuD5dOCSdio6pniKNXWu+bJnZQG1eGEs ++4tG2NreH7VpX9qCDd9ZXb4Dh2tFyhVS0NO/nza/bOjqwI7luLlr7QbaxSemyY06+ ++d7GVITKVbo/d/iO5UyK8MyOESyLe/u3LydsDKm9aJP/sYjtjatuW9iQyEy9KLkTi ++8v2IjAMlK28lcuX0PiXOelU+V6jg5humUT11GWmC3iP7IjUxaPMbdbUNdqnZ2CI3 ++ZW2N50/AF6CS4laRG1xawNy5c3TyoBR/Owd5tHvjGN7PMTSPE99K6VETMV+RfK3n ++ouPYm952mSybmIkZE/uU9SvfPS0vYxAgo+BcnfzpHEKAm5UpEBK3LZ7AJizaCOXK ++LAYkK6dR2/38jCLjGm187p2IiJGy57AT2e4rsSXTqW9ywz0ukTC3xzGKuq9NPAu4 ++LH6dXvEutmFBo1SWObEksYSOmPzCOdcknWl5xhlgPBMzG1mOXaWgkogITl2F/Cta ++vuWGSuOZLo+3WEmpSYGKddrrQM0AiWMlPN/Xjh6icIyxNzjFTYP5iRdDCqlGQEPV ++s9AAhYDB0sPYDyd03JSAdZrrZOCKu8ezW8KAsiYLoypfTGSbqvLeWPXyAAZcoFTX ++dhdZoSPiKsdb9MQ1saAgPS+Gt6RKu/i2tV2ZRhlgUi7VQWeiSPawS8poyNurY3GE ++jAMCZeuxTV+KPgEEAIlDW20JIWC/3DQ6j2GJfzosfpYb2FBycohIpJawmvf5b5hH ++hTWGwrYlSBrA3xIiC3EFc9EgCJ8vhicDe+xD5dmKywGS7xRqU2a+hNp8k/CA6FLZ ++FO4rGtwBGRNor/DN20nwx6PEC9baD0W0SPwqt2CHi6XRomyyMfCarQ7XiA4Y0ukB ++rPf+FIIuhYLFRZs1Od6s4uatPZxAjh8yZQ6GAiJ7H2BaT5vERBIXvWDqrGQmA44Q ++t35Ey2MFIIx1KQyaeHthlE++loPSEtzSerV+4pAqEz+NiCv4BOxybNHk9S9evOZo ++k6fuiLBCw6ezDzSgvQbxVrO3q0wNx2KAe0WWunaVaebQ2iTsOiVKhsL1XANmdta6 ++rA4avZHHsf+OAFbSyWG9k0tb5PBeQJZCqctKbVgyL2psWDpgHLYkYbMPH58RV1W8 ++8nM83o1ecSDqswVrUYWVNiTYXKeZf/FUbJJUd996EL7NTm3Y610EtaAXOmmGnjKc ++rRnCILQiRHc83/tPMw57qMN7Zf2cwZUU8iPuxnJxlOzapppPrOHA9vllGYj73uxu ++MKYJvNpar+pQ/HeyWaz0xlwGLn4qpTUkCVtul0YhsIaErrZi1hNIGlxueYeOtCdr ++Z5VOvxvEgLxUnUQwdH5re65xM0cLQaMIDYbOkyAtILUoHEaO0hal76XaI7Ene3wL ++iPP7RLIasdj6PgeupuX8pzsGbFnlZatC4jrtoO807k0AYDNpd6RmRzwCONbm3fkH ++Hg/ethyjqxwsJjcF65ckW+ofTWgtuFsheujqNQuJ97NAFZPssxPcPLjP94vt9R+J ++uXF7bdBqn03qCcMJNJE8p7SPJzhbbkcm2BumTcZec5dMWY4x/IBfJS2vtzJ8RKAw ++hZ4EWKsg7t8uXqKyPWuOy+5dOZbm4AyP7TB9jaLN82Jtn+MAy4VDskR+vIa7Gn4Y ++ZOHRVMe9lpyLZ1R7yXmO+v/nBAoStBt2jZ2VvLH5SQEIaBmfqxAtZksONhs8nKNo ++83SPmpzacXmdbQELy+bRqrgxWTuapmmCI7cMArdXyGxXOzIoYCiV ++=Q/1n ++-----END PGP MESSAGE----- ++ ++--nextPart2013499.KfxGTPaf5f-- ++ +Index: schleuder/spec/fixtures/openpgp-keys/encapsulated-list.sec +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ schleuder/spec/fixtures/openpgp-keys/encapsulated-list.sec 2021-07-29 20:10:54.600042128 +0000 +@@ -0,0 +1,131 @@ ++-----BEGIN PGP PRIVATE KEY BLOCK----- ++ ++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 ++ECEQBvnW ++=wUwL ++-----END PGP PRIVATE KEY BLOCK----- +Index: schleuder/spec/fixtures/openpgp-keys/encapsulated-sender.pub +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ schleuder/spec/fixtures/openpgp-keys/encapsulated-sender.pub 2021-07-29 20:10:54.600042128 +0000 +@@ -0,0 +1,20 @@ ++-----BEGIN PGP PUBLIC KEY BLOCK----- ++Comment: 9F29 CA4C F1A4 7561 492C 0737 C7A5 457A 35C5 0082 ++ ++xo0EYMDjbQEEAOFOAM5DzK9RWjaME7u90bEgAgJ4omMk4LWpvxSf6TTHmT9/ciPG ++dPwMfci2X4ugon15uZ/XmgNxuK14q912UlEVABtJrxs2u2O4Xofnx856z31beQ0R ++o01+6j9MqpOF70ZzwbDWiCOaZUwjg3vgYqeMmKC9V4NcEPGICRwiUsSNABEBAAHN ++B2FkbWluQGHCwA4EEwEKADgWIQSfKcpM8aR1YUksBzfHpUV6NcUAggUCYMDjbQIb ++AwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRDHpUV6NcUAgummA/9Bl+K695wL ++ve16vldw9xKI9d0QGhUT1XAMp9nZ2MeD2Z+LBa6SMI6b0yhDG5vPd5LDafy91ed3 ++X3ZQK62H4M7RIMA89NUCHRb2avt5iLCQwkliXrYthd8+rRhRKZNF0ilesXway7Dt ++EsQndI1BfJ+U8cYiUWeqfYV60ismvytvGs6NBGDA420BBADUgR0ugu90qdSA7Fwo ++szSPXYPeGeO42FVj8Ybuu3SY4tuoGtFQKDoMI/sPDVIaKV4HPth86YP5fK5IcX9e ++TOmZCldcO9yEWLLN0lSRzbS3yqykLJZNHCLvyUmUBv41R5hWK2ynuR+OXJcw3Qxk ++2xT4xzngursr93K2qBcGxW14zwARAQABwrYEGAEKACAWIQSfKcpM8aR1YUksBzfH ++pUV6NcUAggUCYMDjbQIbDAAKCRDHpUV6NcUAgnP1A/0U7UU4p3ygT757DJYaYron ++ymTPv5gPHYVWq9t/T3N94BhNyXWWY6xAIwbkUt1fHwKlCkRJkJxUqjvWg0GwSV+v ++iBYDFqrcwLlOOo5XBAptMSkcBGOFQaOJeh1trwWjlduKOwFhuidPXk+aOP0PAm56 ++vV9oNiZxUMHIwGsGHUtUZg== ++=NfvK ++-----END PGP PUBLIC KEY BLOCK----- +Index: schleuder/spec/schleuder/unit/message_spec.rb +=================================================================== +--- schleuder.orig/spec/schleuder/unit/message_spec.rb 2021-07-29 20:03:53.000000000 +0000 ++++ schleuder/spec/schleuder/unit/message_spec.rb 2021-07-29 20:14:10.458381710 +0000 +@@ -225,5 +225,18 @@ + expect(ph.split("\n")).to all( satisfy{|l| l.length <= 78 }) + end + end ++ ++ it 'verifies an encapsulated (signed-then-encrypted) message' do ++ list = create(:list, fingerprint: '7EDF3336CB8BC6D15D461DB5FFF7A04251E7D112') ++ list.import_key(File.read('spec/fixtures/openpgp-keys/encapsulated-list.sec')) ++ list.import_key(File.read('spec/fixtures/openpgp-keys/encapsulated-sender.pub')) ++ list.subscribe('ad...@example.org', '9F29CA4CF1A47561492C0737C7A5457A35C50082', true) ++ msg = File.read('spec/fixtures/mails/encapsulated.eml') ++ mail = Mail.create_message_to_list(msg, list.request_address, list) ++ ++ result = mail.setup ++ ++ expect(result.was_validly_signed?).to be(true) ++ end + end + diff -Nru schleuder-3.6.0/debian/patches/series schleuder-3.6.0/debian/patches/series --- schleuder-3.6.0/debian/patches/series 2021-05-23 17:32:19.000000000 +0000 +++ schleuder-3.6.0/debian/patches/series 2021-07-29 20:36:52.000000000 +0000 @@ -1,3 +1,4 @@ +0030-fix-verifying-encapsulated-messages.patch 0029-gemspec-mail-gpg-relax-version.patch 0028-specs-fix-to-less-depend-on-preconditions.patch 0027-rescue-gpgme-error-canceled.patch