Annotation of embedaddon/php/ext/phar/tests/zip/phar_setsignaturealgo2.phpt, revision 1.1.1.2
1.1 misho 1: --TEST--
2: Phar::setSupportedSignatures() with hash, zip-based
3: --SKIPIF--
4: <?php if (!extension_loaded("phar")) die("skip"); ?>
5: <?php if (!extension_loaded("hash")) die("skip extension hash required");
6: $arr = Phar::getSupportedSignatures();
7: if (!in_array("OpenSSL", $arr)) die("skip openssl support required");
8: if (!in_array('SHA-256', $arr)) die("skip hash extension loaded shared"); ?>
9: --INI--
10: phar.require_hash=0
11: phar.readonly=0
12: --FILE--
13: <?php
14: $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.zip';
15: $fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.2.phar.zip';
16: $fname3 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.3.phar.zip';
17: $fname4 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.4.phar.zip';
18: $fname5 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.5.phar.zip';
19: $fname6 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.6.phar.zip';
20: $p = new Phar($fname);
21: $p['file1.txt'] = 'hi';
22: var_dump($p->getSignature());
23: $p->setSignatureAlgorithm(Phar::MD5);
24:
25: copy($fname, $fname2);
26: $p = new Phar($fname2);
27: var_dump($p->getSignature());
28:
29: $p->setSignatureAlgorithm(Phar::SHA1);
30:
31: copy($fname2, $fname3);
32: $p = new Phar($fname3);
33: var_dump($p->getSignature());
34:
35: try {
36: $p->setSignatureAlgorithm(Phar::SHA256);
37: copy($fname3, $fname4);
38: $p = new Phar($fname4);
39: var_dump($p->getSignature());
40: } catch (Exception $e) {
41: echo $e->getMessage();
42: }
43: try {
44: $p->setSignatureAlgorithm(Phar::SHA512);
45: copy($fname4, $fname5);
46: $p = new Phar($fname5);
47: var_dump($p->getSignature());
48: } catch (Exception $e) {
49: echo $e->getMessage();
50: }
51: try {
1.1.1.2 ! misho 52: $config = dirname(__FILE__) . '/../files/openssl.cnf';
! 53: $config_arg = array('config' => $config);
! 54: $keys=openssl_pkey_new($config_arg);
! 55: openssl_pkey_export($keys, $privkey, NULL, $config_arg);
1.1 misho 56: $pubkey=openssl_pkey_get_details($keys);
57: $p->setSignatureAlgorithm(Phar::OPENSSL, $privkey);
58:
59: copy($fname5, $fname6);
60: file_put_contents($fname6 . '.pubkey', $pubkey['key']);
61: $p = new Phar($fname6);
62: var_dump($p->getSignature());
63: } catch (Exception $e) {
64: echo $e->getMessage();
65: }
66: ?>
67: ===DONE===
68: --CLEAN--
69: <?php
70: unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.zip');
71: unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.2.phar.zip');
72: unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.3.phar.zip');
73: unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.4.phar.zip');
74: unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.5.phar.zip');
75: unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.6.phar.zip');
76: unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.6.phar.zip.pubkey');
77: ?>
78: --EXPECTF--
79: array(2) {
80: ["hash"]=>
81: string(%d) "%s"
82: ["hash_type"]=>
83: string(5) "SHA-1"
84: }
85: array(2) {
86: ["hash"]=>
87: string(%d) "%s"
88: ["hash_type"]=>
89: string(3) "MD5"
90: }
91: array(2) {
92: ["hash"]=>
93: string(%d) "%s"
94: ["hash_type"]=>
95: string(5) "SHA-1"
96: }
97: array(2) {
98: ["hash"]=>
99: string(%d) "%s"
100: ["hash_type"]=>
101: string(7) "SHA-256"
102: }
103: array(2) {
104: ["hash"]=>
105: string(%d) "%s"
106: ["hash_type"]=>
107: string(7) "SHA-512"
108: }
109: array(2) {
110: ["hash"]=>
111: string(%d) "%s"
112: ["hash_type"]=>
113: string(7) "OpenSSL"
114: }
115: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>