xref: /PHP-7.3/ext/openssl/tests/bug73478.phpt (revision 3c42f64e)
1--TEST--
2Bug #73478: openssl_pkey_new() generates wrong pub/priv keys with Diffie Hellman
3--SKIPIF--
4<?php if (!extension_loaded("openssl")) die("skip openssl not loaded"); ?>
5--FILE--
6<?php
7$details = [
8    'p' => base64_decode('3Pk6C4g5cuwOGZiaxaLOMQ4dN3F+jZVxu3Yjcxhm5h73Wi4niYsFf5iRwuJ6Y5w/KbYIFFgc07LKOYbSaDcFV31FwuflLcgcehcYduXOp0sUSL/frxiCjv0lGfFOReOCZjSvGUnltTXMgppIO4p2Ij5dSQolfwW9/xby+yLFg6s='),
9    'g' => base64_decode('Ag=='),
10    'priv_key' => base64_decode('jUdcV++P/m7oUodWiqKqKXZVenHRuj92Ig6Fmzs7QlqVdUc5mNBxmEWjug+ObffanPpOeab/LyXwjNMzevtBz3tW4oROau++9EIMJVVQr8fW9zdYBJcYieC5l4t8nRj5/Uu/Z0G2rWVLBleSi28mqqNEvnUs7uxYxrar69lwQYs=')
11];
12
13$opensslKeyResource = openssl_pkey_new(['dh' => $details]);
14$data = openssl_pkey_get_details($opensslKeyResource);
15
16printf("Private key:\n%s\n", base64_encode($data['dh']['priv_key']));
17printf("Public key:\n%s\n", base64_encode($data['dh']['pub_key']));
18?>
19--EXPECT--
20Private key:
21jUdcV++P/m7oUodWiqKqKXZVenHRuj92Ig6Fmzs7QlqVdUc5mNBxmEWjug+ObffanPpOeab/LyXwjNMzevtBz3tW4oROau++9EIMJVVQr8fW9zdYBJcYieC5l4t8nRj5/Uu/Z0G2rWVLBleSi28mqqNEvnUs7uxYxrar69lwQYs=
22Public key:
230DmJUe9dr02pAtVoGyLHdC+rfBU3mDCelKGPXRDFHofx6mFfN2gcZCmp/ab4ezDXfpIBOatpVdbn2fTNUGo64DtKE2WGTsZCl90RgrGUv8XW/4WDPXeE7g5u7KWHBG/LCE5+XsilE5P5/GIyqr9gsiudTmk+H/hiYZl9Smar9k0=
24