summaryrefslogtreecommitdiffstats
path: root/src/etc/inc/certs.inc
diff options
context:
space:
mode:
Diffstat (limited to 'src/etc/inc/certs.inc')
-rw-r--r--src/etc/inc/certs.inc76
1 files changed, 59 insertions, 17 deletions
diff --git a/src/etc/inc/certs.inc b/src/etc/inc/certs.inc
index 6d260e6..d49f478 100644
--- a/src/etc/inc/certs.inc
+++ b/src/etc/inc/certs.inc
@@ -1,9 +1,10 @@
<?php
/*
certs.inc
- Copyright (C) 2008 Shrew Soft Inc
- Copyright (C) 2010 Jim Pingle <jimp@pfsense.org>
- All rights reserved.
+
+ part of pfSense (https://www.pfsense.org)
+ Copyright (c) 2008-2016 Electric Sheep Fencing, LLC. All rights reserved.
+ Copyright (c) 2008 Shrew Soft Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -12,19 +13,42 @@
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ 3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgment:
+ "This product includes software developed by the pfSense Project
+ for use in the pfSense® software distribution. (http://www.pfsense.org/).
+
+ 4. The names "pfSense" and "pfSense Project" must not be used to
+ endorse or promote products derived from this software without
+ prior written permission. For written permission, please contact
+ coreteam@pfsense.org.
+
+ 5. Products derived from this software may not be called "pfSense"
+ nor may "pfSense" appear in their names without prior written
+ permission of the Electric Sheep Fencing, LLC.
+
+ 6. Redistributions of any form whatsoever must retain the following
+ acknowledgment:
+
+ "This product includes software developed by the pfSense Project
+ for use in the pfSense software distribution (http://www.pfsense.org/).
+
+ THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY
+ EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE pfSense PROJECT OR
+ ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
*/
define("OPEN_SSL_CONF_PATH", "/etc/ssl/openssl.cnf");
@@ -668,6 +692,22 @@ function is_webgui_cert($certref) {
}
}
+function is_package_cert($certref) {
+ $pluginparams = array();
+ $pluginparams['type'] = 'certificates';
+ $pluginparams['event'] = 'used_certificates';
+
+ $certificates_used_by_packages = pkg_call_plugins('plugin_certificates', $pluginparams);
+
+ /* Check if any package is using certificate */
+ foreach ($certificates_used_by_packages as $name => $package) {
+ if (is_array($package['certificatelist'][$certref]) &&
+ isset($package['certificatelist'][$certref]) > 0) {
+ return true;
+ }
+ }
+}
+
function is_captiveportal_cert($certref) {
global $config;
if (!is_array($config['captiveportal'])) {
@@ -682,12 +722,14 @@ function is_captiveportal_cert($certref) {
}
function cert_in_use($certref) {
+
return (is_webgui_cert($certref) ||
is_user_cert($certref) ||
is_openvpn_server_cert($certref) ||
is_openvpn_client_cert($certref) ||
is_ipsec_cert($certref) ||
- is_captiveportal_cert($certref));
+ is_captiveportal_cert($certref) ||
+ is_package_cert($certref));
}
function crl_create(& $crl, $caref, $name, $serial = 0, $lifetime = 9999) {
OpenPOWER on IntegriCloud