xref: /PHP-7.4/ext/phar/tests/tar/require_hash.phpt (revision 26dfce7f)
1--TEST--
2Phar: tar-based phar, require_hash=1, no signature
3--SKIPIF--
4<?php if (!extension_loaded('phar')) die('skip'); ?>
5--INI--
6phar.readonly=1
7phar.require_hash=0
8--FILE--
9<?php
10ini_set('phar.require_hash', 1);
11include __DIR__ . '/files/tarmaker.php.inc';
12$fname = __DIR__ . '/require_hash.phar.tar';
13$alias = 'phar://' . $fname;
14$fname2 = __DIR__ . '/require_hash.tar';
15
16$tar = new tarmaker($fname, 'none');
17$tar->init();
18$tar->addFile('tar_004.php', '<?php var_dump(__FILE__);');
19$tar->addFile('internal/file/here', "hi there!\n");
20$tar->addFile('.phar/stub.php', "__HALT_COMPILER();");
21$tar->close();
22
23try {
24	$phar = new Phar($fname);
25	var_dump($phar->getStub());
26} catch (Exception $e) {
27	echo $e->getMessage()."\n";
28}
29ini_set('phar.require_hash', 0);
30try {
31	$phar = new PharData($fname2);
32	$phar['file'] = 'hi';
33	var_dump($phar->getSignature());
34	$phar->setSignatureAlgorithm(Phar::MD5);
35	var_dump($phar->getSignature());
36} catch (Exception $e) {
37	echo $e->getMessage()."\n";
38}
39
40?>
41===DONE===
42--CLEAN--
43<?php
44@unlink(__DIR__ . '/require_hash.phar.tar');
45@unlink(__DIR__ . '/require_hash.tar');
46?>
47--EXPECTF--
48tar-based phar "%srequire_hash.phar.tar" does not have a signature
49bool(false)
50array(2) {
51  ["hash"]=>
52  string(32) "%s"
53  ["hash_type"]=>
54  string(3) "MD5"
55}
56===DONE===
57