From f72e066e4d57558e972379cc61dd6d35625f4834 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Mon, 6 Jan 2025 09:44:57 +0100 Subject: [PATCH] Trust: add serialNumber and issuer in Store::parseX509(), requested in https://github.com/opnsense/core/issues/8141#issuecomment-2571771937 Since we map subjects, we should do the same when adding an issuer if it exists. serialNumber is just a plain simple field. --- src/opnsense/mvc/app/library/OPNsense/Trust/Store.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/opnsense/mvc/app/library/OPNsense/Trust/Store.php b/src/opnsense/mvc/app/library/OPNsense/Trust/Store.php index a4fbca93e..66910a83e 100644 --- a/src/opnsense/mvc/app/library/OPNsense/Trust/Store.php +++ b/src/opnsense/mvc/app/library/OPNsense/Trust/Store.php @@ -418,11 +418,19 @@ class Store // valid from/to and name of this cert $result['valid_from'] = $crt['validFrom_time_t']; $result['valid_to'] = $crt['validTo_time_t']; - $result['name'] = $crt['name']; + foreach (['name', 'serialNumber'] as $cpy) { + $result[$cpy] = $crt[$cpy] ?? null; + } foreach (self::$issuer_map as $key => $target) { if (!empty($crt['subject'][$key])) { $result[$target] = $crt['subject'][$key]; } + if (!empty($crt['issuer']) && !empty($crt['issuer'][$key])) { + if (empty($result['issuer'])) { + $result['issuer'] = []; + } + $result['issuer'][$target] = $crt['issuer'][$key]; + } } // OCSP URI if (!empty($crt['extensions']) && !empty($crt['extensions']['authorityInfoAccess'])) {