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>