From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Justus Winter Newsgroups: gmane.emacs.bugs Subject: bug#58301: Small epg fix and a test suite cleanup Date: Wed, 05 Oct 2022 12:52:26 +0200 Message-ID: <87k05ek0et.fsf@europ.lan> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16859"; mail-complaints-to="usenet@ciao.gmane.io" To: 58301@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Oct 05 12:54:59 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1og23G-00047G-69 for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 05 Oct 2022 12:54:58 +0200 Original-Received: from localhost ([::1]:48464 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1og23C-0007wY-Q0 for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 05 Oct 2022 06:54:56 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:52232) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1og22N-0007tm-1Q for bug-gnu-emacs@gnu.org; Wed, 05 Oct 2022 06:54:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:56954) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1og22M-0003LX-Ob for bug-gnu-emacs@gnu.org; Wed, 05 Oct 2022 06:54:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1og22M-0006An-KC for bug-gnu-emacs@gnu.org; Wed, 05 Oct 2022 06:54:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Justus Winter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 05 Oct 2022 10:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 58301 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.166496719523652 (code B ref -1); Wed, 05 Oct 2022 10:54:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 5 Oct 2022 10:53:15 +0000 Original-Received: from localhost ([127.0.0.1]:56033 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1og21b-00069Q-42 for submit@debbugs.gnu.org; Wed, 05 Oct 2022 06:53:15 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:47132) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1og21Z-00069I-Pl for submit@debbugs.gnu.org; Wed, 05 Oct 2022 06:53:13 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44828) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1og21T-0007OG-F9 for bug-gnu-emacs@gnu.org; Wed, 05 Oct 2022 06:53:11 -0400 Original-Received: from harrington.uberspace.de ([185.26.156.85]:54204) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1og21M-0003EP-6A for bug-gnu-emacs@gnu.org; Wed, 05 Oct 2022 06:53:07 -0400 Original-Received: (qmail 26282 invoked by uid 500); 5 Oct 2022 10:52:43 -0000 Authentication-Results: harrington.uberspace.de; auth=pass (plain) X-Rspamd-Bar: ----- X-Rspamd-Report: MIME_GOOD(-0.2) SIGNED_PGP(-2) BAYES_HAM(-3) X-Rspamd-Score: -5.2 Original-Received: from unknown (HELO unkown) (::1) by harrington.uberspace.de (Haraka/2.8.28) with ESMTPSA; Wed, 05 Oct 2022 12:52:42 +0200 Received-SPF: none client-ip=185.26.156.85; envelope-from=justus@sequoia-pgp.org; helo=harrington.uberspace.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, LOTS_OF_MONEY=0.001, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:244509 Archived-At: --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Moin, this is a patch series that improves and simplifies how epg verifies signatures, and replaces aging OpenPGP artifacts in the test suite. This replaces the old OpenPGPv4 keys that are used in the test suite with more modern OpenPGPv4 keys. All cryptographic artifacts in the test suite are updated accordingly. Having old cryptographic artifacts in the test suite presents a problem once the old algorithms are rejected by contemporary implementations. Best, Justus --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Fix-epg-s-reliance-on-an-implicit-GnuPG-command.patch Content-Transfer-Encoding: quoted-printable From=20222a017656fb7caad64210b3f88ea36e7881ea8c Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Fri, 16 Sep 2022 12:23:39 +0200 Subject: [PATCH 1/4] Fix epg's reliance on an implicit GnuPG command. Previously, epg invoked GnuPG without an explicit command to verify signatures. Make that operation explicit. Happily, this aligns how gpg and gpgsm is invoked, so it actually makes the code simpler. =2D-- lisp/epg.el | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lisp/epg.el b/lisp/epg.el index c3c26badbb..ceeb269b07 100644 =2D-- a/lisp/epg.el +++ b/lisp/epg.el @@ -1519,12 +1519,8 @@ epg-start-verify (process-send-eof (epg-context-process context)))) ;; Normal (or cleartext) signature. (if (epg-data-file signature) =2D (epg--start context (if (eq (epg-context-protocol context) 'CMS) =2D (list "--verify" "--" (epg-data-file signature)) =2D (list "--" (epg-data-file signature)))) =2D (epg--start context (if (eq (epg-context-protocol context) 'CMS) =2D '("--verify" "-") =2D '("-"))) + (epg--start context (list "--verify" "--" (epg-data-file signature))) + (epg--start context '("--verify" "-")) (if (eq (process-status (epg-context-process context)) 'run) (process-send-string (epg-context-process context) (epg-data-string signature))) =2D-=20 2.30.2 --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0002-Replace-aging-OpenPGP-artifacts-in-the-epg-tests.patch Content-Transfer-Encoding: quoted-printable From=209a0c905d1565f0db5da96808fbaffe0cdfd2d080 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Fri, 16 Sep 2022 12:24:14 +0200 Subject: [PATCH 2/4] Replace aging OpenPGP artifacts in the epg tests. This replaces the old OpenPGPv4 key that is used in the test suite with a more modern OpenPGPv4 key. The key is the Alice key from https://datatracker.ietf.org/doc/draft-bre-openpgp-samples/. All cryptographic artifacts in the test suite are updated accordingly. Having old cryptographic artifacts in the test suite presents a problem once the old algorithms are rejected by contemporary implementations. =2D-- test/lisp/epg-resources/pubkey.asc | 28 ++++++++----------- test/lisp/epg-resources/seckey.asc | 43 +++++++++--------------------- test/lisp/epg-tests.el | 19 +++++++------ 3 files changed, 33 insertions(+), 57 deletions(-) diff --git a/test/lisp/epg-resources/pubkey.asc b/test/lisp/epg-resources/p= ubkey.asc index c0bf28f620..241051067f 100644 =2D-- a/test/lisp/epg-resources/pubkey.asc +++ b/test/lisp/epg-resources/pubkey.asc @@ -1,20 +1,14 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- =2DVersion: GnuPG v1 +Comment: Alice's OpenPGP certificate =20 =2DmI0EVRDxCAEEALcScrRmxq5N+Hh+NxPg75RJJdtEi824pwtqMlT/3wG1esmP5gNu =2DZIPVaTTSGNZkEzeYdhaLXBUe5qD+RQIQVh+MLt9nisF9nD35imyOrhHwAHnglOPx =2DGdylH8nQ/tIO5p/lfUlw+iCBlPH7eZHqFJhwP0hJML4PKE8ArWG6RtsxABEBAAG0 =2DJ0pvZSBUZXN0ZXIgKHRlc3Qga2V5KSA8am9lQGV4YW1wbGUuY29tPoi4BBMBAgAi =2DBQJVEPEIAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAoscCWMvu4GGYO =2DA/0Zzoc2z/dvAtFVLh4ovKqP2qliQt2qschJHVP30hJnKT7dmJfJl7kz9mXmMfSt =2DYm0luYmeSzdeWORM9SygLRYXuDfN6G4ZPJTlsRhgnARhNzNhSx+YlcFh48Z+a5zR =2DgoBMn7DgYVqfU4UteZOSXMlnuA2Z5ao1qgGhVqESSJgU5riNBFUQ8QgBBADacLkK =2DD0U11nmlsScxPGkrDr0aJPrG8MEaDRnKjHJKNp3XTp1psGBUpWF/ErjQAIu+psFt =2DLO8owCGsg/vJM7CzTv2dVBRbrZXjIKvdq7HdivosTMaHArQBpEtSO9rmgVHO+jaQ =2Dq/M2oGvNEB86zo3nfTWhOgBiB32m8kttWRiuWQARAQABiJ8EGAECAAkFAlUQ8QgC =2DGwwACgkQKLHAljL7uBj44AQAkMJRm7VJUryrDKFtfIfytQx/vmyU/cZcVV6IpKqP =2DKhztgR+QD9czlHvQhz+y3hqtLRShu2Eyf75dNexcUvKs/lS4LIDXg5V7pWSRk9eQ =2DG403muqR/NGu6+QmUx09rJl72trdaGxNkyHA7Zy7ZDGkcMvQsd3qoSNGsPR5TKes =2Dw7Q=3D =2D=3DNMxb +mDMEXEcE6RYJKwYBBAHaRw8BAQdArjWwk3FAqyiFbFBKT4TzXcVBqPTB3gmzlC/U +b7O1u120JkFsaWNlIExvdmVsYWNlIDxhbGljZUBvcGVucGdwLmV4YW1wbGU+iJAE +ExYIADgCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQTrhbtfozp14V6UTmPy +MVUMT0fjjgUCXaWfOgAKCRDyMVUMT0fjjukrAPoDnHBSogOmsHOsd9qGsiZpgRnO +dypvbm+QtXZqth9rvwD9HcDC0tC+PHAsO7OTh1S1TC9RiJsvawAfCPaQZoed8gK4 +OARcRwTpEgorBgEEAZdVAQUBAQdAQv8GIa2rSTzgqbXCpDDYMiKRVitCsy203x3s +E9+eviIDAQgHiHgEGBYIACAWIQTrhbtfozp14V6UTmPyMVUMT0fjjgUCXEcE6QIb +DAAKCRDyMVUMT0fjjlnQAQDFHUs6TIcxrNTtEZFjUFm1M0PJ1Dng/cDW4xN80fsn +0QEA22Kr7VkCjeAEC08VSTeV+QFsmz55/lntWkwYWhmvOgE=3D +=3DiIGO -----END PGP PUBLIC KEY BLOCK----- diff --git a/test/lisp/epg-resources/seckey.asc b/test/lisp/epg-resources/s= eckey.asc index 4ac7ba4a50..af11bec899 100644 =2D-- a/test/lisp/epg-resources/seckey.asc +++ b/test/lisp/epg-resources/seckey.asc @@ -1,33 +1,16 @@ -----BEGIN PGP PRIVATE KEY BLOCK----- =2DVersion: GnuPG v1 +Comment: Alice's OpenPGP Transferable Secret Key =20 =2DlQHYBFUQ8QgBBAC3EnK0ZsauTfh4fjcT4O+USSXbRIvNuKcLajJU/98BtXrJj+YD =2DbmSD1Wk00hjWZBM3mHYWi1wVHuag/kUCEFYfjC7fZ4rBfZw9+Ypsjq4R8AB54JTj =2D8RncpR/J0P7SDuaf5X1JcPoggZTx+3mR6hSYcD9ISTC+DyhPAK1hukbbMQARAQAB =2DAAP9Hs9agZTobA5QOksXjt9kwqJ63gePtbwVVNz3AoobaGi39PMkRUCPZwaEEbEo =2DH/CwsUMV4J5sjVtpef/A8mN4csai7NYp82mbo+dPim4p+SUtBg4Ms8ujGVcQeRQd =2D1CXtIkixDu6fw4wDtNw03ZyNJOhBOXVTgAyOTSlIz3D+6n8CAMeCqEFBHQIVoQpf =2DBza4YvFtJRdfGMTix3u7Cb6y9CHGBok7uUgQAeWnzQvMGTCHc3e8iHGAYBQ88GPF =2Dv1TpiusCAOroRe69Aiid5JMVTjWoJ0SHKd47nIj0gQFiDfa5de0BNq9gYj7JLg+R =2DEjsJbJN39z+Z9HWjIOCUOIXDvucmM1MB/iNxW1Z8mEMflEYK5rop+PDxwqUbr8uZ =2Dkzogw98ZdmuEuN0bheGWUiJI+0Pd8jb40zlR1KgOEMx1mZchToAJdtybMLQnSm9l =2DIFRlc3RlciAodGVzdCBrZXkpIDxqb2VAZXhhbXBsZS5jb20+iLgEEwECACIFAlUQ =2D8QgCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJECixwJYy+7gYZg4D/RnO =2DhzbP928C0VUuHii8qo/aqWJC3aqxyEkdU/fSEmcpPt2Yl8mXuTP2ZeYx9K1ibSW5 =2DiZ5LN15Y5Ez1LKAtFhe4N83obhk8lOWxGGCcBGE3M2FLH5iVwWHjxn5rnNGCgEyf =2DsOBhWp9ThS15k5JcyWe4DZnlqjWqAaFWoRJImBTmnQHYBFUQ8QgBBADacLkKD0U1 =2D1nmlsScxPGkrDr0aJPrG8MEaDRnKjHJKNp3XTp1psGBUpWF/ErjQAIu+psFtLO8o =2DwCGsg/vJM7CzTv2dVBRbrZXjIKvdq7HdivosTMaHArQBpEtSO9rmgVHO+jaQq/M2 =2DoGvNEB86zo3nfTWhOgBiB32m8kttWRiuWQARAQABAAP7B8uNtb/DLvGoRfL+mA0Q =2DREhgOJ1WpRcU6rvKYNPh8xTkKMvM+EK0nVU/znBedEpXjb0pY1WRT0uvXs2pzY2V =2DYeaugyKIkdUpPWnyWoEQwI8hFvHOWmU2rNHyXLW0MY7bxcGgqv2XbkL4m7/D6VQS =2DSR8hQ2CxBbW+9ov6aBMwv/UCAOW89+5xxuzkv48AVraWlMnaU0ggVOf6ht0Qa40+ =2D+uw2yziNlD403gAAAycoICiB/oqwslx61B2xOHn0laCKrgsCAPNpIsHRlAwWbAsq =2DuCtfIQxg+C3mPXkqsNTMjeK5NjLNytrmO49NXco36zVEG6q7qz5Zj9d9IPYoGOSa =2DI+dQZ6sB/RKF5aonR5/e7IHJgc8BG7I0yiya4llE0AB9ghnRI/3uHwnCBnmo/32a =2Dn4+rQkx6vm+rg3JA/09Gi7W4R9SwV+ane4ifBBgBAgAJBQJVEPEIAhsMAAoJECix =2DwJYy+7gY+OAEAJDCUZu1SVK8qwyhbXyH8rUMf75slP3GXFVeiKSqjyoc7YEfkA/X =2DM5R70Ic/st4arS0UobthMn++XTXsXFLyrP5UuCyA14OVe6VkkZPXkBuNN5rqkfzR =2DruvkJlMdPayZe9ra3WhsTZMhwO2cu2QxpHDL0LHd6qEjRrD0eUynrMO0 =2D=3DiCIm +lFgEXEcE6RYJKwYBBAHaRw8BAQdArjWwk3FAqyiFbFBKT4TzXcVBqPTB3gmzlC/U +b7O1u10AAP9XBeW6lzGOLx7zHH9AsUDUTb2pggYGMzd0P3ulJ2AfvQ4RtCZBbGlj +ZSBMb3ZlbGFjZSA8YWxpY2VAb3BlbnBncC5leGFtcGxlPoiQBBMWCAA4AhsDBQsJ +CAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE64W7X6M6deFelE5j8jFVDE9H444FAl2l +nzoACgkQ8jFVDE9H447pKwD6A5xwUqIDprBzrHfahrImaYEZzncqb25vkLV2arYf +a78A/R3AwtLQvjxwLDuzk4dUtUwvUYibL2sAHwj2kGaHnfICnF0EXEcE6RIKKwYB +BAGXVQEFAQEHQEL/BiGtq0k84Km1wqQw2DIikVYrQrMttN8d7BPfnr4iAwEIBwAA +/3/xFPG6U17rhTuq+07gmEvaFYKfxRB6sgAYiW6TMTpQEK6IeAQYFggAIBYhBOuF +u1+jOnXhXpROY/IxVQxPR+OOBQJcRwTpAhsMAAoJEPIxVQxPR+OOWdABAMUdSzpM +hzGs1O0RkWNQWbUzQ8nUOeD9wNbjE3zR+yfRAQDbYqvtWQKN4AQLTxVJN5X5AWyb +Pnn+We1aTBhaGa86AQ=3D=3D +=3Dn8OM -----END PGP PRIVATE KEY BLOCK----- diff --git a/test/lisp/epg-tests.el b/test/lisp/epg-tests.el index 65aaafd9f1..dca6f33764 100644 =2D-- a/test/lisp/epg-tests.el +++ b/test/lisp/epg-tests.el @@ -101,16 +101,15 @@ with-epg-tests (ert-deftest epg-decrypt-1 () :expected-result (if (getenv "EMACS_HYDRA_CI") :failed :passed) ; fixme (with-epg-tests (:require-passphrase t) =2D (with-temp-file (expand-file-name "gpg.conf" epg-tests-home-director= y) =2D (insert "ignore-mdc-error")) (should (equal "test" (epg-decrypt-string epg-tests-context "\ -----BEGIN PGP MESSAGE----- =2DVersion: GnuPG v2 =20 =2DjA0EAwMCE19JBLTvvmhgyRrGGglRbnKkK9PJG8fDwO5ccjysrR7IcdNcnA=3D=3D =2D=3DU8z7 =2D-----END PGP MESSAGE-----"))))) +jA0ECQMCdW8+qtS9Tin/0jUBO1/9Oz69BWPmtFKEeBM62WpFP4o1+bNzdxogdyeg ++WTt292OD0yV85m5UqvLgp4ttVUmAw=3D=3D +=3DK5Eh +-----END PGP MESSAGE----- +"))))) =20 (ert-deftest epg-roundtrip-1 () :expected-result (if (getenv "EMACS_HYDRA_CI") :failed :passed) ; fixme @@ -123,7 +122,7 @@ epg-roundtrip-2 (with-epg-tests (:require-passphrase t :require-public-key t :require-secret-key t) =2D (let* ((recipients (epg-list-keys epg-tests-context "joe@example.com= ")) + (let* ((recipients (epg-list-keys epg-tests-context "alice@openpgp.exa= mple")) (cipher (epg-encrypt-string epg-tests-context "public key" recipients nil t))) (should (equal "public key" @@ -135,7 +134,7 @@ epg-sign-verify-1 :require-secret-key t) (let (signature verify-result) (setf (epg-context-signers epg-tests-context) =2D (epg-list-keys epg-tests-context "joe@example.com")) + (epg-list-keys epg-tests-context "alice@openpgp.example")) (setq signature (epg-sign-string epg-tests-context "signed" t)) (epg-verify-string epg-tests-context signature "signed") (setq verify-result (epg-context-result-for context 'verify)) @@ -148,7 +147,7 @@ epg-sign-verify-2 :require-secret-key t) (let (signature verify-result) (setf (epg-context-signers epg-tests-context) =2D (epg-list-keys epg-tests-context "joe@example.com")) + (epg-list-keys epg-tests-context "alice@openpgp.example")) (setq signature (epg-sign-string epg-tests-context "clearsigned" 'cl= ear)) ;; Clearsign signature always ends with a new line. (should (equal "clearsigned\n" @@ -163,7 +162,7 @@ epg-sign-verify-3 :require-secret-key t) (let (signature verify-result) (setf (epg-context-signers epg-tests-context) =2D (epg-list-keys epg-tests-context "joe@example.com")) + (epg-list-keys epg-tests-context "alice@openpgp.example")) (setq signature (epg-sign-string epg-tests-context "normal signed")) (should (equal "normal signed" (epg-verify-string epg-tests-context signature))) =2D-=20 2.30.2 --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0003-Replace-aging-OpenPGP-artifacts-in-the-package-resou.patch Content-Transfer-Encoding: quoted-printable From=20e7a8795a265419bcedbea63cd4771c82bb3b210f Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Fri, 16 Sep 2022 12:24:26 +0200 Subject: [PATCH 3/4] Replace aging OpenPGP artifacts in the package-resourc= es tests. This replaces the old OpenPGPv4 key that is used in the test suite with a more modern OpenPGPv4 key. The key is the Alice key from https://datatracker.ietf.org/doc/draft-bre-openpgp-samples/. All cryptographic artifacts in the test suite are updated accordingly. Having old cryptographic artifacts in the test suite presents a problem once the old algorithms are rejected by contemporary implementations. =2D-- .../lisp/emacs-lisp/package-resources/key.pub | 25 +++++++--------- .../lisp/emacs-lisp/package-resources/key.sec | 27 +++++++++--------- .../signed/archive-contents.sig | Bin 95 -> 119 bytes .../signed/signed-good-1.0.el.sig | Bin 95 -> 119 bytes .../signed/update-signatures.sh | 7 +++-- 5 files changed, 28 insertions(+), 31 deletions(-) diff --git a/test/lisp/emacs-lisp/package-resources/key.pub b/test/lisp/ema= cs-lisp/package-resources/key.pub index 99965723ba..241051067f 100644 =2D-- a/test/lisp/emacs-lisp/package-resources/key.pub +++ b/test/lisp/emacs-lisp/package-resources/key.pub @@ -1,17 +1,14 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- +Comment: Alice's OpenPGP certificate =20 =2DmQGiBGFQyDcRBACmAI6cfY3fM02vb9JtC1BS19boKXbBsDoVrD9qRf8tDFROOpO3 =2DZMlbuz+O9Vnljo6Y4WZGnyeWWAMqCditMOfr1cLbux77wSrmAVgZ9exwtGzkmUhM =2DxcptzKuyod8NuhghXbJgVbfJZ6HlBkk4kiWv98iJQwUBZJfjBUfIv+acjwCg4M2i =2DIfu2A3UYl9VqF7qfcDOZudEEAI7V35yfsBDnr9ndKqdGYNw0alX9BEG3KwnAe0fF =2DO1jDVW12Y/bwnyyrRTrz6o1G8dj7M4XVZQb5PpT9mpNzOSZ6yxqhg+foeJwn2JkD =2DvyP+kMYU7SZ/tWuMOCdzN95Ki1rf+ti7pLnSMqKx+t3vOWwQbtnsbI6RCLLwETPA =2DesghA/0X3Dw7cdiE5Xq4TRaPSGViCWP4ekL2KYKqmKv6M/4f2pgFNJY7C+2SIiiP =2DT62zFlIjs5tF2Df34/M5mh4Vx6E8341r55+XO++kfFWJ5QjLiydRAY6ochG9IFgB =2DxyBCkCNpiby9PpKyPodedBScdMxIAe4eJR7rG/j9gFC1MypBurQnSm9obm55IFJv =2DY2tldHMgPGpvaG5ueS5yb2NrZXRzQGdmeS5vcmc+iHgEExECADgWIQRIVz1DPzm4 =2DREDIXNtltQG5ACv6lwUCYVDINwIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK =2DCRBltQG5ACv6l4iZAKCqldroRYH7vUzVV0Uv1NcDVcpLngCgmEoLVxGLKSwDEXNq =2DqjRDzDRpReg=3D =2D=3D/l51 +mDMEXEcE6RYJKwYBBAHaRw8BAQdArjWwk3FAqyiFbFBKT4TzXcVBqPTB3gmzlC/U +b7O1u120JkFsaWNlIExvdmVsYWNlIDxhbGljZUBvcGVucGdwLmV4YW1wbGU+iJAE +ExYIADgCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQTrhbtfozp14V6UTmPy +MVUMT0fjjgUCXaWfOgAKCRDyMVUMT0fjjukrAPoDnHBSogOmsHOsd9qGsiZpgRnO +dypvbm+QtXZqth9rvwD9HcDC0tC+PHAsO7OTh1S1TC9RiJsvawAfCPaQZoed8gK4 +OARcRwTpEgorBgEEAZdVAQUBAQdAQv8GIa2rSTzgqbXCpDDYMiKRVitCsy203x3s +E9+eviIDAQgHiHgEGBYIACAWIQTrhbtfozp14V6UTmPyMVUMT0fjjgUCXEcE6QIb +DAAKCRDyMVUMT0fjjlnQAQDFHUs6TIcxrNTtEZFjUFm1M0PJ1Dng/cDW4xN80fsn +0QEA22Kr7VkCjeAEC08VSTeV+QFsmz55/lntWkwYWhmvOgE=3D +=3DiIGO -----END PGP PUBLIC KEY BLOCK----- diff --git a/test/lisp/emacs-lisp/package-resources/key.sec b/test/lisp/ema= cs-lisp/package-resources/key.sec index 5bbac1226a..af11bec899 100644 =2D-- a/test/lisp/emacs-lisp/package-resources/key.sec +++ b/test/lisp/emacs-lisp/package-resources/key.sec @@ -1,17 +1,16 @@ -----BEGIN PGP PRIVATE KEY BLOCK----- +Comment: Alice's OpenPGP Transferable Secret Key =20 =2DlQG7BGFQyDcRBACmAI6cfY3fM02vb9JtC1BS19boKXbBsDoVrD9qRf8tDFROOpO3 =2DZMlbuz+O9Vnljo6Y4WZGnyeWWAMqCditMOfr1cLbux77wSrmAVgZ9exwtGzkmUhM =2DxcptzKuyod8NuhghXbJgVbfJZ6HlBkk4kiWv98iJQwUBZJfjBUfIv+acjwCg4M2i =2DIfu2A3UYl9VqF7qfcDOZudEEAI7V35yfsBDnr9ndKqdGYNw0alX9BEG3KwnAe0fF =2DO1jDVW12Y/bwnyyrRTrz6o1G8dj7M4XVZQb5PpT9mpNzOSZ6yxqhg+foeJwn2JkD =2DvyP+kMYU7SZ/tWuMOCdzN95Ki1rf+ti7pLnSMqKx+t3vOWwQbtnsbI6RCLLwETPA =2DesghA/0X3Dw7cdiE5Xq4TRaPSGViCWP4ekL2KYKqmKv6M/4f2pgFNJY7C+2SIiiP =2DT62zFlIjs5tF2Df34/M5mh4Vx6E8341r55+XO++kfFWJ5QjLiydRAY6ochG9IFgB =2DxyBCkCNpiby9PpKyPodedBScdMxIAe4eJR7rG/j9gFC1MypBugAAn0mvGeJi+oSo =2D5jXAeXBhRiTyI5WPCuK0J0pvaG5ueSBSb2NrZXRzIDxqb2hubnkucm9ja2V0c0Bn =2DZnkub3JnPoh4BBMRAgA4FiEESFc9Qz85uERAyFzbZbUBuQAr+pcFAmFQyDcCGwMF =2DCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQZbUBuQAr+peImQCgqpXa6EWB+71M =2D1VdFL9TXA1XKS54AoJhKC1cRiyksAxFzaqo0Q8w0aUXo =2D=3DcyQm +lFgEXEcE6RYJKwYBBAHaRw8BAQdArjWwk3FAqyiFbFBKT4TzXcVBqPTB3gmzlC/U +b7O1u10AAP9XBeW6lzGOLx7zHH9AsUDUTb2pggYGMzd0P3ulJ2AfvQ4RtCZBbGlj +ZSBMb3ZlbGFjZSA8YWxpY2VAb3BlbnBncC5leGFtcGxlPoiQBBMWCAA4AhsDBQsJ +CAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE64W7X6M6deFelE5j8jFVDE9H444FAl2l +nzoACgkQ8jFVDE9H447pKwD6A5xwUqIDprBzrHfahrImaYEZzncqb25vkLV2arYf +a78A/R3AwtLQvjxwLDuzk4dUtUwvUYibL2sAHwj2kGaHnfICnF0EXEcE6RIKKwYB +BAGXVQEFAQEHQEL/BiGtq0k84Km1wqQw2DIikVYrQrMttN8d7BPfnr4iAwEIBwAA +/3/xFPG6U17rhTuq+07gmEvaFYKfxRB6sgAYiW6TMTpQEK6IeAQYFggAIBYhBOuF +u1+jOnXhXpROY/IxVQxPR+OOBQJcRwTpAhsMAAoJEPIxVQxPR+OOWdABAMUdSzpM +hzGs1O0RkWNQWbUzQ8nUOeD9wNbjE3zR+yfRAQDbYqvtWQKN4AQLTxVJN5X5AWyb +Pnn+We1aTBhaGa86AQ=3D=3D +=3Dn8OM -----END PGP PRIVATE KEY BLOCK----- diff --git a/test/lisp/emacs-lisp/package-resources/signed/archive-contents= .sig b/test/lisp/emacs-lisp/package-resources/signed/archive-contents.sig index b40620a0e896101d175ad19bb6829a3e7ca57389..db3eef9d6f7d114f866d7fd3fe9= a49f811e266b6 100644 GIT binary patch literal 119 zcmeAuWnmEGV2~A4WO?1XJAScM>BG1we#xHzoxS?B?g?ZV&LKwfQytf%oVeI uvncD6LV=3Dg@)4DX_nS1kDp0Y5^&tltQ^L1BG1we#xH_q3a_=3Dqmi?RQ~4Gr5VCL{m}6OhX3imYGO)zM0&p2wA^2QB9Hl5 Uo$Km;(|pF literal 95 zcmeB(WnmCxVvrS6Wbp{Mb+)(M;o@*2=3D632<#+?k>zoxS?B?g?ZV&LKwfQe{KWSFOL vc~*vyjjW*DF2(z1QI&dcn5y?P%=3DezqEuhnJ_y1Pj53@7YO}ziAZfP$7uQnt# diff --git a/test/lisp/emacs-lisp/package-resources/signed/update-signature= s.sh b/test/lisp/emacs-lisp/package-resources/signed/update-signatures.sh index c3e82fd173..30e74156c0 100755 =2D-- a/test/lisp/emacs-lisp/package-resources/signed/update-signatures.sh +++ b/test/lisp/emacs-lisp/package-resources/signed/update-signatures.sh @@ -25,8 +25,9 @@ TRUSTDB=3D GPG=3D"gpg --no-default-keyring --trustdb-name $TRUSTDB --keyring $KEYRING= --yes" =20 rm $KEYRING =2D$GPG --full-generate-key =2D$GPG --export --armor > "../key.pub" =2D$GPG --export-secret-keys -armor > "../key.sec" +#$GPG --full-generate-key +#$GPG --export --armor > "../key.pub" +#$GPG --export-secret-keys -armor > "../key.sec" +$GPG --import ../key.sec $GPG --detach-sign --sign "./archive-contents" $GPG --detach-sign --sign "./signed-good-1.0.el" =2D-=20 2.30.2 --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0004-Replace-aging-OpenPGP-artifacts-in-gnus-mml-sec-test.patch Content-Transfer-Encoding: quoted-printable From=20e829d098aa228d41c24c1e46f56ce33c14370e6d Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Wed, 5 Oct 2022 12:36:39 +0200 Subject: [PATCH 4/4] Replace aging OpenPGP artifacts in gnus' mml-sec tests. This replaces the old OpenPGPv4 keys that are used in the test suite with more modern OpenPGPv4 keys. Having old cryptographic artifacts in the test suite presents a problem once the old algorithms are rejected by contemporary implementations. =2D-- ...62E2DBC6D6848AE88BCE181CC1938F2FAC816C.key | 5 + ...089CDDC6DFE93B8EA10D9E876F983E61FEC476.key | Bin 797 -> 0 bytes ...2E3324B4811A197A1DE922671AA6ABE475025E.key | 5 + ...6DBED74BA05B5AA1E2A6E4634EF6F62C0D7A5F.key | 5 + ...0D8E451BFADF816524AF5E185EBF3DED48CA00.key | 5 + ...1B444DE92BEF997229000D9784118A94EEC1C9.key | Bin 526 -> 0 bytes ...67CB6C7B1C00996FCFF5930C3467D3D4FB702C.key | 5 + ...FFEBC04DF3E037E16F6A4474DCB7984406975D.key | Bin 841 -> 0 bytes ...36D27DF9DAB96302D35268DADC5CE73EF45A2A.key | Bin 797 -> 0 bytes ...3109315BE584AB2EFEFCFCAD64666221D8B36C.key | Bin 526 -> 0 bytes ...9A99AF2FB073D3328B0F995BD6DE74616A6CC2.key | 5 + ...50B5BE67E704F82BC9AAE00EC8A0CAC8C2A94F.key | 5 + ...5689599E1C0F66D73ADCF51E03EE36C97D121F.key | Bin 797 -> 0 bytes ...BF94E540E3726CB150A1ADF7C1B514444B3FA6.key | Bin 797 -> 0 bytes ...5D4637EFC6C09DB1F78BE8C2F2A3D63E7756C3.key | Bin 798 -> 0 bytes ...94CDB62DB28FBB486DE077DAF248FB32BE286A.key | 5 + ...11B1935C46D0B227A73978DCA1293A85604F1D.key | Bin 798 -> 0 bytes ...2B6633E89C0BD58A0FA2C785A31EAA96278695.key | 5 + ...F5836DA69D9F63059D2665451F18E4346DF43A.key | 5 + ...643CEBC7AEBE6817577A34399483700D76BD64.key | Bin 526 -> 0 bytes ...CA92780975EEB798D2083FF25AFD43A4033DB7.key | 5 + ...F2D9DF7AED06F0524BEB642DF0FB48EFDBDB93.key | Bin 798 -> 0 bytes ...C17E134E86E691297F7B719B2F2CDF41976234.key | Bin 527 -> 0 bytes ...788436224049A2FE1E446E16B70DB012C830BB.key | 5 + ...714F4D9D9676638214991E96D45704E4FFC409.key | Bin 798 -> 0 bytes ...4752F5D8090CA36EFBDD79C72BDFF6FA2D1FF0.key | Bin 526 -> 0 bytes ...65328E25351B0D7697D4156A13497174F999D5.key | 5 + ...04643B1FB8AAC7529134D1565DF8B4ECA01E35.key | 5 + ...BA94EAE83509CC90DB1B77B54A51959D8DABEA.key | Bin 797 -> 0 bytes ...BC0634D18962998AB53A0134DD2AD0DC4E0782.key | 5 + ...6A24B17A8D0CAF9B7E000AA77F0B41D7BFFFCF.key | Bin 841 -> 0 bytes ...FF2771AD5F49BEC185CDED47EC47D15550CB93.key | 5 + ...72AF82DCCCB9A7F1B85FFA10B802DC4ED16703.key | Bin 841 -> 0 bytes ...6C6A8B40A2179CFE83CB0C2827358AB171CDFD.key | 5 + ...3E1A079B28DFAEBB39CBA01793BDE11EF4B490.key | Bin 527 -> 0 bytes ...5E00CE582C2645D2573FC16B2F14F85A7F47AA.key | Bin 797 -> 0 bytes ...68630A06B048F5A91136C162C7A3273E20DE6F.key | Bin 710 -> 0 bytes ...723A68027A82B538F04BF4A2A1323D1B3E095C.key | 5 + ...A2C195DEBA3506F0ECFBE3DDD7C57F6913DC7C.key | 5 + ...8C922A471E08FAF083EC2465AFB4063904C282.key | 5 + ...C3163E69C57319C6038F9EBE14F5D55DE553F7.key | 5 + ...E73903E1BF93481DE0E7C9769D6C31E1863CFF.key | Bin 797 -> 0 bytes ...B164A45A1D5C5078508A9869DF6DB84DEA543B.key | 5 + ...117468BE801ED4B81972E159A98FDD4814DCEC.key | Bin 797 -> 0 bytes ...C5EFD5779BE892CAFD5B721D68DED677C9B151.key | Bin 841 -> 0 bytes ...E86D61A71E9CE6B0DBC65C5121846E542913B9.key | 5 + ...38C61A8DB32297C7C3C18E7A837D7B70263BC7.key | 5 + test/lisp/gnus/mml-sec-resources/pubring.gpg | Bin 13883 -> 11564 bytes test/lisp/gnus/mml-sec-resources/secring.gpg | Bin 17362 -> 9315 bytes test/lisp/gnus/mml-sec-resources/trustdb.gpg | Bin 1880 -> 1680 bytes test/lisp/gnus/mml-sec-tests.el | 86 +++++++++--------- 51 files changed, 163 insertions(+), 43 deletions(-) create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/0062= E2DBC6D6848AE88BCE181CC1938F2FAC816C.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/0208= 9CDDC6DFE93B8EA10D9E876F983E61FEC476.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/052E= 3324B4811A197A1DE922671AA6ABE475025E.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/066D= BED74BA05B5AA1E2A6E4634EF6F62C0D7A5F.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/0B0D= 8E451BFADF816524AF5E185EBF3DED48CA00.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/171B= 444DE92BEF997229000D9784118A94EEC1C9.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/1967= CB6C7B1C00996FCFF5930C3467D3D4FB702C.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/19FF= EBC04DF3E037E16F6A4474DCB7984406975D.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/1E36= D27DF9DAB96302D35268DADC5CE73EF45A2A.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/2931= 09315BE584AB2EFEFCFCAD64666221D8B36C.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/2C9A= 99AF2FB073D3328B0F995BD6DE74616A6CC2.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/3250= B5BE67E704F82BC9AAE00EC8A0CAC8C2A94F.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/3356= 89599E1C0F66D73ADCF51E03EE36C97D121F.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/40BF= 94E540E3726CB150A1ADF7C1B514444B3FA6.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/515D= 4637EFC6C09DB1F78BE8C2F2A3D63E7756C3.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/5294= CDB62DB28FBB486DE077DAF248FB32BE286A.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/5A11= B1935C46D0B227A73978DCA1293A85604F1D.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/5B2B= 6633E89C0BD58A0FA2C785A31EAA96278695.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/61F5= 836DA69D9F63059D2665451F18E4346DF43A.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/6264= 3CEBC7AEBE6817577A34399483700D76BD64.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/64CA= 92780975EEB798D2083FF25AFD43A4033DB7.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/6DF2= D9DF7AED06F0524BEB642DF0FB48EFDBDB93.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/78C1= 7E134E86E691297F7B719B2F2CDF41976234.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/7A78= 8436224049A2FE1E446E16B70DB012C830BB.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/7F71= 4F4D9D9676638214991E96D45704E4FFC409.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/8547= 52F5D8090CA36EFBDD79C72BDFF6FA2D1FF0.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/8865= 328E25351B0D7697D4156A13497174F999D5.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/9504= 643B1FB8AAC7529134D1565DF8B4ECA01E35.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/A3BA= 94EAE83509CC90DB1B77B54A51959D8DABEA.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/A6BC= 0634D18962998AB53A0134DD2AD0DC4E0782.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/AE6A= 24B17A8D0CAF9B7E000AA77F0B41D7BFFFCF.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/BCFF= 2771AD5F49BEC185CDED47EC47D15550CB93.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C072= AF82DCCCB9A7F1B85FFA10B802DC4ED16703.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C36C= 6A8B40A2179CFE83CB0C2827358AB171CDFD.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C43E= 1A079B28DFAEBB39CBA01793BDE11EF4B490.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/CB5E= 00CE582C2645D2573FC16B2F14F85A7F47AA.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/CC68= 630A06B048F5A91136C162C7A3273E20DE6F.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/CF72= 3A68027A82B538F04BF4A2A1323D1B3E095C.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/D6A2= C195DEBA3506F0ECFBE3DDD7C57F6913DC7C.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/DB8C= 922A471E08FAF083EC2465AFB4063904C282.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/E0C3= 163E69C57319C6038F9EBE14F5D55DE553F7.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/E7E7= 3903E1BF93481DE0E7C9769D6C31E1863CFF.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/ECB1= 64A45A1D5C5078508A9869DF6DB84DEA543B.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/F011= 7468BE801ED4B81972E159A98FDD4814DCEC.key delete mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/F4C5= EFD5779BE892CAFD5B721D68DED677C9B151.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/F4E8= 6D61A71E9CE6B0DBC65C5121846E542913B9.key create mode 100644 test/lisp/gnus/mml-sec-resources/private-keys-v1.d/FE38= C61A8DB32297C7C3C18E7A837D7B70263BC7.key diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/0062E2DBC6D= 6848AE88BCE181CC1938F2FAC816C.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/0062E2DBC6D6848AE88BCE181CC1938F2FAC816C.key new file mode 100644 index 0000000000..6f1e145295 =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/0062E2DBC6D6848AE8= 8BCE181CC1938F2FAC816C.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Curve25519)(flags djb-tweak)(q + #40C5151DC16303D3BD25F10C092E411CC3D65F7DF30DD8DDBDB17771EED64F8874#) + (d #7AA2EEE8EC08C2B41C4AAD9484D2ED8F6C630392892322827901B37EE3973E68#) + )) +Created: 20121130T230715 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/02089CDDC6D= FE93B8EA10D9E876F983E61FEC476.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/02089CDDC6DFE93B8EA10D9E876F983E61FEC476.key deleted file mode 100644 index 58fd0b5edbc0fae0642c30d4c807d8cb4eb1cacd..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmdNeGPEiv$}dSxE=3Df(%Ehx$?ODsv%%}%Ywv|?EPCfa6}^X`A# z_8bczDHp$y{^rxyxQwB*EtEl7(?^+!b@8cpwLFv3EAFWskY%}{rAq?h}4%pUhXjG-KmUy4AbUs(_%YZAF-@Bseh+J z#Il&aIn&d3EXdOGaJ#+qTc2B!r6$lNsm4}}42+r@mIxOcnpou*q~;Z*7wG0CmSmQt zY8YC=3DMUZ`CZdI0ARGgWgXJ}=3DjsbON3n3JAwY!wvj2;vk2{cC6yKPWs3bO+d*VE0&9 z2_4(@=3DJloLLJ9A?)B74%gv|3k!@StKXYv)nT%pG7h5yPQ{aE{ncj`qOq1j9eY`F4Y zUes4TVVusts!CwKAq(H@^R*HCD!+CaDm)a~v}>8l)tqxHJ2$RAviUg6zs_7Mrb9Zj(4>vfzCXb^L=3DnOMcD~40)wrlg2zTtIp@|F0z zD48iG`{s)mo6Bu8rfA+s^)BDdb8JS;vVbenaf@Qj_1bFK%{JZn`1SYvcG}i6n6@Ccss(pS(PtY~k)Ku-6uKKQW>uDz^@z0kvI-^-| zV9MG%1~PB7io;fzGi0h*DSQVRV`9a*@_$K>cizDVNjvXxo%`qa&7e{K?u1`A1x~-a z60{&?b?vK!=3DFe-sOKT+Fvk#~`9W-x_5C4@{T{Gs-u#AytO6~wfd2(@SuBnxYp_!!t VFliaUQWP+Om{{fI=3DcQ_b006cISnU7+ diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/052E3324B48= 11A197A1DE922671AA6ABE475025E.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/052E3324B4811A197A1DE922671AA6ABE475025E.key new file mode 100644 index 0000000000..cdc19ed266 =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/052E3324B4811A197A= 1DE922671AA6ABE475025E.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Ed25519)(flags eddsa)(q + #40AB5C863639D2154343F2196F43F95CCFAE91203324A0C63019EDA7942EA23E1F#) + (d #692D35D0062BE19EA22D92D7B58F8FAC5E1ACCBA78FE6260ADDDF987D2923A86#) + )) +Created: 20150822T122925 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/066DBED74BA= 05B5AA1E2A6E4634EF6F62C0D7A5F.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/066DBED74BA05B5AA1E2A6E4634EF6F62C0D7A5F.key new file mode 100644 index 0000000000..5a64f9f23e =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/066DBED74BA05B5AA1= E2A6E4634EF6F62C0D7A5F.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Ed25519)(flags eddsa)(q + #402C67E839BFBF7BE2095CA2E9502482C8E8314936689E922B9EF870F0F3F4944F#) + (d #225DF7626A9308083437959FFDF825AE05919CB92670D1E22B2C6A2FB0EAE7A4#) + )) +Created: 20101231T230030 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/0B0D8E451BF= ADF816524AF5E185EBF3DED48CA00.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/0B0D8E451BFADF816524AF5E185EBF3DED48CA00.key new file mode 100644 index 0000000000..995b93a4fc =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/0B0D8E451BFADF8165= 24AF5E185EBF3DED48CA00.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Ed25519)(flags eddsa)(q + #40127BA3ECD3C22145A892CC9A8EF12BBF91537B2180F54CBD22CB2696B7A7C4EA#) + (d #8CF76D6F3FD2893E87B08AC9A9E56419DB7D10BEC5F8AC4600516DC370E97DAB#) + )) +Created: 20111231T230004 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/171B444DE92= BEF997229000D9784118A94EEC1C9.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/171B444DE92BEF997229000D9784118A94EEC1C9.key deleted file mode 100644 index 62f4ab25a69bf2c1c815bb4c2b8d135516a7aeae..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dJQF)=3D!Da%py9bY(4TWqBwwI&yPiC^0&2F)}$i0OuQPEWQFU{Y#Sar)T{C zgOB-P@YPS?pCA)p7fRoC^Xri#%b4V-w@Sp|*rc@0^qB~Y`3iQj=3DA5!dSi&Wue7yqL zHrSF5j|Xw&O2-TE>~l?rlisq%O+_9cfE}pe3QE=3D`yr+b!jgnpjDr2V19kKm+4J z)+ipbU1+`*;muKsgf92TXFe0~c`xs~bb=3D75X*wVen7*%aZ#jT^YVhdfks&wv|`v1meaue_<}FL zPt4u94Rd(ee%XG1QM7wED}%?q=3D5~g&E-oI&CmKAt^Ho~d<@J)5o7>w;x2~F~<7Oi` zd(+P)JAWQ!-^bPP%_R59*=3DpaWd%V~EPXO&67#Rm5M1r8)EoWiIE#YdhRK>hm!uk7F)}b}YFHv%Y-nPYUyzztkY1phmspZn zma1WB2^T^3jk#4>YEf}!ex9L~iKd2$RbozhzOhwMup@|54D_#|Rs5jvD9{~XZ-TsQ zVqx{nJmkT~3-_1&PUb9^%Fl4|3!NC7VsgypW$(cao8&lVoYL9)b)V4JNteIAZCDy< z#+?3Po|dGKWm(sRWbRo$j~AbG5_A8(;J2@w>HUd8+u9a{UNAUz;=3DFI$H192+C+54c zHJmkgZ?RrndqwQmrF{1`pXNJxQn}%pqT2rHap%;P9mO1aTbe}c0>XTYruD9WmUiWU z`|G35x9vB^C6`u+cwD(VK||7OcUo%83%7(e9ha<(nw3twcI?x*?3ifwsjX8<_2HVW z+&=3DF%#vZ9qpHZgSXqc($`pI3Xace;RiA!fzeG%7K>-lj-Y}c(y-hZ`|{zo@+?crL! zBJ0{sbp@SUC(q1^nX9vR>*0r+*KXMz`It{|e~i`IUD^8=3DPBZ8YFjSqz`13`fDc>HZ z6}3Y4o1$dTZC|H)!`eZv^Wh)PS(5fsPwezOBdlqC>gm&WuYFPwv|`x%^J`b<4W=3Dyl z$(IVcuHMKB_TOvMCjH&Dr#omt;C z?4*J zwJ!BGNjolX%(M!hB=3DJtCMCEhJ+?ro3VjmyOuwQWz=3DnOMcD~7}Gl@5vSTJkP?XNC8( zqv18o8jj{F$3?i(HB^3o*4QQfJ4&IjzudxLotamHy}PN6jQN&UjkYPD}jAVPcAOaHMKG^FgG^@ VCM^S4iUKAO6RW)Zyi`pP0023eS402+ diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/293109315BE= 584AB2EFEFCFCAD64666221D8B36C.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/293109315BE584AB2EFEFCFCAD64666221D8B36C.key deleted file mode 100644 index 6e4a4e548fdde4735084c0d105afa9438fd68342..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dJQF)=3D!Da%py9bY(4TWqBwwI&yPiC^0&2F)}$i0QH;OtrA*l2ay$dPifP} zg7f?1bfZx#n#x7gwqB(*d()JGj+4?8D3}%awS~{A8I6a{q!dac_sB#I7?Tae=3Dm( zDJU^Ia5gnM0QO%Osv2owt&S4|f0uIcF(RoPhgC{AKoxdv_>eaQpiENVgmITu|AFVx z{H*%;GFHMe#VcM7+p_Tpml+6@^(iPZI&n5NIspGQBDoNk1sd~@ya@!{Y*q&KyWq}j zYy@Yj&JX80u)JSMC2bb3)ue5>I`daV$xj+!IBq7#9EekT^l2i~wv|_kpxa=3DFdE*fW-uQrLT4?5$s zslDy;I*mnITIV;#-`yM$pqIOGs^%vx(Id?HTm%1x8U=3DL5?$7W3;)QH;wa zPN#j?{Bp;3{+_MBlYhBv+7J}6*;fmH?|52b_8*Xf&MkLiXRjn1-b+5O|W|` ztQ0?gRycl7BJ|O#$rqo$St4?}&aGu{&q>WqPxf!T!WojJvCq%=3D^udchnTuK9Sej^W z`Eq-&S9YOpNbGbECW%{1RI=3Dwz=3DReYDxZXwOvDuO5?iTWq&E-2jDSeQb|516We%bfP zhovj(Q%-JuB;dule?$0usk!=3DwlDb=3Dy&sSI5a4bHN2y}*-sTIRZlS`fLvLa_zM`Zpj zvQ3-Ho_gvZBkz%Ya-3>I}SOzM;!S8Er|v`bk2cYm>G z%yzeHtXtmn#l=3Df}J?ipx`4p=3D{kTE7!CaOX2(wA>w{_MhN!7dcIU0PU4q`*CkJjyTOP{hRm8kjakcx@A7S5R966d-{9X1edBH7ElqVOL=3D9*d=3DTUwZ! W1Cy2kEJXnmh>2BReqO332mk=3D=3Dr&&V) diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/40BF94E540E= 3726CB150A1ADF7C1B514444B3FA6.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/40BF94E540E3726CB150A1ADF7C1B514444B3FA6.key deleted file mode 100644 index 14af8662f79b75cbf855b2a07a438d59b6f03b64..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmdNeGPEiv$}dSxE=3Df(%Ehx$?ODsv%%}%Ywv|@OXD3(3z^Xb=3D< zZo5m)I9@BT`2Pfy&0rm)?cZ)_EBQN(#2(U0a?mVJyuO#FZ6SH=3DAodde>rLI zd*2_(jS)@|diHwygvIxJ`ZxbbwJg0j!?W7#ok*m?uM1t~{=3D4+A&(_tRpEU26UB7Rn z`Yy4{Oa2(<&EDqFcW&)6i?o{6B9}FRE=3De`EVq{>{)UZUj*wDl(zaTZQAiY30FR>)E zELFqM5-x)58*{6&)S}|d{5(S|6HN^htHhl2d}FJiU`G(A80cR^tN20TQJ_1(-UPeH z!b+(kA*Jnsm5G3?<9(au|E`~z{Nv)P&I^Y7Z{0a5c4*53_L4>yhEwm0PCH+_y+HQ6 z-19H9{_&oPS>bYTt?aowTU#fX4vSyiic)_>1B`br1ZwpnuG^#7P zFS7pFvqQfuA2X?n2r9Gu4DHE^Q zeE$kH=3DFj6rYSXyFs%_UB8K1dayXnWDe+|JO`z+d(uCG?my;{@zANSSfucOQxHQ+)%EZvp X*Z`Qc3}7h=3Dm_SUd^78XiH9-IXUP)=3Dv diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/515D4637EFC= 6C09DB1F78BE8C2F2A3D63E7756C3.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/515D4637EFC6C09DB1F78BE8C2F2A3D63E7756C3.key deleted file mode 100644 index 207a7237d3abdd001aec142d990e53356df1bcdd..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmdNeGPEiv$}dSxE=3Df(%Ehx$?ODsv%%}%Ywv|_lvz4-9Q$&HgX zm)AH5teVZ7yB@E;+c%VNS)_AazZkOHz%k7#SEfH7pS>HZ-xyFG$TRNH5UMODxGO zOVu#6go_~i#@wnbwWv5VKhMz0L{r1WDlsQL-`FZB*b&4j2Kv{~Dt=3DIS6zC4HH^J_) zuu@v^_=3Dn(6om7jM-)4*d+)1&y7Up#$AE!hOZ{h ze0nISxR7twJh`fU=3DhyAs%OOxI)i=3D4RpmXtC)}=3DnbwQtOP%*$^m8rCYq!FA!kIQN5p zq3kS6*0-GW4(FHieg8K+asIK8#R?ws{1IWx8PA5E1vOMm+pR*ID2&_(DwD9iQ?An%zdXhqRX7+hi ze$7y0{-xCl_nhBY{7XZn=3Df`WEgn1FR#_b1x&0pD|lQQ9FPvcC1HBA~dAGdvE@Q^>6 z@o?_n46o)r3l2`C@!z4Y4ee>g%Ep6s)G#r<`)$SF{qCl{CInp&9{8X6e^ V)0P1&NdZ%ciB(>HUaBSt005eJW#|9^ diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/5294CDB62DB= 28FBB486DE077DAF248FB32BE286A.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/5294CDB62DB28FBB486DE077DAF248FB32BE286A.key new file mode 100644 index 0000000000..76418968b7 =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/5294CDB62DB28FBB48= 6DE077DAF248FB32BE286A.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Ed25519)(flags eddsa)(q + #400F656F4251142032FB4C989B33F2ED84E7673BF6D2DDA34EB936839977BC1DBE#) + (d #12F8EC3BD83533A35D9ABE9A9100E9A41C68E4BF9247552409259F365C913D03#) + )) +Created: 20150822T113710 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/5A11B1935C4= 6D0B227A73978DCA1293A85604F1D.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/5A11B1935C46D0B227A73978DCA1293A85604F1D.key deleted file mode 100644 index 85ca78da04d8069634542ae7fab0cccba6662362..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmdNeGPEiv$}dSxE=3Df(%Ehx$?ODsv%%}%Ywv|`wLrh01Q_EPa^ zVdZn>fh^H0o+VW?WZinYO<#7;Qg!z=3Dd#mkTU0mf`{++k_EtM?eecEH@nZiZyR_O8M z7aeG@72Mq-y+TIDQMN(*)>ik&H)M|l_FL+hz1Wy@jO*0jbi1AWFJIh$>y}%3P;;yE z=3DN4m`PX2}Sr`MFu@_Z%!Nq%AzvnJ3bsm4}}42+r@mIxOcnpou*q~;Z*7wG0CmSmQt zY8YC=3DMUZ`CZdI0ARGgWgXJ}=3DjsbON3n3JAwY!wvj2;vk2{cC6yKPWs3bO+d*VE0&9 zakc$E%G>jl|B1H6gsDmf4>O;q#x-zkVDk1X)JY0|^m)-qcgGbIQxxvx)XutfHXvVJ zJx*fs{D0eDWbJ&Lq33ez{fkeJCs~~~qgRYC zj$|BozSFK}mn@Il4$m8YKc9x~2{uTsb9*qy{%il!=3DN!#hMdzn+|4A23;F+~6?9nOb zIcuTDy#3xGIh#0Gh&kOE+$Um-fE#;b^_=3DkHEtG0i+y+M0P-QwpL?rWBp z2&eDu-g5c(Tk}(@6=3Dh!n<#*ZV!;HyTu6L++^WM|zD|Y_Ni&K~w6Qx`F1mx*uN{T=3DTbU8J?xdgwqV<-HN+NgYlkJ36h<@ALb~|p3<@Z?knx! zr=3DG@>F3F-(tb9Pc)=3DwtR>g*QBpt-F2uwTveZ#z+ibwehDZ=3DbJahm(SdS!m{*afNbJ zeT<=3DK!+ZbDktrxKI%P9D0RRChC^0%@F)}zh1t(+xb0*AZ#eDIW;u=3DNw0u;O=3Dg6+7y z-VJ46kMFn#xlXr24OMPW)Kytz+=3D{J3DX3zAtc}x~@sAmfvW+uO{qq9x0G?S>?ciV3 zGvEdBmY{J2%2RAqzADPuhT76E`$r!pD%T@^=3DlS9TZg(!F5u%83PEU2Gj4SLrFIoz4EXxXfac1_#fl5xSdi!C+;rAV=3Dr3YA?s6<6 z2ef|cui12=3D5sZWGx-(tH;n9pmTPY|pI&n5NIsowgx0O#2cHo3Ok@PjERF*_g9OTB922NHS#D|?O88D6{DB*6aMJE;T9Gm Q)vr*t>cfW}F1{%#DO7g*umAu6 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/64CA9278097= 5EEB798D2083FF25AFD43A4033DB7.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/64CA92780975EEB798D2083FF25AFD43A4033DB7.key new file mode 100644 index 0000000000..e5e07e6548 =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/64CA92780975EEB798= D2083FF25AFD43A4033DB7.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Ed25519)(flags eddsa)(q + #4089CBD8F3505333F4366B6CEC9C77984501D01A656E3835FE5E48AC68C485448D#) + (d #892D99E44F5DF2DE2E78ED7B92D321422876125ED53159C80EDE105058EBA119#) + )) +Created: 20111230T230130 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/6DF2D9DF7AE= D06F0524BEB642DF0FB48EFDBDB93.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/6DF2D9DF7AED06F0524BEB642DF0FB48EFDBDB93.key deleted file mode 100644 index 2b464f0ccbe4b2fe503e513672d8835ae4cbf96b..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmdNeGPEiv$}dSxE=3Df(%Ehx$?ODsv%%}%Ywv|>2=3D@oI+1aW2m} zl~F7LRuMCmZl6fFktKU0VZUb}=3DSlH59kVIv zW~NSvKldu&AM?~rn*=3Dr;IV-!w_oB`DmK~oRa|@k)XRnxkb%D_7pz9J3JSTG+`?w@L z{UH1D$l)*dd4$i#u4oOq`O-Bq>%1n=3DC8@?%j0}vL8kPtb8=3D6?<7o_GDq!;MsC6;8C zrD_;j!bOmMV{TQJT2!2wpJ!-gqN!nGm6(&BZ)_D5>#54-s#{_q<_A_vw@vnAIdFT;{*_x*ofb0%?wIqrG4{~*$*cTDRGA-y1Xl0eq@)cf~cAs<;BL8>r-}0*RNh}2sLK)eXZ#SzwV54*s{OGzA$?3ikV0EK0k1QbzgpT z*yoKR*Urstxu>){DJg7?X;0BtE6-fLd7^ z5ZUXgj4-$1`gseoVNO_$i>4J6KkK#sAe+_ z=3Dd7Bdd&uhuhbbsAI%P9D0RRChC^0%@F)}zh79!~M=3DpMdAm3piq@u6U=3D)oup5L>rj_ ziq&q;2!rRp$9ysTtBn77I-ePy9h`>qRJDAu=3D_3D}*Bg)BkwnYq{;MRqCNULKaRsE=3D zEN`Zi0jKA)_jstRqYIhg!!^(L4&9lK;|!< Rpw6b$yIbP0v^UNvDJjAx{2KrO diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/7A788436224= 049A2FE1E446E16B70DB012C830BB.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/7A788436224049A2FE1E446E16B70DB012C830BB.key new file mode 100644 index 0000000000..4df0858b89 =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/7A788436224049A2FE= 1E446E16B70DB012C830BB.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Curve25519)(flags djb-tweak)(q + #409BA575D98C4F4F414AFF624CE0E63882099BDEA95261963C9A0C1185D2D5261C#) + (d #62A2816B08C1489F5978E36725E3A1D844EA5CD0DD95FBD64208ABBD809DDE50#) + )) +Created: 20141118T185800 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/7F714F4D9D9= 676638214991E96D45704E4FFC409.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/7F714F4D9D9676638214991E96D45704E4FFC409.key deleted file mode 100644 index 137659693bd3b69fe3b51aa9916890277865733c..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmdNeGPEiv$}dSxE=3Df(%Ehx$?ODsv%%}%Ywv|`vVW_U^?`n1Dp zrzg+cwHF3z{k{3#eetAuI`-eIHoE)nt^7N2!7Q12%{DV#k@VZ*0s2xi8*8lGY#;Rp z9g28oRof}PHsHU56-U+l6Bjc~4BBqrIqKb7VR%nqL(NLz#EJO=3D@+LF$mVWt@*}R!! zo8PYJId^a5yqwZop|C?I>?NPQyC%>jsm4}}42+r@mIxOcnpou*q~;Z*7wG0CmSmQt zY8YC=3DMUZ`CZdI0ARGgWgXJ}=3DjsbON3n3JAwY!wvj2;vk2{cC6yKPWs3bO+d*VE0&9 zxtDqd`pBhkza6}1?}g(_|WP*H3K` zU72t#J*v1#lDYhI?lF%Cv!*0@y2bpNKiyjTZB|Xols1n*qb>a6%hqu=3DnD9!8d|ATA z{=3D(Sv^Hwvz%U=3D%8bt)EInVj`}?$MvATeh9!iC*dmbcUI!6~hth-&6nIj0%%qyZXRs zw@EJlTaH)2v)AFDD2tWm669;7MrKOFqN*siu5e zc;x|auN&Jc^dgttYT2{oQA=3Do;^`>ppS`*DqA7Q+r)u4GU5ftai#ihBXRwf1(W=3D6oY TWdKW3z!YL)m6xBFstE!BP8C`u diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/854752F5D80= 90CA36EFBDD79C72BDFF6FA2D1FF0.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/854752F5D8090CA36EFBDD79C72BDFF6FA2D1FF0.key deleted file mode 100644 index c99824ccd43b4c22a344af3c9074d38a736c50ad..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dJQF)=3D!Da%py9bY(4TWqBwwI&yPiC^0&2F)}$i0M3U=3DWY|w|OJ759@*5}@ z?M5FrJ%PS827pcfAsNa}+`5FyN8RIa?OwyKzC`#$)B`)jv70hutA_GK5_GMR{@!eT z!k=3D6aK%)vHSTN!x)tr8{eVD7E(5@%_>PAPwKgUyhVMsTwa2fPH6S~}zib`YPhGgQk z)CnWREJ%@;xhW_yI%P9D0RRChC^0%@F)}zh5LP2N7UVI##EVfQ)q)mcZfS|N6V5l| zi^89)zMg^}bE1u1q3@f&D*w-ty3+(q-aaGf>!G}jW*8g&sn_I zuI!%sBXOap8Wk8^Y2z{i#v%^br70*eI&n5NIsop>l;8k~B>5xWtAya!(bt1lj1SIC zlU<#9Pk1++9u5gTP+w+xNy3S4_AL{l28J=3DF?<4il@0$ZL+&%7=3D!i6a)F*piwpcP*j`yT&Cwv|?B##BN!+jzRSM z_S+{LuPyPfNWFC6dn#AN$AAN@KUe7I7lm&+6!hJ}V$OTsZGF3fCUg{MC{|j_2GmcL z-WixXM?+%ED!t_wGZP=3DK73%AY)cLk7B3eEqK)G>Io@v?cGc|Y58a@$JVAN=3DTuvBs4 zyb3@0L(w*S{d(#Q138-VCvfd$)&#mF)!2%Wfl*V#65(P)6RZ4!)VzZ90^PjClFYJH z4MR(~2(oX?t;$l1iZk=3D`46RHwHB77$bJFvTt%8CbL7ZZse+{kT2Zcw0?f`oe>>dj% z=3DCEMP@AV#2RgcgUR$JHlVCc{FzT3McH`d-{I1!Hd%g zN6$YKntHmzXl1LvgJxUawI+S<)a(0BPw8hhEKmeG!_3r*;Q)6|g8Iu#Uj@^zZ(=3D_1 z%Xju4F6ydvKMJd-*Eww*P`X?Cm zY@^khD}p~Hwv|@PAe7e+s)xKNP z{&QDq@QG}YSe<_UTJe?7mp$hmTJbZY@%Y+Rk79OkZpzuezmI)ZgM{B7d*!Z~HQKj- zuerX}=3D~?b-(}v{yx`j&@?crbfWWw})9xoVY^+ht(TlGA>o;0a(vNWrbsD`}H^!B}C zJmQx7@5fv7$^P1=3Ds5X7}{fCJ{)UZUj*wDl(zaTZQAiY30FR>)E zELFqM5-x)58*{6&)S}|d{5(S|6HN^htHhl2d}FJiU`G(A80cR^tN20TQJ_1(-UNBq z#KKBz2d{gmY16OsX7NXuy6r+E-lsMwy*&_dxqd?1#ffs4bmGI4#p~W(o~JRV>C5DU zq1!4}il<&?T$dGoXFL@c}JTVJuRDXGzWdoD)nK;bNxNoTyuyII$(hwc0r zz*(2RYR0YRy4%Mu`0#GJT=3DUr^MX_AnFvRk{U{Q2glf3pMp6ZGEq0GK zr1rNfKvADuT$*cWWdKZG2C!5GOeDZ0k&$R-K)v_C8~>88d+JIX@UR%wBUB1 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/BCFF2771AD5= F49BEC185CDED47EC47D15550CB93.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/BCFF2771AD5F49BEC185CDED47EC47D15550CB93.key new file mode 100644 index 0000000000..52e1aaa9ba =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/BCFF2771AD5F49BEC1= 85CDED47EC47D15550CB93.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Ed25519)(flags eddsa)(q + #404CD8B5371C0868C770EC91255E5703812174BED5AD019C58C0BAE9DA0383EB67#) + (d #6C05D0EFE8281C1D22A7E652DCCF33FF24C4DB7291D1B772FAE469D95BC4D81E#) + )) +Created: 20150822T111645 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C072AF82DCC= CB9A7F1B85FFA10B802DC4ED16703.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/C072AF82DCCCB9A7F1B85FFA10B802DC4ED16703.key deleted file mode 100644 index cf9a60d233b86ea419e4b616e349bbed1cc0cc1f..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 841 zcmdNeGPEiv$}dSxE=3Df(%Ehx$?ODsv%%}%Ywv|`wDV2!4z!scs^ zuKy2iQ)%N~$-VYK(D~p0-&gml<=3D%Vp;)(Y(*)BobiTv*R>^c5f*8^^{-u$WS_)F{& zi;}%WVEP>vg}A$OLw{9;N*-c~W<2^!?wOPMvdgwJJ)Yk> zJNt0Xs^%^GF1WMROC5iedAQ0bNnaD_l2l_WMg~Sr4NHWJ4Na`_3sUn6(hGF+5=3D%16 zQZ)=3DM;UdVsF}Es9Eh^5;&oi_#(bO=3DpO3X>mH?|52b_8*Xf&MkLiXRjn1-b+5O^|m@ zEUYx1ovHabtD{``W5TcHLX-7dc8R^;5&iI8)L-lD)p}R0CM3QvY|}HgDg5~Fnk3)f zq9WVZ>r*+G&fgtYn%}!^kG+l0+)DX&g^w%xe$6Sred+y=3DZ5Nz#E9PWXKAy)S-c!lx z_TbRVr_<$2%eS35%)sC6uxRTF-yO|Idmfv9T_{!Z^UCt}SnXwV?o0KYk;qWUF8*av zJax~R$wF_pe^FTOzQ!}nr{d?oxEn`|W9RekJ>&3q+Q*Q<;FtqvJXrU9>uk`tzVf26 z8|#z=3D;g_7}>YpT=3Dac%4mo2K-)>UNrMnOaF$quQaOpoXa3?H{LP^|d8@h;ity-ZAYy zkMNE=3D!D+fbwuh;2dRXTdal%P%^V$_@GZ<#=3Dsh)CVXVizoIu~wrsq%k&?AB&^N8}){ zm;V0<{*3|+*K()KWIdpNYh8i-*Tv>G?$x(N|LiT{;@v*u%Z0{`tG=3Df`%vt#8UHy*u zr_Ww&7Zd?SeR6SWuA!9yFnJlkQWY?f0Fy*UqM@mkvtw|GsfAT5dqLd$l)X%bR>me) Z!5)r=3D7FKt!ChwQ1E?#M5Wof1f0s!aOfdBvi diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C36C6A8B40A= 2179CFE83CB0C2827358AB171CDFD.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/C36C6A8B40A2179CFE83CB0C2827358AB171CDFD.key new file mode 100644 index 0000000000..2c491e5361 =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C36C6A8B40A2179CFE= 83CB0C2827358AB171CDFD.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Curve25519)(flags djb-tweak)(q + #404B32D4946068A43D436843191272244F5FD661A624E2F3BAAA5B48158C14C12A#) + (d #6FD7F940800F8749B7709638BC020B8BA6CD7072967D9E456A39C4FCF2C09798#) + )) +Created: 20111230T230130 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C43E1A079B2= 8DFAEBB39CBA01793BDE11EF4B490.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/C43E1A079B28DFAEBB39CBA01793BDE11EF4B490.key deleted file mode 100644 index 0ed35172fe01e0021a8365a11eb0870b3722d474..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 527 zcmV+q0`UDPF)=3D!Da%py9bY(4TWqBwwI&yPiC^0&2F)}$i0MUKpgWQh6p1{630)l*u zku3MiycceiY-DjLWu(cWl~c}6EBaV3YE}z4S%)j`8#-333{AP1yVeBg)E!GS;aXH7 zvFN$y7ax>ZHXZ(U@jwY%y64)L@7)tuiSl|FkWK+h7-p- z51S+$sve#t054y~u$V70o}E!PX(=3Dc%I&n5NIso#=3D82aW;MkLbotc9JjIX6Tk&8F9u zRGg)$D2Bl*ABOtst8k>V)ZK^sF@kp=3Da2;>rlK{_olEsW|!Nj-AK@TY?F*=3Dyt4 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/CB5E00CE582= C2645D2573FC16B2F14F85A7F47AA.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/CB5E00CE582C2645D2573FC16B2F14F85A7F47AA.key deleted file mode 100644 index 9061f67512102ffeb5f7a213a37cfb2b0cbcf07a..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmdNeGPEiv$}dSxE=3Df(%Ehx$?ODsv%%}%Ywv|`vKpV$1*=3DRNo5 z)IY)^%qynGuGQVS?Cj0yAFiaCr2npayJoAYbE?%{xd*+!{@m19aE`6_RF;TE$hCK2 zN1Uf`eEznqi-N6t3f0Sk3?{MSD@%=3Dsf z-`%J*W$Xygx8+N?6e@J*+!;RgL}i|GOIQ1)Dm_oi(_UsRJ7-clfyc>h_RIwaOApW3 zllf`uf7ylxmMM&k3Ga-|Zm88S$z87QRHasaopaOD>p*9inOZR%U+ML-Xh&;++5@X? zOq;)Y@<>r#w^#q4%uIueB7Z-5R-Re%*x|Btx7v2I{Pv~M z5n9KsCNy*15@1fyGO-W4&+=3D7oJ;)dnEBQZ*uk=3D64mE`n4(i}gL`@+o5yBVj~Z9g!( zJnKf@PBq_+Gpu*yayQ7t+DIMh+wipW&H3VSs*~DoM0HI+XQ4i&{lQiC_9Aa5jd*5>9jZ?ugtQkvtDuQkE2%uk$3QV z75m``j{TfM4&Art^mK$6nxGiLiJsLOV-f)$O0w*!8@ti&Dk(?=3D#B#`sD>VUjh~oB! z;w_uMkco(@CtV!uzXYG6T?;uWC^0%^GdckP0VyasI&gAtbY)|7Wn?lnI&W}gZg6LC zEpsw!Gc9vyVKFUXWpgcKVq+*MG&*x=3DVKF#57y=3Dx+>4!`rW0a@lt?7^P0x*dIb#V>xKtKnv z?|d@)<6>el0<~Z^Jd?Uyb6~HTspd3_ZH>z(k`#3o9jM)jJA>S<%6ubq47Zs*o^MvKt(-Tu_maF&whLNgkl>bXn+lwT!A_Q3 z>iGFC5yHNQ^ou+nexYnTyHFn5XT1ozzMZnuYAzi26^=3D54KX z=3Dn)VP*bG_?iOmKv&rAY5NZd7|-OG@_v__pQ{Nc=3Do1ZPx0L%8Odw5tCrouqf4wJRcw s*>IjIC^0fRaB^>SWn*+@WG!KIF*Q0eFflbTFflb$F*7wdH8&|KDYo1~Q2+n{ diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/CF723A68027= A82B538F04BF4A2A1323D1B3E095C.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/CF723A68027A82B538F04BF4A2A1323D1B3E095C.key new file mode 100644 index 0000000000..5e431d38a8 =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/CF723A68027A82B538= F04BF4A2A1323D1B3E095C.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Curve25519)(flags djb-tweak)(q + #40D5985FA4E3038AD26D8685213A0ADDBB87A065B228D7D2853572FE9716ABD813#) + (d #42441AEA366A281B481E1993A0FECA94B487AE2C13734704797131C8F3CACB68#) + )) +Created: 20150822T111645 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/D6A2C195DEB= A3506F0ECFBE3DDD7C57F6913DC7C.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/D6A2C195DEBA3506F0ECFBE3DDD7C57F6913DC7C.key new file mode 100644 index 0000000000..8ed162c023 =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/D6A2C195DEBA3506F0= ECFBE3DDD7C57F6913DC7C.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Ed25519)(flags eddsa)(q + #40B1F1895AB187AC68A375C6604BB75F1B995BD9C36F14BAC8115F7A4E7E26F6EB#) + (d #7DDE136B2995E97E279A7CF8D193468742D56451D70C8EA8DEAE69BDEBFECBA2#) + )) +Created: 20141118T185800 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/DB8C922A471= E08FAF083EC2465AFB4063904C282.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/DB8C922A471E08FAF083EC2465AFB4063904C282.key new file mode 100644 index 0000000000..969c2ec690 =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/DB8C922A471E08FAF0= 83EC2465AFB4063904C282.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Curve25519)(flags djb-tweak)(q + #40ACCC6083DE0BE9E0CD37E47B305B0AD7611AA100BD7D0BBDA489489BB0A96B10#) + (d #4A015D5FF823AD615F618117FD465FD515D8A6F6D1788546E46E5E2F68CA8578#) + )) +Created: 20111231T230214 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/E0C3163E69C= 57319C6038F9EBE14F5D55DE553F7.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/E0C3163E69C57319C6038F9EBE14F5D55DE553F7.key new file mode 100644 index 0000000000..1e4cef029f =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/E0C3163E69C57319C6= 038F9EBE14F5D55DE553F7.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Curve25519)(flags djb-tweak)(q + #40E67DD44B95A0B37286E0B7812C6AE59FD37B487323496D2FD02ADF184722EF3A#) + (d #55AA402F49A1896142FC1E3311C5FC734820301ADE06D1F339C8DDF0351FAC20#) + )) +Created: 20141118T190135 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/E7E73903E1B= F93481DE0E7C9769D6C31E1863CFF.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/E7E73903E1BF93481DE0E7C9769D6C31E1863CFF.key deleted file mode 100644 index 41dac37574e3f714572fc2a70cd5a8dbbd55fcc5..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmdNeGPEiv$}dSxE=3Df(%Ehx$?ODsv%%}%Ywv|>2dWjk3<=3DH|6e z-A|0{_T{P1<~i||*=3DCK@;G)QGU@EG_Lq87ZrQTDj}rBs8Yl~NhMB1q!=3DtVBFU*X0_Pgtwx|IAC zms6j9TvqU!hnd;Evz~?v?CiWYA5L_0^=3D-Lz_4KNlFKy&+cf1O6V6s>g`h8k%TT62| z)R>o+OQtZ-7YbeA8(kZ=3D>cN4c-Fps7J}aCrs$VL2U&DlVvZqVIj5Q+B&b!2BDy@|_ zHMBU)ykJMfmN_ObRi^$6%>@}_Vr4HQ(A*f_5aQ&c9pdA2?)9ZzfzBQt4>V1h9$Q!~ z?wEAm+0f%~MfDetrRlSGZSZ+pInCy0l53C5#O|4C^RFKD07ZFnacQopm9d49g%L1m T8NgB$FoBp@<>lw4YJva&uMJV; diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/ECB164A45A1= D5C5078508A9869DF6DB84DEA543B.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/ECB164A45A1D5C5078508A9869DF6DB84DEA543B.key new file mode 100644 index 0000000000..6447ec553a =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/ECB164A45A1D5C5078= 508A9869DF6DB84DEA543B.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Ed25519)(flags eddsa)(q + #40964BF2C5B3BE05C4F82CCC49BA0A40B090AB03C9A4076B096115D1C61A47C470#) + (d #1ECC4B3E224D9A07FDA2B3B041729949B02F86F8284688D6E640D64B138FECE0#) + )) +Created: 20141121T150116 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/F0117468BE8= 01ED4B81972E159A98FDD4814DCEC.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/F0117468BE801ED4B81972E159A98FDD4814DCEC.key deleted file mode 100644 index 5df7b4a59534892f3eef8aa6c0c29ef5210480c8..000000000000000000000000000= 0000000000000 GIT binary patch literal 0 HcmV?d00001 literal 797 zcmdNeGPEiv$}dSxE=3Df(%Ehx$?ODsv%%}%Ywv|`xj|M{xM^Wf;B z<^H|xfzd~NRa@9TlvlWx-OacAJITZ#O8WH!$F=3DWIESy`bx@LLWnXS?-+g?YPR*5E7 zzOd)Y4HWzEU3l7zUDf-i__8cImQnG%T#4WG)>ZwPpT5VumH?|52b_8*Xf&MkLiXRjn1-b+5O|W|` ztRn7m<}^>K$?~r6k0=3D%DI#JJ@$mCR?H~Gt-z?EiQANNg=3DxzIlEb5lOo=3DO6w~>rSzV z%Kg51`K)A~{gm#H$+H6eJ#9rlEb|JxK6`twm0I7f*hiP`|Cc;JXRBh9#eL9Ve%YfR z?e5DWi!Q8tzP?Dx?bllKjDXs{-r|tJ0JkU8tyFb^&M-5zVz|-25LIwChT? zP-7nasB98iSn$uYL`na*>1kWf2G%XdbDcO+!WLdq ze9Lp@ysRr4pDUC3*6}2n#fxj}iOq9ko1gE&J7H@Cwv|{*DlKr&(Ze)bB zy~(Z_lg}_MZ;Y0y-TTK_YRx`pk%aZ1)T(wV|L^FZt7fLN_0zTP5F_rg#qxKQ)<0p? z_>%dm%X+2a^V##m>)tZQK8beT(6RT0#iY6q|D zmNLb%_Pu7(a^}R0g|68#f^Ao}Mrs0Gl4@+l$iS$nVTo|Dp@~&~L26z>dVy|UVo7FM zs)nH@Tm;!S=3D2m5?Ma7x3G%Lq zg%#5~XBpG?egEEAp1LN}y|3`hqYFNzVei>23rqV?sI@)iHg8IA?3%kOCDM4qi!G1k z&DtcZK2NY*^DxCN;fmI8>xoSEXMe9*mB4F|BVg5aO3QB`c-$oyjfgX%8AqZ-)oO{pBDNp-=3D}*)$u-JX;iq)_9g{sO zn>gqB-i`Wj@FUxV=3DO5kfaHKIVm9sF3wmVyEmYB1m)#qkM!2PW!l@8>$OCRL;)cAhM zJH_1vi3(a#f4PM`%0BQ-df=3D0!q;%qd?Mb$4M{acVZMA1+;F+grdg_MNx^~8%wd_16 z>)&&Rax*fE?vy#T#VI&D`Ic=3D^Lf%n9)r2*z*Z*(bTA*Bf)M1ImvoBB27o1rZsL^zB z&M)=3Dp3aQMV$2;OryC?=3D(xXnE+dstF$mf_U*Ds^$^j#_LgsCM&qnxs8Ht=3Du*2lJcY~ z`>CFws822~%{8<#046U3SgHah5@3?ZNHjFHa&`<3F}1MLy=3DUP1OPq0$p_Q?TRj`Mn Wp@mh_tAhQt*BXu+Sy`HCf&c(Uq;6vX diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/F4E86D61A71= E9CE6B0DBC65C5121846E542913B9.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/F4E86D61A71E9CE6B0DBC65C5121846E542913B9.key new file mode 100644 index 0000000000..a95f02bd3a =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/F4E86D61A71E9CE6B0= DBC65C5121846E542913B9.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Ed25519)(flags eddsa)(q + #4017C963514FEF755C31DA3805DA2C4855F3E335048E3BD91038FA79B743FC1993#) + (d #5CDC629D6C26FD0E943792EFF739A5E633DCF506E3C587F58806D59ED346F631#) + )) +Created: 20111231T230214 diff --git a/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/FE38C61A8DB= 32297C7C3C18E7A837D7B70263BC7.key b/test/lisp/gnus/mml-sec-resources/privat= e-keys-v1.d/FE38C61A8DB32297C7C3C18E7A837D7B70263BC7.key new file mode 100644 index 0000000000..ad4078fefd =2D-- /dev/null +++ b/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/FE38C61A8DB32297C7= C3C18E7A837D7B70263BC7.key @@ -0,0 +1,5 @@ +Key: (private-key (ecc (curve Ed25519)(flags eddsa)(q + #400D3537C332AF3DA91B8A186A8294CB663D8FABCBE26CD57255AEB3EFA4F4A49A#) + (d #978A174337FDA5815C221F379BDF657B90E779C9C5E085DE8160BABA695749C5#) + )) +Created: 20111231T230149 diff --git a/test/lisp/gnus/mml-sec-resources/pubring.gpg b/test/lisp/gnus/= mml-sec-resources/pubring.gpg index 6bd169963df7d73f1c1808ee82925a7e53bd6c18..579ca74999dfc5bd9d75c4b6892= 9df5dbe01f8ff 100644 GIT binary patch literal 11564 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 A+yDRo literal 13883 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 diff --git a/test/lisp/gnus/mml-sec-resources/secring.gpg b/test/lisp/gnus/= mml-sec-resources/secring.gpg index b323c072c04c25591abcabdbc3d801ad61472ce0..005f9485ae60a456008f8811af8= 47ad4b38c862d 100644 GIT binary patch literal 9315 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 diff --git a/test/lisp/gnus/mml-sec-resources/trustdb.gpg b/test/lisp/gnus/= mml-sec-resources/trustdb.gpg index 09ebd8db114842ac1824a58e0c1c7ed2c80bb98f..132c0bb71cdfe4c48f67ede578d= 4d3e4d379623e 100644 GIT binary patch delta 320 zcmcb?H-T4xF})z2nVFH5k%@sJStGZ7qM`Uib)kuOg(oVoObifYRGcU%Hu(b6RYrx0 zhEhPr%89MgK&j0am=3DYN$DzJk^Hi}Pl;Fz4i5>)>>eVHM1=3DgD`;X&$O@UAD(#kIk<(Y?P&iSa; zyKfN#2H;^3N!B~H^O3sQoZg$&-=3DELgzRvJUAsa-U-sCtomB~hI8omlB8hIErVvlUm zFIxZHCt~lJPmHSH+m=3DjP(FReYf>6rKAi8|w&a8_$oo6h1v^#{2Pnf42FK3v1pH*8& z8KDfw;$e7UetPj9&5Px%8hr6@>cy`pMs2WyIzw&pK2{?+9tM-8YF{S4+4yKm{){>2 zUrb}D+S_mfszh`0G*%Org@0zpp6P`tM1ZW(K(njuUF_B~0<(R^ z<2L4N?DQ=3D(4p~CHWE5c3q$* NlgUzS5`2m%IsxuGgJ=3DK% diff --git a/test/lisp/gnus/mml-sec-tests.el b/test/lisp/gnus/mml-sec-tests= .el index f308a61764..e4e607b70e 100644 =2D-- a/test/lisp/gnus/mml-sec-tests.el +++ b/test/lisp/gnus/mml-sec-tests.el @@ -199,7 +199,7 @@ mml-secure-test-key-fixture (let* ((mml-secure-key-preferences '((OpenPGP (sign) (encrypt)) (CMS (sign) (encrypt)))) (pcontext (epg-make-context 'OpenPGP)) =2D (pkey (epg-list-keys pcontext "C3999CF1268DBEA2")) + (pkey (epg-list-keys pcontext "2FAF8726121EB3C6")) (scontext (epg-make-context 'CMS)) (skey (epg-list-keys scontext "0x479DC6E2"))) (mml-secure-cust-record-keys pcontext 'encrypt "sub@example.org" pk= ey) @@ -259,17 +259,17 @@ mml-secure-key-checks (should-not (mml-secure-check-sub-key context (car keys5) 'sign)) =20 ;; The next key has multiple subkeys. =2D ;; 42466F0F is valid sign subkey, 501FFD98 is expired =2D (should (mml-secure-check-sub-key context (car keys6) 'sign "4246= 6F0F")) + ;; 167C1C27A9D25305 is valid sign subkey, 2DD796DBDAC43424 is expir= ed + (should (mml-secure-check-sub-key context (car keys6) 'sign "167C1C= 27A9D25305")) (should-not =2D (mml-secure-check-sub-key context (car keys6) 'sign "501FFD98")) =2D ;; DC7F66E7 is encrypt subkey + (mml-secure-check-sub-key context (car keys6) 'sign "2DD796DBDAC43424")) + ;; 8D850AA2B34936F9 is encrypt subkey (should =2D (mml-secure-check-sub-key context (car keys6) 'encrypt "DC7F66E7")) + (mml-secure-check-sub-key context (car keys6) 'encrypt "8D850AA2B34936F9"= )) (should-not =2D (mml-secure-check-sub-key context (car keys6) 'sign "DC7F66E7")) + (mml-secure-check-sub-key context (car keys6) 'sign "8D850AA2B34936F9")) (should-not =2D (mml-secure-check-sub-key context (car keys6) 'encrypt "42466F0F")) + (mml-secure-check-sub-key context (car keys6) 'encrypt "167C1C27A9D25305"= )) =20 ;; The final key is just a public key. (should (mml-secure-check-sub-key context (car keys7) 'encrypt)) @@ -305,9 +305,9 @@ mml-secure-find-usable-keys-1 =20 ;; Expired key should not be usable. ;; Will fail for Ma Gnus v0.14 and earlier. =2D ;; sign@example.org has the expired subkey 0x501FFD98. + ;; sign@example.org has the expired subkey 0x2DD796DBDAC43424. (should-not =2D (mml-secure-find-usable-keys context "0x501FFD98" 'sign)) + (mml-secure-find-usable-keys context "0x2DD796DBDAC43424" 'sign)) =20 (should (mml-secure-find-usable-keys context "no-exp@example.org" 'encrypt)) @@ -355,16 +355,16 @@ mml-secure-find-usable-keys-2 ;; Search works with key IDs, with and without prefix "0x". (should (=3D 1 (length (mml-secure-find-usable-keys =2D context "A142FD84" 'encrypt)))) + context "CA9EA5175C9043FB" 'encrypt)))) (should (=3D 1 (length (mml-secure-find-usable-keys =2D context "0xA142FD84" 'encrypt)))) + context "0xCA9EA5175C9043FB" 'encrypt)))) (should (=3D 0 (length (mml-secure-find-usable-keys =2D context "A142FD84" 'sign)))) + context "CA9EA5175C9043FB" 'sign)))) (should (=3D 0 (length (mml-secure-find-usable-keys =2D context "0xA142FD84" 'sign)))) + context "0xCA9EA5175C9043FB" 'sign)))) )))) =20 (ert-deftest mml-secure-select-preferred-keys-1 () @@ -373,7 +373,7 @@ mml-secure-select-preferred-keys-1 (mml-secure-test-fixture (lambda () (let ((context (epg-make-context 'OpenPGP))) =2D (should (equal "832F3CC6518D37BC658261B802372A42CA6D40FB" + (should (equal "0281C7D97E90771C0D9A61BFA049C1E9179C086B" (mml-secure-fingerprint (car (mml-secure-select-preferred-keys context '("no-exp@example.org") 'encrypt))))))))) @@ -413,18 +413,18 @@ mml-secure-select-preferred-keys-3 (let ((context (epg-make-context 'OpenPGP)) (mml-secure-key-preferences '((OpenPGP (sign) (encrypt)) (CMS (sign) (encrypt))))) =2D ;; sub@example.org has two keys (268DBEA2, AE31D471). + ;; sub@example.org has two keys (2FAF8726121EB3C6, 8E7FEE76BB1FB195= ). ;; Normal preference works. (mml-secure-cust-record-keys =2D context 'encrypt "sub@example.org" (epg-list-keys context "268DB= EA2")) + context 'encrypt "sub@example.org" (epg-list-keys context "2FAF872= 6121EB3C6")) (should (mml-secure-select-preferred-keys context '("sub@example.org") 'encrypt)) (mml-secure-cust-remove-keys context 'encrypt "sub@example.org") =20 =2D ;; Fake preference for expired (unrelated) key CE15FAE7, + ;; Fake preference for expired (unrelated) key 22F24E21C5010683, ;; results in error (and automatic removal of outdated preference). (mml-secure-cust-record-keys =2D context 'encrypt "sub@example.org" (epg-list-keys context "CE15F= AE7")) + context 'encrypt "sub@example.org" (epg-list-keys context "22F24E2= 1C5010683")) (should-error (mml-secure-select-preferred-keys context '("sub@example.org") 'encrypt)) (should-not @@ -438,8 +438,8 @@ mml-secure-select-preferred-keys-4 (lambda () (let ((pcontext (epg-make-context 'OpenPGP)) (scontext (epg-make-context 'CMS)) =2D (pkeys '("1E6BFA973D9E3103B77FD399C3999CF1268DBEA2" =2D "14632ECAB9E227369C8DD97BF7E79AB7AE31D471")) + (pkeys '("4D661F67B8BC4F7F1C53C2232FAF8726121EB3C6" + "EB67A6310389C9AE8A5695908E7FEE76BB1FB195")) (skeys '("0x5F88E9FC" "0x479DC6E2")) (mml-secure-key-preferences '((OpenPGP (sign) (encrypt)) (CMS (sign) (encrypt))))) @@ -456,17 +456,17 @@ mml-secure-select-preferred-keys-4 pcontext 'sign "sub@example.org"))) (should (=3D 2 (length p-e-fprs))) (should (=3D 2 (length p-s-fprs))) =2D (should (member "1E6BFA973D9E3103B77FD399C3999CF1268DBEA2" p-e-fprs)) =2D (should (member "14632ECAB9E227369C8DD97BF7E79AB7AE31D471" p-e-fprs)) =2D (should (member "1E6BFA973D9E3103B77FD399C3999CF1268DBEA2" p-s-fprs)) =2D (should (member "14632ECAB9E227369C8DD97BF7E79AB7AE31D471" p-s-fprs))) + (should (member "4D661F67B8BC4F7F1C53C2232FAF8726121EB3C6" p-e-fprs)) + (should (member "EB67A6310389C9AE8A5695908E7FEE76BB1FB195" p-e-fprs)) + (should (member "4D661F67B8BC4F7F1C53C2232FAF8726121EB3C6" p-s-fprs)) + (should (member "EB67A6310389C9AE8A5695908E7FEE76BB1FB195" p-s-fprs))) ;; Duplicate record does not change anything. (mml-secure-cust-record-keys pcontext 'encrypt "sub@example.org" =2D (epg-list-keys pcontext "1E6BFA973D9E3103B77FD399C3999CF1268DBEA2")) + (epg-list-keys pcontext "4D661F67B8BC4F7F1C53C2232FAF8726121EB3C6")) (mml-secure-cust-record-keys pcontext 'sign "sub@example.org" =2D (epg-list-keys pcontext "1E6BFA973D9E3103B77FD399C3999CF1268DBEA2")) + (epg-list-keys pcontext "4D661F67B8BC4F7F1C53C2232FAF8726121EB3C6")) (let ((p-e-fprs (mml-secure-cust-fpr-lookup pcontext 'encrypt "sub@example.org")) (p-s-fprs (mml-secure-cust-fpr-lookup @@ -524,10 +524,10 @@ mml-secure-test-en-decrypt (concat "Good signature from " (if (eq protocol 'CMS) "0E58229B80EE33959FF718FEEF25402B479DC6E2" =2D "02372A42CA6D40FB")) + "A049C1E9179C086B")) gnus-info))) (dolist (fpr signer-fprs nil) =2D ;; OpenPGP: "Good signature from 02372A42CA6D40FB No Expiry (trust undefined) created ..." + ;; OpenPGP: "Good signature from A049C1E9179C086B No Expiry (trust undefined) created ..." ;; S/MIME: "Good signature from D06AA118653CC38E9D0CAF56ED7A2135E= 1582177 /CN=3DNo Expiry (trust full) ..." (should (string-match-p (concat "Good signature from " @@ -586,7 +586,7 @@ mml-secure-en-decrypt-1 ;; no-exp@example.org with single encryption key (mml-secure-test-en-decrypt method "no-exp@example.org" "sub@example.org" nil t =2D (list (cons "02372A42CA6D40FB" "ED7A2135E1582177"))))) + (list (cons "A049C1E9179C086B" "ED7A2135E1582177"))))) =20 (ert-deftest mml-secure-en-decrypt-2 () "Encrypt message; then decrypt and test for expected result. @@ -600,7 +600,7 @@ mml-secure-en-decrypt-2 (dolist (method (enc-standards) nil) (mml-secure-test-en-decrypt method "sub@example.org" "no-exp@example.org" nil t =2D (list (cons "C3999CF1268DBEA2" "EF25402B479DC6E2"))))))) + (list (cons "2FAF8726121EB3C6" "EF25402B479DC6E2"))))))) =20 (ert-deftest mml-secure-en-decrypt-3 () "Encrypt message; then decrypt and test for expected result. @@ -619,8 +619,8 @@ mml-secure-en-decrypt-3 (dolist (method (enc-standards) nil) (mml-secure-test-en-decrypt method "sub@example.org" "no-exp@example.org" nil t =2D (list (cons "C3999CF1268DBEA2" "EF25402B479DC6E2") =2D (cons "02372A42CA6D40FB" "ED7A2135E1582177")))))))) + (list (cons "2FAF8726121EB3C6" "EF25402B479DC6E2") + (cons "A049C1E9179C086B" "ED7A2135E1582177")))))))) =20 (ert-deftest mml-secure-en-decrypt-4 () "Encrypt message; then decrypt and test for expected result. @@ -628,14 +628,14 @@ mml-secure-en-decrypt-4 (skip-unless (test-conf)) ;; Send from sub@example.org, which has two keys; encrypt to both. (let ((mml-secure-openpgp-encrypt-to-self =2D '("C3999CF1268DBEA2" "F7E79AB7AE31D471")) + '("2FAF8726121EB3C6" "8E7FEE76BB1FB195")) (mml-secure-smime-encrypt-to-self '("EF25402B479DC6E2" "4035D59B5F88E9FC"))) (dolist (method (enc-standards) nil) (mml-secure-test-en-decrypt method "no-exp@example.org" "sub@example.org" nil t =2D (list (cons "C3999CF1268DBEA2" "EF25402B479DC6E2") =2D (cons "F7E79AB7AE31D471" "4035D59B5F88E9FC")))))) + (list (cons "2FAF8726121EB3C6" "EF25402B479DC6E2") + (cons "8E7FEE76BB1FB195" "4035D59B5F88E9FC")))))) =20 (ert-deftest mml-secure-en-decrypt-sign-1-1-single () "Sign and encrypt message; then decrypt and test for expected result. @@ -672,7 +672,7 @@ mml-secure-en-decrypt-sign-1-2-double (mml-secure-smime-sign-with-sender t)) ;; Now use both keys to sign. The customized one via sign-with-sen= der, ;; the other one via the following setting. =2D (let ((mml-secure-openpgp-signers '("F7E79AB7AE31D471")) + (let ((mml-secure-openpgp-signers '("8E7FEE76BB1FB195")) (mml-secure-smime-signers '("0x5F88E9FC"))) (dolist (method (enc-sign-standards) nil) (mml-secure-test-en-decrypt @@ -690,7 +690,7 @@ mml-secure-en-decrypt-sign-1-3-double (let ((mml-secure-openpgp-sign-with-sender nil) (mml-secure-smime-sign-with-sender nil) (mml-secure-openpgp-signers =2D '("F7E79AB7AE31D471" "C3999CF1268DBEA2")) + '("8E7FEE76BB1FB195" "2FAF8726121EB3C6")) (mml-secure-smime-signers '("0x5F88E9FC" "0x479DC6E2"))) (dolist (method (enc-sign-standards) nil) (mml-secure-test-en-decrypt @@ -709,7 +709,7 @@ mml-secure-en-decrypt-sign-2 (scontext (epg-make-context 'CMS)) (mml-secure-openpgp-sign-with-sender t) (mml-secure-smime-sign-with-sender t)) =2D (dolist (key '("F7E79AB7AE31D471" "C3999CF1268DBEA2") nil) + (dolist (key '("8E7FEE76BB1FB195" "2FAF8726121EB3C6") nil) (mml-secure-cust-record-keys pcontext 'encrypt "sub@example.org" (epg-list-keys pcontext key)) (mml-secure-cust-record-keys @@ -745,8 +745,8 @@ mml-secure-en-decrypt-sign-3 (dolist (method (enc-sign-standards) nil) (mml-secure-test-en-decrypt method "sub@example.org" "no-exp@example.org" 1 t =2D (list (cons "C3999CF1268DBEA2" "EF25402B479DC6E2") =2D (cons "02372A42CA6D40FB" "ED7A2135E1582177")))) + (list (cons "2FAF8726121EB3C6" "EF25402B479DC6E2") + (cons "A049C1E9179C086B" "ED7A2135E1582177")))) )))) =20 (ert-deftest mml-secure-sign-verify-1 () @@ -765,7 +765,7 @@ mml-secure-sign-verify-1 =20 ;; From sub@example.org, sign with two keys; ;; sign-with-sender and one from signers-variable: =2D (let ((mml-secure-openpgp-signers '("02372A42CA6D40FB")) + (let ((mml-secure-openpgp-signers '("A049C1E9179C086B")) (mml-secure-smime-signers '("D06AA118653CC38E9D0CAF56ED7A2135E1582177"))) (mml-secure-test-en-decrypt @@ -781,7 +781,7 @@ mml-secure-sign-verify-3 (lambda () (let ((with-smime nil) (mml-secure-openpgp-sign-with-sender nil) =2D (mml-secure-openpgp-signers '("501FFD98"))) + (mml-secure-openpgp-signers '("2DD796DBDAC43424"))) (dolist (method (sign-standards) nil) (mml-secure-test-en-decrypt method "no-exp@example.org" "sign@example.org" 1 nil) =2D-=20 2.30.2 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQFLBAEBCgA1FiEEJWpOVeSnLZetJGjniNx+MzhfeR0FAmM9YeoXHGp1c3R1c0Bz ZXF1b2lhLXBncC5vcmcACgkQiNx+MzhfeR00VQf+LFvlpxL6kJZjUnHYqLkmePsL WwbCPLI/f+ZAq60/qoNILcpGoM3OR8NNvM4HHPdzKep7s4XXiaV4zasvxZwmOW0T iZvz4RTWdV4esm/9W9CodyqtJb8RZcQUO++Pi3FiJwZ49tLPg5xyuktMmBFTnsZc /XSN82asEVWlyWFZkuwDc5vkjCnbXRROrWDUJ/Yaev/r5tgiIe4GDxuReH+zDpJU uRw90sZZe0KiFmr79IOw5JFfk2SoKXBC71cahXjtrW2HPidjViBjEvWZlkLGwog9 caKOwXVbr2xsp+F0wKXLdJnd6HJ29zu/KmbZQyK/AjZiHk/4gqIix8pKo4bXSQ== =6e8/ -----END PGP SIGNATURE----- --==-=-=--