]> granicus.if.org Git - php/commitdiff
- Fixed test ext/openssl/tests/004.phpt.
authorGustavo André dos Santos Lopes <cataphract@php.net>
Wed, 14 Sep 2011 09:56:59 +0000 (09:56 +0000)
committerGustavo André dos Santos Lopes <cataphract@php.net>
Wed, 14 Sep 2011 09:56:59 +0000 (09:56 +0000)
- Made ext/openssl/tests/bug55646.phpt more reproducible by giving it a custom
  openssl.cnf.

ext/openssl/tests/004.phpt
ext/openssl/tests/bug55646.phpt
ext/openssl/tests/openssl.cnf [new file with mode: 0644]

index b9c41590cf3ff1e5370d9d760764db43daa7edc9..c6c7e874cf64a41173244d136954cea83435d315 100644 (file)
@@ -28,7 +28,7 @@ NULL
 
 Warning: openssl_csr_new(): key array must be of the form array(0 => key, 1 => phrase) in %s on line %d
 
-Warning: openssl_csr_new(): add1_attr_by_txt challengePassword_min -> 4 (failed) in %s on line %d
+Warning: 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
 bool(false)
 resource(%d) of type (OpenSSL X.509 CSR)
 Done
index b7118fc04d27e19a2a6c131bd9aa870f15d21269..c11284d72d9570975242d2b0beb23cd4d07117e7 100644 (file)
@@ -17,7 +17,13 @@ $csr_info = array(
   "organizationalUnitName" => "IT \xe4\xba\x92",
   "commonName" => "www.example.com",);
 $private = openssl_pkey_new($config);
-$csr_res = openssl_csr_new($csr_info, $private);
+while (openssl_error_string()) {}
+$csr_res = openssl_csr_new($csr_info, $private,
+       ['config' => __DIR__."/openssl.cnf"]);
+if (!$csr_res) {
+       while ($e = openssl_error_string()) { $err = $e; }
+       die("Failed; last error: $err");
+}
 openssl_csr_export($csr_res, $csr);
 $output = openssl_csr_get_subject($csr);
 
diff --git a/ext/openssl/tests/openssl.cnf b/ext/openssl/tests/openssl.cnf
new file mode 100644 (file)
index 0000000..20bc1ee
--- /dev/null
@@ -0,0 +1,40 @@
+[ req ]
+default_bits           = 1024
+default_keyfile        = privkey.pem
+distinguished_name     = req_distinguished_name
+attributes             = req_attributes
+x509_extensions        = v3_ca # The extentions to add to the self signed cert
+string_mask = MASK:4294967295
+
+
+[ req_distinguished_name ]
+countryName                    = Country Name (2 letter code)
+countryName_default            = AU
+countryName_min                        = 2
+countryName_max                        = 2
+stateOrProvinceName            = State or Province Name (full name)
+stateOrProvinceName_default    = Some-State
+localityName                   = Locality Name (eg, city)
+0.organizationName             = Organization Name (eg, company)
+0.organizationName_default     = Internet Widgits Pty Ltd
+organizationalUnitName         = Organizational Unit Name (eg, section)
+commonName                     = Common Name (eg, YOUR name)
+commonName_max                 = 64
+emailAddress                   = Email Address
+emailAddress_max               = 64
+
+[ req_attributes ]
+challengePassword              = A challenge password
+challengePassword_min          = 4
+challengePassword_max          = 20
+unstructuredName               = An optional company name
+
+[ v3_req ]
+basicConstraints = CA:FALSE
+keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+[ v3_ca ]
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid:always,issuer:always
+basicConstraints = CA:true
+