From c81f540a93843dc84f2903604d3a86fb204dbcb7 Mon Sep 17 00:00:00 2001 From: Andreas Kremsler Date: Tue, 5 Aug 2025 14:24:46 +0200 Subject: [PATCH 1/2] also trim / cleanup PEM pubcert --- lib/SecurityUtility.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/SecurityUtility.php b/lib/SecurityUtility.php index f6ca618..2090d06 100644 --- a/lib/SecurityUtility.php +++ b/lib/SecurityUtility.php @@ -18,13 +18,7 @@ public function generateSecurityToken($xmlDom, $certificateFilePath, $keyPass, & // for PKCS12 files openssl_pkcs12_read($certificate, $certs, $keyPass); $privateKeyId = openssl_pkey_get_private($certs['pkey']); - $pubcert = explode("\n", $certs['cert']); - array_shift($pubcert); - - while (!trim(array_pop($pubcert))) { /* Empty whlie loop */ } - - array_walk($pubcert, 'trim'); - $pubcert = implode('', $pubcert); + $pubcert = $certs['cert']; unset($certs); } else @@ -35,6 +29,16 @@ public function generateSecurityToken($xmlDom, $certificateFilePath, $keyPass, & openssl_x509_export($tempcert, $pubcert); } + // trim + $pubcert = explode("\n", $pubcert); + array_shift($pubcert); + + while (!trim(array_pop($pubcert))) { /* Empty while loop */ } + + array_walk($pubcert, 'trim'); + $pubcert = implode('', $pubcert); + + // add public key reference to the token $tokenElement = $xmlDom->createElementNS(self::WSSE_NS, 'wsse:BinarySecurityToken', $pubcert); $tokenElement->setAttribute('ValueType', 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3'); From 46e719c8842b716e5efd798437c605d91bafb50c Mon Sep 17 00:00:00 2001 From: Andreas Kremsler Date: Tue, 16 Jun 2026 16:56:47 +0200 Subject: [PATCH 2/2] __doRequest --- lib/CybsClient.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/CybsClient.php b/lib/CybsClient.php index afb7400..9ab068e 100644 --- a/lib/CybsClient.php +++ b/lib/CybsClient.php @@ -86,8 +86,7 @@ public function getMerchantId() return $this->merchantId; } - #[\ReturnTypeWillChange] - function __doRequest($request, $location, $action, $version, $oneWay = false) + function __doRequest($request, $location, $action, $version, $oneWay = false, ?string $uriParserClass = null): ?string { // Load request and add security headers $requestDom = new DOMDocument('1.0', 'utf-8'); @@ -135,6 +134,6 @@ function __doRequest($request, $location, $action, $version, $oneWay = false) // Convert Document to String $request = $requestDom->saveXML(); - return parent::__doRequest($request, $location, $action, $version, $oneWay); + return parent::__doRequest($request, $location, $action, $version, $oneWay, $uriParserClass); } } \ No newline at end of file