From 97b65465e2045effcd4830f08dabc8e65b67a207 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 26 Feb 2024 22:34:15 +0100 Subject: [PATCH] S/MIME import from signature use `BEGIN PKCS7` --- .../0.0.0/app/libraries/RainLoop/Actions/SMime.php | 4 ++-- .../app/libraries/snappymail/smime/openssl.php | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/SMime.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/SMime.php index 96263411b..6b6638f19 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/SMime.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/SMime.php @@ -142,7 +142,7 @@ trait SMime $sBody = \trim($sBody); $certificates = []; \openssl_pkcs7_read( - "-----BEGIN CERTIFICATE-----\n\n{$sBody}\n-----END CERTIFICATE-----", + "-----BEGIN PKCS7-----\n\n{$sBody}\n-----END PKCS7-----", $certificates ) || \error_log("OpenSSL openssl_pkcs7_read: " . \openssl_error_string()); foreach ($certificates as $certificate) { @@ -179,7 +179,7 @@ trait SMime $sBody = \trim($sBody); $certificates = []; \openssl_pkcs7_read( - "-----BEGIN CERTIFICATE-----\n\n{$sBody}\n-----END CERTIFICATE-----", + "-----BEGIN PKCS7-----\n\n{$sBody}\n-----END PKCS7-----", $certificates ); diff --git a/snappymail/v/0.0.0/app/libraries/snappymail/smime/openssl.php b/snappymail/v/0.0.0/app/libraries/snappymail/smime/openssl.php index 776aed98e..4bbd3617c 100644 --- a/snappymail/v/0.0.0/app/libraries/snappymail/smime/openssl.php +++ b/snappymail/v/0.0.0/app/libraries/snappymail/smime/openssl.php @@ -142,6 +142,19 @@ class OpenSSL } } +/* + public function asn1parse(/*string|Temporary* / $input) : ?string + { + if (\is_string($input)) { + $tmp = new Temporary('smimein-'); + if (!$tmp->putContents($input)) { + return null; + } + $input = $tmp; + } + `openssl asn1parse -in $input->filename()` + } +*/ public function decrypt(/*string|Temporary*/ $input) : ?string { if (\is_string($input)) {