1--TEST--
2openssl_csr_new() tests
3--SKIPIF--
4<?php if (!extension_loaded("openssl")) print "skip"; ?>
5--FILE--
6<?php
7
8$a = array();
9
10$conf = array('config' => __DIR__ . DIRECTORY_SEPARATOR . 'openssl.cnf');
11
12try {
13    var_dump(openssl_csr_new(array(), $a, $conf, array()));
14    var_dump($keyFailed);
15} catch (\ValueError $e) {
16    echo $e->getMessage() . \PHP_EOL;
17}
18
19// this leaks
20$a = array(1,2);
21$b = array(1,2);
22var_dump(openssl_csr_new($a, $b, $conf));
23
24// options type check
25$x = openssl_pkey_new($conf);
26var_dump(openssl_csr_new(["countryName" => "DE"], $x, $conf + ["x509_extensions" => 0xDEADBEEF]));
27
28?>
29--EXPECTF--
30Warning: openssl_csr_new(): add1_attr_by_txt challengePassword_min -> 4 (failed; check error queue and value of string_mask OpenSSL option if illegal characters are reported) in %s on line %d
31Key array must be of the form array(0 => key, 1 => phrase)
32object(OpenSSLCertificateSigningRequest)#%d (0) {
33}
34object(OpenSSLCertificateSigningRequest)#%d (0) {
35}
36