tony2001 Fri Sep 8 20:10:47 2006 UTC Modified files: (Branch: PHP_5_2) /php-src NEWS /php-src/ext/openssl openssl.c Log: implement feature request #38731 (openssl_pkey_new does not support DSA key generation) patch by marci at balabit dot hu http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.238&r2=1.2027.2.547.2.239&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.238 php-src/NEWS:1.2027.2.547.2.239 --- php-src/NEWS:1.2027.2.547.2.238 Wed Sep 6 17:25:57 2006 +++ php-src/NEWS Fri Sep 8 20:10:46 2006 @@ -1,6 +1,8 @@ 'PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? Sep 2006, PHP 5.2.0RC4 +- Added DSA key generation support to openssl_pkey_new(), FR #38731 + (marci at balabit dot hu, Tony) - Removed current working directory from the php.ini search path for CLI and readded it for other SAPIs (restore to pre 5.1.x behaviour). (Edin) - Fixed bug #38700 (SoapClient::__getTypes never returns). (Dmitry) http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/openssl.c?r1=1.98.2.5.2.18&r2=1.98.2.5.2.19&diff_format=u Index: php-src/ext/openssl/openssl.c diff -u php-src/ext/openssl/openssl.c:1.98.2.5.2.18 php-src/ext/openssl/openssl.c:1.98.2.5.2.19 --- php-src/ext/openssl/openssl.c:1.98.2.5.2.18 Thu Sep 7 14:11:05 2006 +++ php-src/ext/openssl/openssl.c Fri Sep 8 20:10:47 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: openssl.c,v 1.98.2.5.2.18 2006/09/07 14:11:05 iliaa Exp $ */ +/* $Id: openssl.c,v 1.98.2.5.2.19 2006/09/08 20:10:47 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -2051,9 +2051,27 @@ if ((req->priv_key = EVP_PKEY_new()) != NULL) { switch(req->priv_key_type) { case OPENSSL_KEYTYPE_RSA: - if (EVP_PKEY_assign_RSA(req->priv_key, RSA_generate_key(req->priv_key_bits, 0x10001, NULL, NULL))) + if (EVP_PKEY_assign_RSA(req->priv_key, RSA_generate_key(req->priv_key_bits, 0x10001, NULL, NULL))) { return_val = req->priv_key; + } + break; +#ifndef NO_DSA + case OPENSSL_KEYTYPE_DSA: + { + DSA *dsapar = DSA_generate_parameters(req->priv_key_bits, NULL, 0, NULL, NULL, NULL, NULL); + if (dsapar) { + DSA_set_method(dsapar, DSA_get_default_method()); + if (DSA_generate_key(dsapar)) { + if (EVP_PKEY_assign_DSA(req->priv_key, dsapar)) { + return_val = req->priv_key; + } + } else { + DSA_free(dsapar); + } + } + } break; +#endif default: php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unsupported private key type"); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php