Skip to content

Commit b0de347

Browse files
authored
Merge pull request #104 from OpenConext/feature/secure-verify-signature-use
Secure the way the verifySignature method is used
2 parents 41b0f0a + e91521c commit b0de347

3 files changed

Lines changed: 12 additions & 11 deletions

File tree

src/Entity/HostedEntities.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ private function generateUrl($routeDefinition)
142142

143143
$context = $this->router->getContext();
144144

145-
$context->fromRequest($this->requestStack->getMasterRequest());
145+
$context->fromRequest($this->requestStack->getMainRequest());
146146

147147
$url = $this->router->generate($route, $parameters, RouterInterface::ABSOLUTE_URL);
148148

src/Http/ReceivedAuthnRequestQueryString.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -288,9 +288,10 @@ public function getSignedRequestPayload()
288288
*/
289289
public function verify(XMLSecurityKey $key)
290290
{
291-
if ($key->verifySignature($this->getSignedRequestPayload(), $this->getDecodedSignature())) {
292-
return true;
291+
$isVerified = $key->verifySignature($this->getSignedRequestPayload(), $this->getDecodedSignature());
292+
if ($isVerified !== 1) {
293+
return false;
293294
}
294-
return false;
295+
return true;
295296
}
296297
}

src/Signing/SignatureVerifier.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
use Psr\Log\LoggerInterface;
2222
use RobRichards\XMLSecLibs\XMLSecurityKey;
2323
use SAML2\Certificate\Key;
24-
use SAML2\Certificate\KeyLoader as KeyLoader;
24+
use SAML2\Certificate\KeyLoader;
2525
use SAML2\Certificate\X509;
2626
use Surfnet\SamlBundle\Entity\ServiceProvider;
2727
use Surfnet\SamlBundle\Http\ReceivedAuthnRequestQueryString;
@@ -151,13 +151,13 @@ public function isSignedWith(AuthnRequest $request, X509 $publicKey)
151151
$key = new XMLSecurityKey(XMLSecurityKey::RSA_SHA256, array('type' => 'public'));
152152
$key->loadKey($publicKey->getCertificate());
153153

154-
if ($key->verifySignature($request->getSignedRequestQuery(), $request->getSignature())) {
155-
$this->logger->debug('Signature VERIFIED');
156-
return true;
154+
$isVerified = $key->verifySignature($request->getSignedRequestQuery(), $request->getSignature());
155+
if ($isVerified !== 1) {
156+
$this->logger->debug('Signature NOT VERIFIED');
157+
return false;
157158
}
158159

159-
$this->logger->debug('Signature NOT VERIFIED');
160-
161-
return false;
160+
$this->logger->debug('Signature VERIFIED');
161+
return true;
162162
}
163163
}

0 commit comments

Comments
 (0)