Index | Thread | Search

From:
Fedor <fedorgorlenko@gmail.com>
Subject:
[BUG-FIX] nextcloud-35
To:
ports@openbsd.org
Date:
Thu, 1 Oct 2026 18:21:12 +0300

Download raw body.

Thread
I've improved my last patch. Now it can work on versions 34 and 35. I 
also fixed an issue that could prevent me from communicating with a 
server that doesn't have this patch. But I'm not sure if it's gone. I 
don't have any linux devices on which I can run nextcloud for 
experiments. But in any case, it allows nextcloud to work with other 
instances that have this patch. It's better than it being completely 
inoperable

--- lib/public/Security/Signature/Enum/SignatureAlgorithm.php  Thu Sep 
24 16:42:24 2026
+++ 
/var/www/nextcloud/lib/public/Security/Signature/Enum/SignatureAlgorithm.php 
       Thu Oct  1 16:58:52 2026
@@ -22,4 +22,11 @@
         case RSA_SHA256 = 'rsa-sha256';
         /** @since 33.0.0 */
         case RSA_SHA512 = 'rsa-sha512';
+
+        public function toInt(): int {
+                return match($this) {
+                        self::RSA_SHA256 => OPENSSL_ALGO_SHA256,
+                        self::RSA_SHA512 => OPENSSL_ALGO_SHA512,
+                };
+        }
  }

--- a/lib/private/Security/Signature/Model/IncomingSignedRequest.php     
Thu Sep 24 16:42:24 2026
+++ b/lib/private/Security/Signature/Model/IncomingSignedRequest.php 
  Thu Oct  1 17:06:08 2026
@@ -255,7 +255,7 @@
                         implode("\n", $this->getSignatureData()),
                         base64_decode($this->getSignature()),
                         $publicKey,
-                       $algorithm->value
+                       $algorithm->toInt()
                 ) !== 1) {
                         throw new InvalidSignatureException('signature 
issue');
                 }

--- lib/private/Security/Signature/Model/OutgoingSignedRequest.php   Thu 
Sep 24 16:42:24 2026
+++ 
/var/www/nextcloud/lib/private/Security/Signature/Model/OutgoingSignedRequest.php 
  Thu Oct  1 17:01:17 2026
@@ -188,7 +188,7 @@
                         implode("\n", $this->getSignatureData()),
                         $signed,
                         $privateKey,
-                       $this->getAlgorithm()->value
+                       $this->getAlgorithm()->toInt()
                 );

                 $this->setSignature(base64_encode($signed));