Skip to content

Commit 37bf2db

Browse files
authored
trust: check private key matches provided certificate data (#8729)
1 parent 0a28df2 commit 37bf2db

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/opnsense/mvc/app/controllers/OPNsense/Trust/Api/CertController.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,12 @@ protected function setBaseHook($node)
105105
$error = gettext('Invalid X509 certificate provided');
106106
} else {
107107
$node->crt = base64_encode((string)$node->crt_payload);
108-
if (
109-
!empty(trim((string)$node->prv_payload)) &&
110-
openssl_pkey_get_private((string)$node->prv_payload) === false
111-
) {
112-
$error = gettext('Invalid private key provided');
108+
if (!empty(trim((string)$node->prv_payload))) {
109+
if (openssl_pkey_get_private((string)$node->prv_payload) === false) {
110+
$error = gettext('Invalid private key provided: cannot parse private key data');
111+
} elseif (openssl_x509_check_private_key((string)$node->crt_payload,(string)$node->prv_payload) === false) {
112+
$error = gettext('Invalid private key provided: private key does not match certificate data');
113+
}
113114
}
114115
}
115116
$this->getModel()->linkCaRefs($node->refid);

0 commit comments

Comments
 (0)