openssl_x509_parse_basic.phpt 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. --TEST--
  2. openssl_x509_parse() tests
  3. --SKIPIF--
  4. <?php if (!extension_loaded("openssl")) print "skip"; ?>
  5. --FILE--
  6. <?php
  7. $cert = "file://" . dirname(__FILE__) . "/cert.crt";
  8. $parsedCert = openssl_x509_parse($cert);
  9. var_dump($parsedCert === openssl_x509_parse(openssl_x509_read($cert)));
  10. var_dump($parsedCert);
  11. var_dump(openssl_x509_parse($cert, false));
  12. ?>
  13. --EXPECTF--
  14. bool(true)
  15. array(16) {
  16. ["name"]=>
  17. string(96) "/C=BR/ST=Rio Grande do Sul/L=Porto Alegre/CN=Henrique do N. Angelo/emailAddress=hnangelo@php.net"
  18. ["subject"]=>
  19. array(5) {
  20. ["C"]=>
  21. string(2) "BR"
  22. ["ST"]=>
  23. string(17) "Rio Grande do Sul"
  24. ["L"]=>
  25. string(12) "Porto Alegre"
  26. ["CN"]=>
  27. string(21) "Henrique do N. Angelo"
  28. ["emailAddress"]=>
  29. string(16) "hnangelo@php.net"
  30. }
  31. ["hash"]=>
  32. string(8) "%s"
  33. ["issuer"]=>
  34. array(5) {
  35. ["C"]=>
  36. string(2) "BR"
  37. ["ST"]=>
  38. string(17) "Rio Grande do Sul"
  39. ["L"]=>
  40. string(12) "Porto Alegre"
  41. ["CN"]=>
  42. string(21) "Henrique do N. Angelo"
  43. ["emailAddress"]=>
  44. string(16) "hnangelo@php.net"
  45. }
  46. ["version"]=>
  47. int(2)
  48. ["serialNumber"]=>
  49. string(20) "12593567369101004962"
  50. ["serialNumberHex"]=>
  51. string(16) "AEC556CC723750A2"
  52. ["validFrom"]=>
  53. string(13) "080630102843Z"
  54. ["validTo"]=>
  55. string(13) "080730102843Z"
  56. ["validFrom_time_t"]=>
  57. int(1214821723)
  58. ["validTo_time_t"]=>
  59. int(1217413723)
  60. ["signatureTypeSN"]=>
  61. string(8) "RSA-SHA1"
  62. ["signatureTypeLN"]=>
  63. string(21) "sha1WithRSAEncryption"
  64. ["signatureTypeNID"]=>
  65. int(65)
  66. ["purposes"]=>
  67. array(9) {
  68. [1]=>
  69. array(3) {
  70. [0]=>
  71. bool(true)
  72. [1]=>
  73. bool(true)
  74. [2]=>
  75. string(9) "sslclient"
  76. }
  77. [2]=>
  78. array(3) {
  79. [0]=>
  80. bool(true)
  81. [1]=>
  82. bool(true)
  83. [2]=>
  84. string(9) "sslserver"
  85. }
  86. [3]=>
  87. array(3) {
  88. [0]=>
  89. bool(true)
  90. [1]=>
  91. bool(true)
  92. [2]=>
  93. string(11) "nssslserver"
  94. }
  95. [4]=>
  96. array(3) {
  97. [0]=>
  98. bool(true)
  99. [1]=>
  100. bool(true)
  101. [2]=>
  102. string(9) "smimesign"
  103. }
  104. [5]=>
  105. array(3) {
  106. [0]=>
  107. bool(true)
  108. [1]=>
  109. bool(true)
  110. [2]=>
  111. string(12) "smimeencrypt"
  112. }
  113. [6]=>
  114. array(3) {
  115. [0]=>
  116. bool(true)
  117. [1]=>
  118. bool(true)
  119. [2]=>
  120. string(7) "crlsign"
  121. }
  122. [7]=>
  123. array(3) {
  124. [0]=>
  125. bool(true)
  126. [1]=>
  127. bool(true)
  128. [2]=>
  129. string(3) "any"
  130. }
  131. [8]=>
  132. array(3) {
  133. [0]=>
  134. bool(true)
  135. [1]=>
  136. bool(true)
  137. [2]=>
  138. string(10) "ocsphelper"
  139. }
  140. [9]=>
  141. array(3) {
  142. [0]=>
  143. bool(false)
  144. [1]=>
  145. bool(true)
  146. [2]=>
  147. string(13) "timestampsign"
  148. }
  149. }
  150. ["extensions"]=>
  151. array(3) {
  152. ["subjectKeyIdentifier"]=>
  153. string(59) "DB:7E:40:72:BD:5C:35:85:EC:29:29:81:12:E8:62:68:6A:B7:3F:7D"
  154. ["authorityKeyIdentifier"]=>
  155. string(202) "keyid:DB:7E:40:72:BD:5C:35:85:EC:29:29:81:12:E8:62:68:6A:B7:3F:7D
  156. DirName:/C=BR/ST=Rio Grande do Sul/L=Porto Alegre/CN=Henrique do N. Angelo/emailAddress=hnangelo@php.net
  157. serial:AE:C5:56:CC:72:37:50:A2
  158. "
  159. ["basicConstraints"]=>
  160. string(7) "CA:TRUE"
  161. }
  162. }
  163. array(16) {
  164. ["name"]=>
  165. string(96) "/C=BR/ST=Rio Grande do Sul/L=Porto Alegre/CN=Henrique do N. Angelo/emailAddress=hnangelo@php.net"
  166. ["subject"]=>
  167. array(5) {
  168. ["countryName"]=>
  169. string(2) "BR"
  170. ["stateOrProvinceName"]=>
  171. string(17) "Rio Grande do Sul"
  172. ["localityName"]=>
  173. string(12) "Porto Alegre"
  174. ["commonName"]=>
  175. string(21) "Henrique do N. Angelo"
  176. ["emailAddress"]=>
  177. string(16) "hnangelo@php.net"
  178. }
  179. ["hash"]=>
  180. string(8) "%s"
  181. ["issuer"]=>
  182. array(5) {
  183. ["countryName"]=>
  184. string(2) "BR"
  185. ["stateOrProvinceName"]=>
  186. string(17) "Rio Grande do Sul"
  187. ["localityName"]=>
  188. string(12) "Porto Alegre"
  189. ["commonName"]=>
  190. string(21) "Henrique do N. Angelo"
  191. ["emailAddress"]=>
  192. string(16) "hnangelo@php.net"
  193. }
  194. ["version"]=>
  195. int(2)
  196. ["serialNumber"]=>
  197. string(20) "12593567369101004962"
  198. ["serialNumberHex"]=>
  199. string(16) "AEC556CC723750A2"
  200. ["validFrom"]=>
  201. string(13) "080630102843Z"
  202. ["validTo"]=>
  203. string(13) "080730102843Z"
  204. ["validFrom_time_t"]=>
  205. int(1214821723)
  206. ["validTo_time_t"]=>
  207. int(1217413723)
  208. ["signatureTypeSN"]=>
  209. string(8) "RSA-SHA1"
  210. ["signatureTypeLN"]=>
  211. string(21) "sha1WithRSAEncryption"
  212. ["signatureTypeNID"]=>
  213. int(65)
  214. ["purposes"]=>
  215. array(9) {
  216. [1]=>
  217. array(3) {
  218. [0]=>
  219. bool(true)
  220. [1]=>
  221. bool(true)
  222. [2]=>
  223. string(10) "SSL client"
  224. }
  225. [2]=>
  226. array(3) {
  227. [0]=>
  228. bool(true)
  229. [1]=>
  230. bool(true)
  231. [2]=>
  232. string(10) "SSL server"
  233. }
  234. [3]=>
  235. array(3) {
  236. [0]=>
  237. bool(true)
  238. [1]=>
  239. bool(true)
  240. [2]=>
  241. string(19) "Netscape SSL server"
  242. }
  243. [4]=>
  244. array(3) {
  245. [0]=>
  246. bool(true)
  247. [1]=>
  248. bool(true)
  249. [2]=>
  250. string(14) "S/MIME signing"
  251. }
  252. [5]=>
  253. array(3) {
  254. [0]=>
  255. bool(true)
  256. [1]=>
  257. bool(true)
  258. [2]=>
  259. string(17) "S/MIME encryption"
  260. }
  261. [6]=>
  262. array(3) {
  263. [0]=>
  264. bool(true)
  265. [1]=>
  266. bool(true)
  267. [2]=>
  268. string(11) "CRL signing"
  269. }
  270. [7]=>
  271. array(3) {
  272. [0]=>
  273. bool(true)
  274. [1]=>
  275. bool(true)
  276. [2]=>
  277. string(11) "Any Purpose"
  278. }
  279. [8]=>
  280. array(3) {
  281. [0]=>
  282. bool(true)
  283. [1]=>
  284. bool(true)
  285. [2]=>
  286. string(11) "OCSP helper"
  287. }
  288. [9]=>
  289. array(3) {
  290. [0]=>
  291. bool(false)
  292. [1]=>
  293. bool(true)
  294. [2]=>
  295. string(18) "Time Stamp signing"
  296. }
  297. }
  298. ["extensions"]=>
  299. array(3) {
  300. ["subjectKeyIdentifier"]=>
  301. string(59) "DB:7E:40:72:BD:5C:35:85:EC:29:29:81:12:E8:62:68:6A:B7:3F:7D"
  302. ["authorityKeyIdentifier"]=>
  303. string(202) "keyid:DB:7E:40:72:BD:5C:35:85:EC:29:29:81:12:E8:62:68:6A:B7:3F:7D
  304. DirName:/C=BR/ST=Rio Grande do Sul/L=Porto Alegre/CN=Henrique do N. Angelo/emailAddress=hnangelo@php.net
  305. serial:AE:C5:56:CC:72:37:50:A2
  306. "
  307. ["basicConstraints"]=>
  308. string(7) "CA:TRUE"
  309. }
  310. }