|
| 1 | +--TEST-- |
| 2 | +Phar::setSignatureAlgorithm() with native OpenSSL and without ext/openssl |
| 3 | +--EXTENSIONS-- |
| 4 | +phar |
| 5 | +--SKIPIF-- |
| 6 | +<?php |
| 7 | +if (extension_loaded("openssl")) die("skip ext/openssl must be disabled for this test"); |
| 8 | +$arr = Phar::getSupportedSignatures(); |
| 9 | +if (!in_array("OpenSSL", $arr)) die("skip openssl support required"); |
| 10 | +?> |
| 11 | +--INI-- |
| 12 | +phar.require_hash=0 |
| 13 | +phar.readonly=0 |
| 14 | +--FILE-- |
| 15 | +<?php |
| 16 | +$fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar'; |
| 17 | +$p = new Phar($fname); |
| 18 | +$p['file1.txt'] = 'hi'; |
| 19 | +var_dump($p->getSignature()); |
| 20 | +$p->setSignatureAlgorithm(Phar::MD5); |
| 21 | +var_dump($p->getSignature()); |
| 22 | +$p->setSignatureAlgorithm(Phar::SHA1); |
| 23 | +var_dump($p->getSignature()); |
| 24 | +try { |
| 25 | +$p->setSignatureAlgorithm(Phar::SHA256); |
| 26 | +var_dump($p->getSignature()); |
| 27 | +} catch (Exception $e) { |
| 28 | +echo $e->getMessage(); |
| 29 | +} |
| 30 | +try { |
| 31 | +$p->setSignatureAlgorithm(Phar::SHA512); |
| 32 | +var_dump($p->getSignature()); |
| 33 | +} catch (Exception $e) { |
| 34 | +echo $e->getMessage(); |
| 35 | +} |
| 36 | +try { |
| 37 | +$pkey = '-----BEGIN PRIVATE KEY----- |
| 38 | +MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMDcANSIpkgSF6Rh |
| 39 | +KHM8JncsVuCsO5XjiMf3g50lB+poJAG9leoygbVtY55h9tzeI7SAdZbdIoHbtJ/V |
| 40 | +kGdzlzX5jMGbH1sWKk5fZbai4pLZigd4ihH2V4M27jKrAGy6CAU8ZU/Ez2KQQj5g |
| 41 | +A4ZVMJ3iZXlqCmRWwcs0lZvP+c9XAgMBAAECgYAaJLioFu4TjwBNdC47kMfWF9if |
| 42 | +FDnvk6yTDuZ0gvSTvhJDeiO8X6Rdp7p9WeJRBnvomBFYphlraREPKbAtlenFVuIY |
| 43 | +v10O9BjxkQ0O1Y7L2ztMO3E2LFtmWgoGimAnsbUHTkuB61Hd2AWdA7C357eQ67vZ |
| 44 | +GlLu2HIFpSbzMcJFIQJBAPD6Hm7ETuL0ILwofImXAahHbwpmCtKmjvjJaFD5vWXP |
| 45 | +FD6uTbBOgUP+n5Y17+d/vxhSX9yrQueAIodju3bbxUsCQQDM4fMCO4OUYbMroql7 |
| 46 | +ruIqBd34akrA+v2JoV+bMAE6RHBC6DgsI3uySbMJfmnPGoxlbXE0gKN4ONawwDd3 |
| 47 | +gTKlAkEAnJc8DWidhpdzajG488Pf/NUmkBBNOiOnxn1Cv1P6Ql01X6HutAHfuCqO |
| 48 | +05KLKdj2ebyVtJTJrhuy1F33pL4dTwJBAKnIEB3ofahnshdV64cALJFQXVpvktUK |
| 49 | +6TG1Vcn/ZPUJI9J+J5aELQxYwJH8fOhQAspGgEpW06Bb0aWVFCHnIbUCQBFVhu+P |
| 50 | +RcHLpdSl7lZmws1bCnDUmt5GzKBw9diHxuyfGEJ0c0clDTWVEMyO80u0jxrliMkT |
| 51 | +8h5bvpPaY8KIlkg= |
| 52 | +-----END PRIVATE KEY-----'; |
| 53 | +$p->setSignatureAlgorithm(Phar::OPENSSL, $pkey); |
| 54 | +var_dump($p->getSignature()); |
| 55 | +} catch (Exception $e) { |
| 56 | +echo $e->getMessage(); |
| 57 | +} |
| 58 | +?> |
| 59 | +--CLEAN-- |
| 60 | +<?php |
| 61 | +unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar'); |
| 62 | +?> |
| 63 | +--EXPECTF-- |
| 64 | +array(2) { |
| 65 | + ["hash"]=> |
| 66 | + string(%d) "%s" |
| 67 | + ["hash_type"]=> |
| 68 | + string(7) "SHA-256" |
| 69 | +} |
| 70 | +array(2) { |
| 71 | + ["hash"]=> |
| 72 | + string(%d) "%s" |
| 73 | + ["hash_type"]=> |
| 74 | + string(3) "MD5" |
| 75 | +} |
| 76 | +array(2) { |
| 77 | + ["hash"]=> |
| 78 | + string(%d) "%s" |
| 79 | + ["hash_type"]=> |
| 80 | + string(5) "SHA-1" |
| 81 | +} |
| 82 | +array(2) { |
| 83 | + ["hash"]=> |
| 84 | + string(%d) "%s" |
| 85 | + ["hash_type"]=> |
| 86 | + string(7) "SHA-256" |
| 87 | +} |
| 88 | +array(2) { |
| 89 | + ["hash"]=> |
| 90 | + string(%d) "%s" |
| 91 | + ["hash_type"]=> |
| 92 | + string(7) "SHA-512" |
| 93 | +} |
| 94 | +array(2) { |
| 95 | + ["hash"]=> |
| 96 | + string(%d) "%s" |
| 97 | + ["hash_type"]=> |
| 98 | + string(7) "OpenSSL" |
| 99 | +} |
0 commit comments