Re: com php-src: Fix bug #55259 (openssl extension does not get the DH parameters from DH key resource): ext/openssl/openssl.c
ext/openssl/tests/bug55259.phpt
| From: | Jakub Zelenka | Date: | Tue, 14 Jun 2016 09:34:01 +0000 |
| Subject: | Re: com php-src: Fix bug #55259 (openssl extension does not get the DH parameters from DH key resource): ext/openssl/openssl.c ext/openssl/tests/bug55259.phpt |
||
| References: | 1 2 3 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-92381@lists.php.net to get a copy of this message | ||
Actually I can just stripped that test as the length is not important
anyway, just need to check non empty. Will do that this week.
Cheers
Jakub
On Tue, Jun 14, 2016 at 10:30 AM, Jakub Zelenka <bukka@php.net> wrote:
> Hi Matteo,
>
> I have got few ideas why it might have failed but will need to recreate it
> first. I will try to take a look but might need to prioritise some other
> things to get some extra features / bigger fixes to 7.1 before beta but
> then should have definitely time to take a look.
>
> Cheers
>
> Jakub
>
> On Tue, Jun 14, 2016 at 9:56 AM, Matteo Beccati <php@beccati.com> wrote:
>
>> Hi Jakub,
>>
>> I just wanted to report that sometimes this test is failing. Rarely
>> even, I would say, but I'm fairly sure it's not the first time I've seen
>> it fail:
>>
>>
>>
>> https://revive.beccati.com/bamboo/browse/PHP-SRC-TESTS-828/test/case/26350125
>>
>> Thoughts?
>>
>>
>> Cheers
>>
>> On 25/08/2015 21:26, Jakub Zelenka wrote:
>> > Commit: c39336d1d866866de629695fbd9971fb48f27ea9
>> > Author: Jakub Zelenka <bukka@php.net> Tue, 25 Aug 2015
>> 20:26:11 +0100
>> > Parents: e5adf2b427915ff070ddcba24d7c4ed3014743e9
>> > Branches: PHP-5.6
>> >
>> > Link:
>>
>> http://git.php.net/?p=php-src.git;a=commitdiff;h=c39336d1d866866de629695fbd9971fb48f27ea9±Å‘
>> ÂÀ8Â|´� K¼
>> >
>> > Log:
>> > Fix bug #55259 (openssl extension does not get the DH parameters from
>> DH key resource)
>> >
>> > Bugs:
>> > https://bugs.php.net/55259
>> >
>> > Changed paths:
>> > M ext/openssl/openssl.c
>> > A ext/openssl/tests/bug55259.phpt
>> >
>> >
>> > Diff:
>> > diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
>> > index ef51622..0421524 100644
>> > --- a/ext/openssl/openssl.c
>> > +++ b/ext/openssl/openssl.c
>> > @@ -3597,13 +3597,10 @@ PHP_FUNCTION(openssl_pkey_new)
>> >
>> OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, g);
>> >
>> OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, priv_key);
>> >
>> OPENSSL_PKEY_SET_BN(Z_ARRVAL_PP(data), dh, pub_key);
>> > - if (dh->p && dh->g) {
>> > - if (!dh->pub_key) {
>> > -
>> DH_generate_key(dh);
>> > - }
>> > - if
>> (EVP_PKEY_assign_DH(pkey, dh)) {
>> > -
>> RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC));
>> > - }
>> > + if (dh->p && dh->g &&
>> > + (dh->pub_key ||
>> DH_generate_key(dh)) &&
>> > +
>> EVP_PKEY_assign_DH(pkey, dh)) {
>> > +
>> RETURN_RESOURCE(zend_list_insert(pkey, le_key TSRMLS_CC));
>> > }
>> > DH_free(dh);
>> > }
>> > diff --git a/ext/openssl/tests/bug55259.phpt
>> b/ext/openssl/tests/bug55259.phpt
>> > new file mode 100644
>> > index 0000000..27ededd
>> > --- /dev/null
>> > +++ b/ext/openssl/tests/bug55259.phpt
>> > @@ -0,0 +1,29 @@
>> > +--TEST--
>> > +Bug #55259 (openssl extension does not get the DH parameters from DH
>> key resource)
>> > +--SKIPIF--
>> > +<?php if (!extension_loaded("openssl")) die("skip"); ?>
>> > +--FILE--
>> > +<?php
>> > +
>> > +$phex =
>> 'dcf93a0b883972ec0e19989ac5a2ce310e1d37717e8d9571bb7623731866e61e' .
>> > +
>> 'f75a2e27898b057f9891c2e27a639c3f29b60814581cd3b2ca3986d268370557' .
>> > +
>> '7d45c2e7e52dc81c7a171876e5cea74b1448bfdfaf18828efd2519f14e45e382' .
>> > +
>> '6634af1949e5b535cc829a483b8a76223e5d490a257f05bdff16f2fb22c583ab';
>> > +$dh_details = array( 'p' => $phex, 'g' => '2' );
>> > +$dh = openssl_pkey_new(array( 'dh'=> array( 'p' => $phex,
>> > 'g' => '2'
>> )));
>> > +var_dump($dh);
>> > +$dh = openssl_pkey_new(array( 'dh'=> array( 'p' =>
>> > hex2bin($phex), 'g'
>> => '2' )));
>> > +$details = openssl_pkey_get_details($dh);
>> > +var_dump(bin2hex($details['dh']['p']));
>> > +var_dump($details['dh']['g']);
>> > +var_dump(strlen($details['dh']['pub_key']));
>> > +var_dump(strlen($details['dh']['priv_key']));
>> > +echo "Done";
>> > +?>
>> > +--EXPECT--
>> > +bool(false)
>> > +string(256)
>>
>> "dcf93a0b883972ec0e19989ac5a2ce310e1d37717e8d9571bb7623731866e61ef75a2e27898b057f9891c2e27a639c3f29b60814581cd3b2ca3986d2683705577d45c2e7e52dc81c7a171876e5cea74b1448bfdfaf18828efd2519f14e45e3826634af1949e5b535cc829a483b8a76223e5d490a257f05bdff16f2fb22c583ab"
>> > +string(1) "2"
>> > +int(128)
>> > +int(128)
>> > +Done
>> >
>> >
>>
>>
>> --
>> Matteo Beccati
>>
>> Development & Consulting - http://www.beccati.com/
>>
>
>