]> granicus.if.org Git - php/commitdiff
Add openssl_get_cert_locations() function
authorDaniel Lowrey <rdlowrey@php.net>
Tue, 11 Feb 2014 12:57:15 +0000 (05:57 -0700)
committerDaniel Lowrey <rdlowrey@php.net>
Fri, 21 Feb 2014 00:10:06 +0000 (17:10 -0700)
ext/openssl/openssl.c
ext/openssl/php_openssl.h

index 82ac3dfff55a9454a4b61aa9331d864cb16adf8d..8d8871b9ff5e745d06d730f9cc4ca1e79c78a8a9 100755 (executable)
@@ -433,11 +433,16 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_INFO(arginfo_openssl_spki_export_challenge, 0)
     ZEND_ARG_INFO(0, spki)
 ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO(arginfo_openssl_get_cert_locations, 0)
+ZEND_END_ARG_INFO()
 /* }}} */
 
 /* {{{ openssl_functions[]
  */
 const zend_function_entry openssl_functions[] = {
+       PHP_FE(openssl_get_cert_locations, arginfo_openssl_get_cert_locations)
+
 /* spki functions */
        PHP_FE(openssl_spki_new, arginfo_openssl_spki_new)
        PHP_FE(openssl_spki_verify, arginfo_openssl_spki_verify)
@@ -1280,6 +1285,26 @@ PHP_MSHUTDOWN_FUNCTION(openssl)
 
 /* {{{ x509 cert functions */
 
+/* {{{ proto array openssl_get_cert_locations(void)
+   Retrieve an array mapping available certificate locations */
+PHP_FUNCTION(openssl_get_cert_locations)
+{
+       array_init(return_value);
+
+       add_assoc_string(return_value, "default_cert_file", (char *) X509_get_default_cert_file(), 1);
+       add_assoc_string(return_value, "default_cert_file_env", (char *) X509_get_default_cert_file_env(), 1);
+       add_assoc_string(return_value, "default_cert_dir", (char *) X509_get_default_cert_dir(), 1);
+       add_assoc_string(return_value, "default_cert_dir_env", (char *) X509_get_default_cert_dir_env(), 1);
+       add_assoc_string(return_value, "default_private_dir", (char *) X509_get_default_private_dir(), 1);
+       add_assoc_string(return_value, "default_default_cert_area", (char *) X509_get_default_cert_area(), 1);
+       add_assoc_string(return_value, "ini_cafile",
+               zend_ini_string("openssl.cafile", sizeof("openssl.cafile"), 0), 1);
+       add_assoc_string(return_value, "ini_capath",
+               zend_ini_string("openssl.capath", sizeof("openssl.capath"), 0), 1);
+}
+/* }}} */
+
+
 /* {{{ php_openssl_x509_from_zval
        Given a zval, coerce it into an X509 object.
        The zval can be:
index 01e976f1f414b6fef6babc0a8d4cfb74c25f502e..cab787afedd165560928e2a293d5439840ab18bd 100644 (file)
@@ -85,6 +85,8 @@ PHP_FUNCTION(openssl_spki_new);
 PHP_FUNCTION(openssl_spki_verify);
 PHP_FUNCTION(openssl_spki_export);
 PHP_FUNCTION(openssl_spki_export_challenge);
+
+PHP_FUNCTION(openssl_get_cert_locations);
 #else
 
 #define phpext_openssl_ptr NULL