Edit report at https://bugs.php.net/bug.php?id=63992&edit=1

 ID:                 63992
 Updated by:         tony2...@php.net
 Reported by:        mikhail dot v dot gavrilov at gmail dot com
 Summary:            php not use default openSSH confing
-Status:             Open
+Status:             Assigned
 Type:               Bug
 Package:            OpenSSL related
 Operating System:   RHEL/Fedora
 PHP Version:        5.4.11RC1
-Assigned To:        
+Assigned To:        pajoye
 Block user comment: N
 Private report:     N



Previous Comments:
------------------------------------------------------------------------
[2013-01-15 14:51:34] mikhail dot v dot gavrilov at gmail dot com

Description:
------------
For using GOST encryption engine:
1. i compiled openSSH with GOST support
2. added the following lines in openssl.cnf

openssl_conf = openssl_def

[openssl_def]
engines = engine_section

[engine_section]
gost = gost_section

[gost_section]
engine_id = gost
default_algorithms = ALL
dynamic_path = /usr/lib/openssl/engines/libgost.so
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet

But when I use curl PHP still get error: 'Cannot communicate securely with 
peer: 
no common encryption algorithm(s).'

Than I search I find this solution: 
http://stackoverflow.com/questions/10959771/openssl-and-gost-engine-issue-
statically-linked

So I create patch 

*** 111/openssl.c       2012-12-19 12:55:19.000000000 +0600                     
                                                                              
--- openssl.c   2013-01-15 18:43:22.000000000 +0600                             
                                                                              
***************                                                                 
                                                                              
*** 1038,1043 ****                                                              
                                                                              
--- 1038,1046 ----                                                              
                                                                              
        le_x509 = zend_register_list_destructors_ex(php_x509_free, NULL, 
"OpenSSL X.509", module_number);                                                
     
        le_csr = zend_register_list_destructors_ex(php_csr_free, NULL, "OpenSSL 
X.509 CSR", module_number);                                                   
                                                                                
                                                                              
+       /* needed for use default config */                                     
                                                                              
+       OPENSSL_config(NULL);                                                   
                                                                              
+                                                                               
                                                                              
        SSL_library_init();                                                     
                                                                              
        OpenSSL_add_all_ciphers();                                              
                                                                              
        OpenSSL_add_all_digests();  

and my script became work.

Test script:
---------------
$address="https://icrs.nbki.ru/products/B2BRequestServlet";;
// $proxy = '10.10.4.24:3128';
$xml = '';

$ch = curl_init($address);
$page = "Xml.php";
$headers = array(
        "POST ".$page." HTTP/1.0",
        "content-type:application/octet-stream;charset=\"windows-1251\"",
);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
if(isset($proxy)) curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch);if ($response === false) throw new 
Exception(curl_error($ch));
curl_close($ch);



------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=63992&edit=1

Reply via email to