Mercurial > hg > rc1
comparison vendor/pear/crypt_gpg/tests/DecryptTest.php @ 0:1e000243b222
vanilla 1.3.3 distro, I hope
| author | Charlie Root |
|---|---|
| date | Thu, 04 Jan 2018 15:50:29 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:1e000243b222 |
|---|---|
| 1 <?php | |
| 2 | |
| 3 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ | |
| 4 | |
| 5 /** | |
| 6 * Decryption tests for the Crypt_GPG package. | |
| 7 * | |
| 8 * These tests require the PHPUnit 3.6 or greater package to be installed. | |
| 9 * PHPUnit is installable using PEAR. See the | |
| 10 * {@link http://www.phpunit.de/manual/3.6/en/installation.html manual} | |
| 11 * for detailed installation instructions. | |
| 12 * | |
| 13 * To run these tests, use: | |
| 14 * <code> | |
| 15 * $ phpunit DecryptTestCase | |
| 16 * </code> | |
| 17 * | |
| 18 * LICENSE: | |
| 19 * | |
| 20 * This library is free software; you can redistribute it and/or modify | |
| 21 * it under the terms of the GNU Lesser General Public License as | |
| 22 * published by the Free Software Foundation; either version 2.1 of the | |
| 23 * License, or (at your option) any later version. | |
| 24 * | |
| 25 * This library is distributed in the hope that it will be useful, | |
| 26 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 27 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 28 * Lesser General Public License for more details. | |
| 29 * | |
| 30 * You should have received a copy of the GNU Lesser General Public | |
| 31 * License along with this library; if not, see | |
| 32 * <http://www.gnu.org/licenses/> | |
| 33 * | |
| 34 * @category Encryption | |
| 35 * @package Crypt_GPG | |
| 36 * @author Michael Gauthier <mike@silverorange.com> | |
| 37 * @copyright 2005-2009 silverorange | |
| 38 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 | |
| 39 * @version CVS: $Id$ | |
| 40 * @link http://pear.php.net/package/Crypt_GPG | |
| 41 */ | |
| 42 | |
| 43 /** | |
| 44 * Base test case. | |
| 45 */ | |
| 46 require_once 'TestCase.php'; | |
| 47 | |
| 48 /** | |
| 49 * Tests decryption abilities of Crypt_GPG. | |
| 50 * | |
| 51 * @category Encryption | |
| 52 * @package Crypt_GPG | |
| 53 * @author Michael Gauthier <mike@silverorange.com> | |
| 54 * @copyright 2005-2008 silverorange | |
| 55 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 | |
| 56 * @link http://pear.php.net/package/Crypt_GPG | |
| 57 */ | |
| 58 class DecryptTestCase extends Crypt_GPG_TestCase | |
| 59 { | |
| 60 // string | |
| 61 // {{{ testDecrypt() | |
| 62 | |
| 63 /** | |
| 64 * @group string | |
| 65 */ | |
| 66 public function testDecrypt() | |
| 67 { | |
| 68 $expectedDecryptedData = 'Hello, Alice! Goodbye, Bob!'; | |
| 69 | |
| 70 // encrypted with first-keypair@example.com | |
| 71 // {{{ encrypted data | |
| 72 $encryptedData = <<<TEXT | |
| 73 -----BEGIN PGP MESSAGE----- | |
| 74 Version: GnuPG v1.4.6 (GNU/Linux) | |
| 75 | |
| 76 hQIOA5+T+RFnKO8SEAf/Z0WsgibKGysYfti9lfb2aY7vmAwCXnkrI8wZhqBAtfmB | |
| 77 oe16PinT47AtnXl4CUgB5jBJq32uzaZKFd/dyCzOog1P/87OB6aa2w5mfxJKIIXc | |
| 78 OevQgasWVSQw/1Ro90Fd/F9Q9fcHgHqCG2Q2BwkHG7IZ+V3zHlQpjj5flVTb7Te+ | |
| 79 K5LM85t7kVEzc5vVzhMvoZluMA48YNL+g7qdA3oZDQ0rXRA1DnTVsQ74/RbIQaxZ | |
| 80 LUR7v05TVNrcwK/p2NFzLOJcYSkOYGUpks1qvfUlnsuh346SLHXmebif4GLkBB37 | |
| 81 WWy69+2OwJhlE0qakEJZu2EMFRwRTOrplm9YPs8Z6QgAlqKh5+KoSZTGyzBI8dHv | |
| 82 lJJnlxBkzhrAj8g2kiUX5HfM+55jqtrdOo+PEd/nH56wTXaHqc7R0QE8ZdTyhmtd | |
| 83 hlyzhdu/bHm09Q5WVAWkaA5nVldEtwIhss+YiWc+Ieu+rd5QkQiW9OAc4B7ZvPCO | |
| 84 iDPpzT5rNe2hI4K9VkAKhcBDED+iCHkC4AZs3Rr/6tUCH+dY/roB0K1GtX2eYff6 | |
| 85 UeeSRsyuYbwQkKZN6pC4JQFWW7z9semrTsHsQzE38EW0IxN8nGCiaAE5cxjtW7Pg | |
| 86 k9slzsranQ+n7teucg/+qlArY11LJmvPc7aoZoRCa76hzzDOHskA0/9GRcBQJlTd | |
| 87 ctJWAd9/Bk9NJkwWO+II22IQTWZZrRUN8FT6pnr/WxpWM8LL5nq1Lxf3SQX+H2Jq | |
| 88 JspFzixPnaDl16sE082GSg0VctFMkCZhb/jghMIQYJ2131DoGXJ4QDU= | |
| 89 =sjPP | |
| 90 -----END PGP MESSAGE----- | |
| 91 | |
| 92 TEXT; | |
| 93 // }}} | |
| 94 | |
| 95 $this->gpg->addDecryptKey('first-keypair@example.com', 'test1'); | |
| 96 | |
| 97 $decryptedData = $this->gpg->decrypt($encryptedData); | |
| 98 $this->assertEquals($expectedDecryptedData, $decryptedData); | |
| 99 } | |
| 100 | |
| 101 // }}} | |
| 102 // {{{ testDecryptNoPassphrase() | |
| 103 | |
| 104 /** | |
| 105 * @group string | |
| 106 */ | |
| 107 public function testDecryptNoPassphrase() | |
| 108 { | |
| 109 $expectedDecryptedData = 'Hello, Alice! Goodbye, Bob!'; | |
| 110 | |
| 111 // encrypted with no-passphrase@example.com | |
| 112 // {{{ encrypted data no passphrase | |
| 113 $encryptedData = <<<TEXT | |
| 114 -----BEGIN PGP MESSAGE----- | |
| 115 Version: GnuPG v1.4.6 (GNU/Linux) | |
| 116 | |
| 117 hQIOAyS/OAcAwUtPEAf/cBqf/6najldCQzu5NNmuoyuujm2xpFESS4tljGhC7Hok | |
| 118 gqiUnknDJMwNjb80OhsHIQuWjUqaryktKH0Y+Q5s+oDwRQKVKxqeF8v4hYRq8tXc | |
| 119 a5gffr6lALBhpOHLcWM/oHQmPJgYAkdLDF1hoOwqlWGk5WklzjrRaJF2DwvvpvpL | |
| 120 8yEU1fuO9t7cnD27L466cGMrK473NdiO/Bsml4CL9biNzth5yMia6HmgRQ1VDPQ6 | |
| 121 Q+plGSjTpCaXtq9fyK1Q+d9x/SeRqEVgo/R5n2w3YVZZxjNFPZ0wzMW0YtT7hTBc | |
| 122 AKPt5IEwVFlFkOUT+1Xq/wj5fOFzgV+n1EFMJyTaOgf9HSAm0/L2lymIkK0qEZZK | |
| 123 o0D0KBPQZrs47zj7qGnrmXlxkBydlwrCL6fULBVjK12ej4tdsYVROXfgkKohkEh4 | |
| 124 OxEAX9OsQuf/pSJU6TIYF39TcfKB0FqbmsD6F0DN1hZ5wVdXl+8q92MyZu5a44zD | |
| 125 4fwKVlie+aENjiM0ePrDnFOK70KJVWoBlCXgouc3D6E7Rz4hC19WnWadOZF+2sHm | |
| 126 s7kI5xlIivsftziItjEqqQt74RYpo+TLHTwE3cKc9rXGgtEyD8xykugzHEwetbfd | |
| 127 fMdw+PvHv6jxBPdfz3/Xwe6kgqs1SrlOhQ/6tAf2uRD2C4LckXkc9Y4oC2T4iNlN | |
| 128 FNJWAepBEH0MkQvukbwwR9SQw2oTK2YyWFhLEFXcS61NCQP+du6IPLBNpeE1m+Mc | |
| 129 7lYaqPAkuwDq4wbJLEEVUyPNBnGRGD/al4cMowcGowGUEtn1kXR8lF4= | |
| 130 =aHiA | |
| 131 -----END PGP MESSAGE----- | |
| 132 | |
| 133 TEXT; | |
| 134 // }}} | |
| 135 | |
| 136 $decryptedData = $this->gpg->decrypt($encryptedData); | |
| 137 $this->assertEquals($expectedDecryptedData, $decryptedData); | |
| 138 } | |
| 139 | |
| 140 // }}} | |
| 141 // {{{ testDecryptKeyNotFoundException() | |
| 142 | |
| 143 /** | |
| 144 * @expectedException Crypt_GPG_KeyNotFoundException | |
| 145 * | |
| 146 * @group string | |
| 147 */ | |
| 148 public function testDecryptKeyNotFoundException() | |
| 149 { | |
| 150 // was encrypted with missing-key@example.com | |
| 151 // {{{ encrypted data | |
| 152 $encryptedData = <<<TEXT | |
| 153 -----BEGIN PGP MESSAGE----- | |
| 154 Version: GnuPG v1.4.6 (GNU/Linux) | |
| 155 | |
| 156 hQIOA0l79YQdiRYDEAgAk66FL4HUw7X5PPL4wjDbt4Q68GRAeIdkQutLuGvnlCJ0 | |
| 157 +LHt050deDhQd6FHmfT5K6Hp3eWApl87L5p0eQZhdaSguLZZxykFfhKENWua2YT4 | |
| 158 Kb+EpOsZA3R8UTT9H/HHJ/K5DUl/Zyog+G7ddrKP7CMa9wyYxD6DOJ12b2Yn1cuA | |
| 159 u9am9eKmFZEwvoInF0WPdXeUyhMPY4QU43OUoIbF2fXjAq+WczqLbn0dDKH8CTqD | |
| 160 hVSFRxyqia+w5nCSnzzyAcICYFOKUWzn6EiBW95gfJNvi6KzMXI7XvaSHhEkYXKA | |
| 161 99WPLrHb95yRHjutXays+LDW00mjBttx40FhcQKdFgf/X8EhPdY+4F8hKctZ42FN | |
| 162 bw57qxV7dbalA4jC7lOaqcfvMa/y/pR3ewPN7CM5GWqXo0xrpB9uYlC+f3L2tQbI | |
| 163 5J/rYkCjQXZvOrpKaSCdp/7fhPp5NiFCy+VHakUfIou5O4KDm6h5lvFdFZtIFR9N | |
| 164 +9rL/C2WjBj6evbiBuGWjR9CrwvI57zYTjJgVSggwozwKwnse8R/8gUDyFLb26Dh | |
| 165 S/VKGm36N48kIuJ4UDUubLSJgwnU/Jiapx3M13GLsb/k+mjllwcc6/XlC0YN/7w4 | |
| 166 ZvemnGWt6/ivt8NhRM7pRY4joJBtJNrAUsoijmscdWhhqnMqx8liUeEfSlrPStk0 | |
| 167 INJWAaFpzdpNupyNLJI0pO0SAXX28yeNaDkJwzDZf8kU4U5T1zT+BabHVixmCB6/ | |
| 168 CNl9/GMhmvFD5un2+hMDVfFjZ2FHSH5QgMF50Ws10+jpXan7PTDdNMw= | |
| 169 =Qe7y | |
| 170 -----END PGP MESSAGE----- | |
| 171 | |
| 172 TEXT; | |
| 173 // }}} | |
| 174 | |
| 175 $this->gpg->decrypt($encryptedData); | |
| 176 } | |
| 177 | |
| 178 // }}} | |
| 179 // {{{ testDecryptNoDataException_invalid() | |
| 180 | |
| 181 /** | |
| 182 * @expectedException Crypt_GPG_NoDataException | |
| 183 * | |
| 184 * @group string | |
| 185 */ | |
| 186 public function testDecryptNoDataException_invalid() | |
| 187 { | |
| 188 $encryptedData = 'Invalid OpenPGP data.'; | |
| 189 $this->gpg->decrypt($encryptedData); | |
| 190 } | |
| 191 | |
| 192 // }}} | |
| 193 // {{{ testDecryptNoDataException_empty() | |
| 194 | |
| 195 /** | |
| 196 * @expectedException Crypt_GPG_NoDataException | |
| 197 * | |
| 198 * @group string | |
| 199 */ | |
| 200 public function testDecryptNoDataException_empty() | |
| 201 { | |
| 202 $encryptedData = ''; | |
| 203 $this->gpg->decrypt($encryptedData); | |
| 204 } | |
| 205 | |
| 206 // }}} | |
| 207 // {{{ testDecryptBadPassphraseException_missing() | |
| 208 | |
| 209 /** | |
| 210 * @expectedException Crypt_GPG_BadPassphraseException | |
| 211 * | |
| 212 * @group string | |
| 213 */ | |
| 214 public function testDecryptBadPassphraseException_missing() | |
| 215 { | |
| 216 // encrypted with first-keypair@example.com | |
| 217 // {{{ encrypted data | |
| 218 $encryptedData = <<<TEXT | |
| 219 -----BEGIN PGP MESSAGE----- | |
| 220 Version: GnuPG v1.4.6 (GNU/Linux) | |
| 221 | |
| 222 hQIOA5+T+RFnKO8SEAf/Z0WsgibKGysYfti9lfb2aY7vmAwCXnkrI8wZhqBAtfmB | |
| 223 oe16PinT47AtnXl4CUgB5jBJq32uzaZKFd/dyCzOog1P/87OB6aa2w5mfxJKIIXc | |
| 224 OevQgasWVSQw/1Ro90Fd/F9Q9fcHgHqCG2Q2BwkHG7IZ+V3zHlQpjj5flVTb7Te+ | |
| 225 K5LM85t7kVEzc5vVzhMvoZluMA48YNL+g7qdA3oZDQ0rXRA1DnTVsQ74/RbIQaxZ | |
| 226 LUR7v05TVNrcwK/p2NFzLOJcYSkOYGUpks1qvfUlnsuh346SLHXmebif4GLkBB37 | |
| 227 WWy69+2OwJhlE0qakEJZu2EMFRwRTOrplm9YPs8Z6QgAlqKh5+KoSZTGyzBI8dHv | |
| 228 lJJnlxBkzhrAj8g2kiUX5HfM+55jqtrdOo+PEd/nH56wTXaHqc7R0QE8ZdTyhmtd | |
| 229 hlyzhdu/bHm09Q5WVAWkaA5nVldEtwIhss+YiWc+Ieu+rd5QkQiW9OAc4B7ZvPCO | |
| 230 iDPpzT5rNe2hI4K9VkAKhcBDED+iCHkC4AZs3Rr/6tUCH+dY/roB0K1GtX2eYff6 | |
| 231 UeeSRsyuYbwQkKZN6pC4JQFWW7z9semrTsHsQzE38EW0IxN8nGCiaAE5cxjtW7Pg | |
| 232 k9slzsranQ+n7teucg/+qlArY11LJmvPc7aoZoRCa76hzzDOHskA0/9GRcBQJlTd | |
| 233 ctJWAd9/Bk9NJkwWO+II22IQTWZZrRUN8FT6pnr/WxpWM8LL5nq1Lxf3SQX+H2Jq | |
| 234 JspFzixPnaDl16sE082GSg0VctFMkCZhb/jghMIQYJ2131DoGXJ4QDU= | |
| 235 =sjPP | |
| 236 -----END PGP MESSAGE----- | |
| 237 | |
| 238 TEXT; | |
| 239 // }}} | |
| 240 | |
| 241 $this->gpg->decrypt($encryptedData); | |
| 242 } | |
| 243 | |
| 244 // }}} | |
| 245 // {{{ testDecryptBadPassphraseException_bad() | |
| 246 | |
| 247 /** | |
| 248 * @expectedException Crypt_GPG_BadPassphraseException | |
| 249 * | |
| 250 * @group string | |
| 251 */ | |
| 252 public function testDecryptBadPassphraseException_bad() | |
| 253 { | |
| 254 // encrypted with first-keypair@example.com | |
| 255 // {{{ encrypted data | |
| 256 $encryptedData = <<<TEXT | |
| 257 -----BEGIN PGP MESSAGE----- | |
| 258 Version: GnuPG v1.4.6 (GNU/Linux) | |
| 259 | |
| 260 hQIOA5+T+RFnKO8SEAf/Z0WsgibKGysYfti9lfb2aY7vmAwCXnkrI8wZhqBAtfmB | |
| 261 oe16PinT47AtnXl4CUgB5jBJq32uzaZKFd/dyCzOog1P/87OB6aa2w5mfxJKIIXc | |
| 262 OevQgasWVSQw/1Ro90Fd/F9Q9fcHgHqCG2Q2BwkHG7IZ+V3zHlQpjj5flVTb7Te+ | |
| 263 K5LM85t7kVEzc5vVzhMvoZluMA48YNL+g7qdA3oZDQ0rXRA1DnTVsQ74/RbIQaxZ | |
| 264 LUR7v05TVNrcwK/p2NFzLOJcYSkOYGUpks1qvfUlnsuh346SLHXmebif4GLkBB37 | |
| 265 WWy69+2OwJhlE0qakEJZu2EMFRwRTOrplm9YPs8Z6QgAlqKh5+KoSZTGyzBI8dHv | |
| 266 lJJnlxBkzhrAj8g2kiUX5HfM+55jqtrdOo+PEd/nH56wTXaHqc7R0QE8ZdTyhmtd | |
| 267 hlyzhdu/bHm09Q5WVAWkaA5nVldEtwIhss+YiWc+Ieu+rd5QkQiW9OAc4B7ZvPCO | |
| 268 iDPpzT5rNe2hI4K9VkAKhcBDED+iCHkC4AZs3Rr/6tUCH+dY/roB0K1GtX2eYff6 | |
| 269 UeeSRsyuYbwQkKZN6pC4JQFWW7z9semrTsHsQzE38EW0IxN8nGCiaAE5cxjtW7Pg | |
| 270 k9slzsranQ+n7teucg/+qlArY11LJmvPc7aoZoRCa76hzzDOHskA0/9GRcBQJlTd | |
| 271 ctJWAd9/Bk9NJkwWO+II22IQTWZZrRUN8FT6pnr/WxpWM8LL5nq1Lxf3SQX+H2Jq | |
| 272 JspFzixPnaDl16sE082GSg0VctFMkCZhb/jghMIQYJ2131DoGXJ4QDU= | |
| 273 =sjPP | |
| 274 -----END PGP MESSAGE----- | |
| 275 | |
| 276 TEXT; | |
| 277 // }}} | |
| 278 | |
| 279 $this->gpg->addDecryptKey('first-keypair@example.com', 'incorrect'); | |
| 280 $this->gpg->decrypt($encryptedData); | |
| 281 } | |
| 282 | |
| 283 // }}} | |
| 284 // {{{ testDecryptDual() | |
| 285 | |
| 286 /** | |
| 287 * @group string | |
| 288 */ | |
| 289 public function testDecryptDual() | |
| 290 { | |
| 291 $expectedDecryptedData = 'Hello, Alice! Goodbye, Bob!'; | |
| 292 | |
| 293 // encrypted with both first-keypair@example.com and | |
| 294 // second-keypair@example.com | |
| 295 // {{{ dual encrypted data | |
| 296 $encryptedData = <<<TEXT | |
| 297 -----BEGIN PGP MESSAGE----- | |
| 298 Version: GnuPG v1.4.6 (GNU/Linux) | |
| 299 | |
| 300 hQIOA5+T+RFnKO8SEAf7BO/zLK6gDt5epMOEnHc9ESdSTy8yExdoSxHhvTFxWfwi | |
| 301 AwMtBEur8sotSVt+Q87xYzjzE77+FQYS9oYCivlK/Nedblj3MiRuUWhM+Q9tbP3b | |
| 302 KbwEwaQlrpNphQsKZOWkliZWmFJWnQ1s1Pm6lPlhwTNhcwkapm8EXuWFExJnY9yW | |
| 303 EZjUOhVmnkitKykKup8Brvfm2QpGXoFZtHFKXTi162Lue9N0tDm6s3JnCIhMFQgI | |
| 304 fyAikcsJKpbUgeGmzlWJO8QkH81QMuKpqfUb8R1dswhDp6RKXhoXS43zkhH8QSbM | |
| 305 Cp9AWdv3qsWBUqzWavCxjtIsogYO+gFLl/Vuw5Y87Af/b7OQgLP1v6xKZcrTvFCF | |
| 306 hxGxn+5M8E2GyJaKpQ1GZ+Wv+IzPGetm7rWf6q71hchAkxFMczIPSK7aARm9CNVo | |
| 307 7tCdcUmUTgLhG1/0OfmkbwJUjdSpOtz8+TvIZa20Jj9a1G8WT3KTeivKMqBPhgk4 | |
| 308 sD7OJPDCYQNSQEw6pAn4oBrhJlDUkpCK6wIbUhzeq3MUwtM1e+qpCr/k4In4NVq6 | |
| 309 cmoC7W//9J69ecuxmiUHRhZ4CALRxQMAsSxMRnNJ26JY4ko82Rfvbrz8QEmKcIyT | |
| 310 bTdAMsZ18m9XXrnc2ACDDMQyUkneQDUZSt7V67ZiN4Upi295CynIbNEMmcH/13Aa | |
| 311 aoUCDgOy9U5HV+IkUBAIALGICOFzyfquWZ0ZhPGVdDWx1yNcApnzIgZx1JbBpMyc | |
| 312 2jb9aQHwGId26gv/ym/M/3FJ0lv+IAcktMjO4dwYLnUuBa6BOFFybZi3gYvXtSuy | |
| 313 iW4ygVjIsYixhvbsyaVCoB/MsNBFrQAHEShaxALBkI/dv+yyD8BifU4Yj9LFcAZO | |
| 314 mFDraOgYfHsur5eevYTXozf5wU7phu9v6zo5bk8zgZSqs8AgyscstZWCqCtR/cG0 | |
| 315 t9lAIovGPsIcA12qvkm/A0WiBMEWhGryzHTv9oRsFztOFtqH+MmLdlvWjElw8hKt | |
| 316 fFJB+bhHNO9BUIrwnuH79cA4aXOy1+xG+ECs7oJbcisIANqJKalQLgBYEjbucpDg | |
| 317 O8i/c4RmV9J7VczpZp7ZREMpTmv9nV849OFXT1strsb/+vXOXOyLToG1gOxRfJr2 | |
| 318 q9jFjpyMAtrr/aHhXMKK1OMhhcdkQMEKuHTvon5KleZOQoVmIqa3kUtWNW1vFBIP | |
| 319 UfJFH202EJLOLC25rXCtzRsJE0HWiYDyLqKMQcSQhTcngLBLmeDLH3DeGUIDwcZe | |
| 320 oWgUg8wB/oSoU4AchShzO+yM6bcmffcaHFqwll9gdu9walnJAAOb8+r6LGGlsGTV | |
| 321 qhnR0LM3Khp+HOFdaxcQT6BV1aw/D6Z5hIi+Am0VTi0HlFr/gwleyYaP+742Z6K0 | |
| 322 s8bSVgFT2Pjik+byARWzRwWjmi0jT7QsgITM73aBKPDXiArEPkv8YtC9HzUj0lCY | |
| 323 gX7Eg2ZqISULFydBckMJ6drojMMQiqZBeEc09GupSBL1zldnKHfiXBTw | |
| 324 =QYjj | |
| 325 -----END PGP MESSAGE----- | |
| 326 | |
| 327 TEXT; | |
| 328 // }}} | |
| 329 | |
| 330 // decrypt with first key | |
| 331 $this->gpg->addDecryptKey('first-keypair@example.com', 'test1'); | |
| 332 $decryptedData = $this->gpg->decrypt($encryptedData); | |
| 333 $this->gpg->clearDecryptKeys(); | |
| 334 $this->assertEquals($expectedDecryptedData, $decryptedData); | |
| 335 | |
| 336 // decrypt with second key | |
| 337 $this->gpg->addDecryptKey('second-keypair@example.com', 'test2'); | |
| 338 $decryptedData = $this->gpg->decrypt($encryptedData); | |
| 339 $this->gpg->clearDecryptKeys(); | |
| 340 $this->assertEquals($expectedDecryptedData, $decryptedData); | |
| 341 } | |
| 342 | |
| 343 // }}} | |
| 344 // {{{ testDecryptDualOnePassphrase() | |
| 345 | |
| 346 /** | |
| 347 * @group string | |
| 348 */ | |
| 349 public function testDecryptDualOnePassphrase() | |
| 350 { | |
| 351 $expectedDecryptedData = 'Hello, Alice! Goodbye, Bob!'; | |
| 352 | |
| 353 // encrypted with both first-keypair@example.com and | |
| 354 // no-passphrase@example.com | |
| 355 // {{{ dual encrypted data one passphrase | |
| 356 $encryptedData = <<<TEXT | |
| 357 -----BEGIN PGP MESSAGE----- | |
| 358 Version: GnuPG v1.4.6 (GNU/Linux) | |
| 359 | |
| 360 hQIOA5+T+RFnKO8SEAgAkvANavo5eEeJ/C0njcciAh/ELcgqynhwM4R3texCA9HF | |
| 361 043Z5kd4nMr2NUFBFG+UAzFSoB2zO5FZWsESMi71aIgzjX+CG754vw4j1I6Elsa8 | |
| 362 An1Tldb4vPJqEWdp9ynu/i90wqYUc6DNp8MLilTfFk16GdPv2L8wjOUFlJqV3OdA | |
| 363 LJ68ppg3Qr8H0R81HSLPkSMc+o6GpljVShcejLeG14EpoW16ryZHXQk9T9bZzj1L | |
| 364 VQT/t8jgj5h2ocEtUCXixNBpFoRdMGMZB4SWXH4Aw3GiSCNSz/xQOgOSu9c/FdVD | |
| 365 WE1KCds4DGo5Za6rpDHxBCa8OhUNfhFiOAIcffz4MwgA07vc9jiAU7kGaR86AQuu | |
| 366 UlzYe0ZZd6hALVxUAfnBF2aG5Jjhm3muwOEu7e3zk3hd/xVPzT5BQ+1/mt+vlS8E | |
| 367 Ffjr13q/nKdoGTW7+orFjcwOmhpsJJcrTU+6TynkpmjNLyHhZix/roNbEPij7JJu | |
| 368 StO+vbyu22xWc2mp56AbhO8MLwBC6Vxc2h2ZJXjXcaCLkntnOEPxx653sC55KqHm | |
| 369 6gY4Ycwh+cnF9z+dWZBPak/LlHP4pmrSaeIc+8pS9Q6zFdVtrppzjTPCH0/FPxA2 | |
| 370 QTwBMXrClF8iYNfvJ8a+Se3ZqzmPbpvbbdtTGm49Bo4FNrdHVkC+MMgBEQiJKkbq | |
| 371 /4UCDgMkvzgHAMFLTxAH/3a9Et2b3u61MMd0iag7haurrRsMwd6E9VD2SC6gbscF | |
| 372 efInr202g78bbyf0AnISnWBjZC8lfmiyoe6Ic7NO5HGzddJ2UPyeiA9ggNPlARlZ | |
| 373 OQngAaFzvP8NyMhYMIz5tUxxhYA9U8yjgEuhr/lq+olZwk6iiSaD3lP0q715XkLC | |
| 374 uVJ6uxZoBjRaKsVnNLcXvXY6C0IcrGzSr6wKvJm4kQ3RjahRjJvUJG8yeKtbUmHz | |
| 375 KBeorg4HQADXcK5Bcp9NCMatds1jvR/Zf8DakAO4G1T8Yb09xEQCVFqFIk7g1NDB | |
| 376 T/vHtAdYolvyeS7wlF1TMFuYfuMOi0kVdlbx/PlhpN4H/Recs7EMcl/9gUwUktOl | |
| 377 6xyDvA36QvO9RN0D504Ck+ZZjMNFId6fdU/ngSjq9AAteLRLUFgapbMTN2calf1J | |
| 378 0ehPzMINegvnVB2dR+xcc67QpxmR5uIA2jK1fSkhvOohE7UxE7xqp4SIMw6E92zy | |
| 379 ZvmhQVIqN6/s4k8KxrZKe/uhtDj963m7rsdR7v9wQsc1jJ/f+KZxy73r2Oz7BdTf | |
| 380 cpKaMKY/CHiy0NQ3jPrY3oVOIEzu15q4raOhIT5FQoH0pWgmBID3aQsEMjAdeCTy | |
| 381 JGHa4ZhQn9LSI+1XQmT3h8tWNYtAm9u3eqFsSm7ENMj3fY2Bd9wKlwTuTzsNhsdw | |
| 382 hvHSVgFkfzy/xAiLNPzXydzWJ3bm6ZetguDA/lNgfSaNVR4zSiPSbmV9ipJtrPpB | |
| 383 S6stCnUnw33F2IUOsEufvLFfEWtXY8qbBCULYC+no3GOwJhMyJQEI+xw | |
| 384 =1ZwO | |
| 385 -----END PGP MESSAGE----- | |
| 386 | |
| 387 TEXT; | |
| 388 // }}} | |
| 389 | |
| 390 // decrypt with no passphrase | |
| 391 $decryptedData = $this->gpg->decrypt($encryptedData); | |
| 392 $this->assertEquals($expectedDecryptedData, $decryptedData); | |
| 393 | |
| 394 // decrypt with first key | |
| 395 $this->gpg->addDecryptKey('first-keypair@example.com', 'test1'); | |
| 396 $decryptedData = $this->gpg->decrypt($encryptedData); | |
| 397 $this->gpg->clearDecryptKeys(); | |
| 398 $this->assertEquals($expectedDecryptedData, $decryptedData); | |
| 399 } | |
| 400 | |
| 401 // }}} | |
| 402 // {{{ testDecryptDualNoPassphraseKeyMissing() | |
| 403 | |
| 404 /** | |
| 405 * @expectedException Crypt_GPG_BadPassphraseException | |
| 406 * | |
| 407 * @group string | |
| 408 */ | |
| 409 public function testDecryptDualNoPassphraseKeyMissing() | |
| 410 { | |
| 411 // encrypted with both first-keypair@example.com and | |
| 412 // second-keypair@example.com | |
| 413 // {{{ dual encrypted data | |
| 414 $encryptedData = <<<TEXT | |
| 415 -----BEGIN PGP MESSAGE----- | |
| 416 Version: GnuPG v1.4.6 (GNU/Linux) | |
| 417 | |
| 418 hQIOA5+T+RFnKO8SEAf7BO/zLK6gDt5epMOEnHc9ESdSTy8yExdoSxHhvTFxWfwi | |
| 419 AwMtBEur8sotSVt+Q87xYzjzE77+FQYS9oYCivlK/Nedblj3MiRuUWhM+Q9tbP3b | |
| 420 KbwEwaQlrpNphQsKZOWkliZWmFJWnQ1s1Pm6lPlhwTNhcwkapm8EXuWFExJnY9yW | |
| 421 EZjUOhVmnkitKykKup8Brvfm2QpGXoFZtHFKXTi162Lue9N0tDm6s3JnCIhMFQgI | |
| 422 fyAikcsJKpbUgeGmzlWJO8QkH81QMuKpqfUb8R1dswhDp6RKXhoXS43zkhH8QSbM | |
| 423 Cp9AWdv3qsWBUqzWavCxjtIsogYO+gFLl/Vuw5Y87Af/b7OQgLP1v6xKZcrTvFCF | |
| 424 hxGxn+5M8E2GyJaKpQ1GZ+Wv+IzPGetm7rWf6q71hchAkxFMczIPSK7aARm9CNVo | |
| 425 7tCdcUmUTgLhG1/0OfmkbwJUjdSpOtz8+TvIZa20Jj9a1G8WT3KTeivKMqBPhgk4 | |
| 426 sD7OJPDCYQNSQEw6pAn4oBrhJlDUkpCK6wIbUhzeq3MUwtM1e+qpCr/k4In4NVq6 | |
| 427 cmoC7W//9J69ecuxmiUHRhZ4CALRxQMAsSxMRnNJ26JY4ko82Rfvbrz8QEmKcIyT | |
| 428 bTdAMsZ18m9XXrnc2ACDDMQyUkneQDUZSt7V67ZiN4Upi295CynIbNEMmcH/13Aa | |
| 429 aoUCDgOy9U5HV+IkUBAIALGICOFzyfquWZ0ZhPGVdDWx1yNcApnzIgZx1JbBpMyc | |
| 430 2jb9aQHwGId26gv/ym/M/3FJ0lv+IAcktMjO4dwYLnUuBa6BOFFybZi3gYvXtSuy | |
| 431 iW4ygVjIsYixhvbsyaVCoB/MsNBFrQAHEShaxALBkI/dv+yyD8BifU4Yj9LFcAZO | |
| 432 mFDraOgYfHsur5eevYTXozf5wU7phu9v6zo5bk8zgZSqs8AgyscstZWCqCtR/cG0 | |
| 433 t9lAIovGPsIcA12qvkm/A0WiBMEWhGryzHTv9oRsFztOFtqH+MmLdlvWjElw8hKt | |
| 434 fFJB+bhHNO9BUIrwnuH79cA4aXOy1+xG+ECs7oJbcisIANqJKalQLgBYEjbucpDg | |
| 435 O8i/c4RmV9J7VczpZp7ZREMpTmv9nV849OFXT1strsb/+vXOXOyLToG1gOxRfJr2 | |
| 436 q9jFjpyMAtrr/aHhXMKK1OMhhcdkQMEKuHTvon5KleZOQoVmIqa3kUtWNW1vFBIP | |
| 437 UfJFH202EJLOLC25rXCtzRsJE0HWiYDyLqKMQcSQhTcngLBLmeDLH3DeGUIDwcZe | |
| 438 oWgUg8wB/oSoU4AchShzO+yM6bcmffcaHFqwll9gdu9walnJAAOb8+r6LGGlsGTV | |
| 439 qhnR0LM3Khp+HOFdaxcQT6BV1aw/D6Z5hIi+Am0VTi0HlFr/gwleyYaP+742Z6K0 | |
| 440 s8bSVgFT2Pjik+byARWzRwWjmi0jT7QsgITM73aBKPDXiArEPkv8YtC9HzUj0lCY | |
| 441 gX7Eg2ZqISULFydBckMJ6drojMMQiqZBeEc09GupSBL1zldnKHfiXBTw | |
| 442 =QYjj | |
| 443 -----END PGP MESSAGE----- | |
| 444 | |
| 445 TEXT; | |
| 446 // }}} | |
| 447 | |
| 448 // #21148: Make sure that proper exception is thrown | |
| 449 // when decrypting without specyfying a passphrase | |
| 450 | |
| 451 // in this case we remove one of private keys to make | |
| 452 // sure proper exception is thrown also in this case | |
| 453 $this->gpg->deletePrivateKey('first-keypair@example.com'); | |
| 454 | |
| 455 $this->gpg->decrypt($encryptedData); | |
| 456 } | |
| 457 | |
| 458 // }}} | |
| 459 // {{{ testDecryptSignedData() | |
| 460 | |
| 461 /** | |
| 462 * @group string | |
| 463 */ | |
| 464 public function testDecryptSignedData() | |
| 465 { | |
| 466 $expectedDecryptedData = 'Hello, Alice! Goodbye, Bob!'; | |
| 467 | |
| 468 // signed with first-keypair@example.com | |
| 469 // {{{ signed data | |
| 470 $signedData = <<<TEXT | |
| 471 -----BEGIN PGP MESSAGE----- | |
| 472 Version: GnuPG v1.4.6 (GNU/Linux) | |
| 473 | |
| 474 owGbwMvMwCR4YPrNN1MOJCczrjFOEsrLL8pNzNEtzkzPS03RTUksSfS49JPJIzUn | |
| 475 J19HwTEnMzlVUcE9Pz8lqTJVR8EpP0mxw56ZlQGkBmaMIJO9GsOCo2L3pk5y2DNT | |
| 476 yiFKb0X03YSJqscaGRb0BKjZ3P+6SvjG160/WOa9vpey4QUDAA== | |
| 477 =wtCB | |
| 478 -----END PGP MESSAGE----- | |
| 479 | |
| 480 TEXT; | |
| 481 // }}} | |
| 482 | |
| 483 $decryptedData = $this->gpg->decrypt($signedData); | |
| 484 $this->assertEquals($expectedDecryptedData, $decryptedData); | |
| 485 } | |
| 486 | |
| 487 // }}} | |
| 488 // {{{ testDecryptFirstSubKey() | |
| 489 | |
| 490 /** | |
| 491 * @group string | |
| 492 */ | |
| 493 public function testDecryptFirstSubKey() | |
| 494 { | |
| 495 $expectedDecryptedData = 'Hello, Alice! Goodbye, Bob!'; | |
| 496 | |
| 497 // encrypted with first subkey (ELG-E) of multiple-subkeys@example.com | |
| 498 // {{{ encrypted data | |
| 499 $encryptedData = <<<TEXT | |
| 500 -----BEGIN PGP MESSAGE----- | |
| 501 Version: GnuPG v1.4.6 (GNU/Linux) | |
| 502 | |
| 503 hQIOA2+UGsw2JFPaEAf/TQ5We9V090WikWJTnpLwIZVgJSU1aCcG6R9h3wBOPFHi | |
| 504 RLQ4jBSL8EvXk4VwVJ0tuqpcB10+W1OugWbHTOxWnpbioEaUJk8jRu3MZvnyJe/d | |
| 505 3FcLlqXE0SocZR1Okxbp64tDvBzs4jjniQYfoMEM1j/VVlkQ02nufOLy6uvxPZjf | |
| 506 KkSeCVSy0HIaT0U5e3R28fT+dYN8i2RhT8AckjWeovJAMbHxCCsKdinI45u7O1QA | |
| 507 t9zZxMBaUvo/ikLM1/fyw7E8QaGCh4LlH8WrgBXneAgOPtlkHGziS/I54RSvGe07 | |
| 508 yWrYkNzFch0l9RnGjAMqqzY9kXn+HxMr3bOFKeSzVQgAssvhcx6OjD+ZzRnVb8D+ | |
| 509 i5KYFTrVih377e5cBhayWEEIdNeV/QTH9ooZxEVqxC10J5P6UgwNewOYhGJxr1yN | |
| 510 Nn2+KlgfoXuqa5RtLhShjDduPF5FS3v7HKGXuyXBQ+W9FcVeytayo8QRqbMqxWZe | |
| 511 dNlgjfbNsXJtUjm/48fYdmIiBkb5lf+2LPBhX9JHekVbzJdqx3kigcyXnh7VefKZ | |
| 512 fWnOmDdAd3hqeeagXUVGmtH+z6+XDGSKDuoBbwreHxr0ZIpW8mm6I6nx9kBF+LoE | |
| 513 OapSuua9s7ddcBxaOVUGECiH4owhHnfFQSz58XsRNIbkZL8R4YewrCmCoscN6/qN | |
| 514 adJWAY877iMazlpAzZWr6IZNvKqsET8yQbCllR0olqgh/VOmYUrnj31XtVFgP+47 | |
| 515 kjHVkhz76aEUtquqMmWsR8r8p42TqR0u1KoW2dGysFzdPreXPORf3tQ= | |
| 516 =i9lR | |
| 517 -----END PGP MESSAGE----- | |
| 518 | |
| 519 TEXT; | |
| 520 // }}} | |
| 521 | |
| 522 $this->gpg->addDecryptKey('multiple-subkeys@example.com', 'test'); | |
| 523 | |
| 524 $decryptedData = $this->gpg->decrypt($encryptedData); | |
| 525 $this->assertEquals($expectedDecryptedData, $decryptedData); | |
| 526 } | |
| 527 | |
| 528 // }}} | |
| 529 // {{{ testDecryptSecondSubKey() | |
| 530 | |
| 531 /** | |
| 532 * @group string | |
| 533 */ | |
| 534 public function testDecryptSecondSubKey() | |
| 535 { | |
| 536 $expectedDecryptedData = 'Hello, Alice! Goodbye, Bob!'; | |
| 537 | |
| 538 // encrypted with second subkey (RSA) of multiple-subkeys@example.com | |
| 539 // {{{ encrypted data | |
| 540 $encryptedData = <<<TEXT | |
| 541 -----BEGIN PGP MESSAGE----- | |
| 542 Version: GnuPG v1.4.6 (GNU/Linux) | |
| 543 | |
| 544 hQEMAykh4NP/Ww9KAQf9HLxeXIXDMXEyJaCsfulZodSavNBP0IuZrXVkxrMPPart | |
| 545 fOf2N0Snnq3vA3MjPL9vEfD5sZLlA2bYMZmilyCh+lryYccME+Qa1gQ5xak1Cra1 | |
| 546 y5ckZ7UNOTdHnhH5VvXk+bwm4KDbdeJJPLOxBJ/j6pf03vxeDEyoBPeeMzzzkXqH | |
| 547 +XZ9j7BHZcsLkY7j7iEw1DwcB4TdbOzkcVVBYwovCmhdY0i0m48mkqGVB0mKNUu+ | |
| 548 YbJuOqiqjACIwXBelB4h/xEXGeEPk+ij1UMt74QhNM2OaQ2HUhIKYMWvAHYuGAvx | |
| 549 +ETuFiJo5OqCa4jW4Nqczw4FYLSDOVHdzKw7+dqeddJWAVST6k4823HSprJVFJ+i | |
| 550 pY9Bijx3ziDr14+IPxspoJTOInBFYihbwmLFL2RYsf0+pDFmngRhskWIyl4ann4/ | |
| 551 w7YcziO6EF7lbOqYdn+rBA8e46kgbBQ= | |
| 552 =7fzo | |
| 553 -----END PGP MESSAGE----- | |
| 554 | |
| 555 TEXT; | |
| 556 // }}} | |
| 557 | |
| 558 $this->gpg->addDecryptKey('multiple-subkeys@example.com', 'test'); | |
| 559 | |
| 560 $decryptedData = $this->gpg->decrypt($encryptedData); | |
| 561 $this->assertEquals($expectedDecryptedData, $decryptedData); | |
| 562 } | |
| 563 | |
| 564 // }}} | |
| 565 // {{{ testDecryptFile() | |
| 566 | |
| 567 /** | |
| 568 * @group file | |
| 569 */ | |
| 570 public function testDecryptFile() | |
| 571 { | |
| 572 $expectedMd5Sum = 'f96267d87551ee09bfcac16921e351c1'; | |
| 573 $inputFilename = $this->getDataFilename('testDecryptFile.asc'); | |
| 574 $outputFilename = $this->getTempFilename('testDecryptFile.plain'); | |
| 575 | |
| 576 // file is encrypted with first-keypair@example.com | |
| 577 $this->gpg->addDecryptKey('first-keypair@example.com', 'test1'); | |
| 578 $this->gpg->decryptFile($inputFilename, $outputFilename); | |
| 579 | |
| 580 $md5Sum = $this->getMd5Sum($outputFilename); | |
| 581 $this->assertEquals($expectedMd5Sum, $md5Sum); | |
| 582 } | |
| 583 | |
| 584 // }}} | |
| 585 // {{{ testDecryptFileToString() | |
| 586 | |
| 587 /** | |
| 588 * @group file | |
| 589 */ | |
| 590 public function testDecryptFileToString() | |
| 591 { | |
| 592 $expectedData = 'Hello, Alice! Goodbye, Bob!'; | |
| 593 $inputFilename = $this->getDataFilename('testDecryptFileToString.asc'); | |
| 594 | |
| 595 // file is encrypted with first-keypair@example.com | |
| 596 $this->gpg->addDecryptKey('first-keypair@example.com', 'test1'); | |
| 597 $decryptedData = $this->gpg->decryptFile($inputFilename); | |
| 598 | |
| 599 $this->assertEquals($expectedData, $decryptedData); | |
| 600 } | |
| 601 | |
| 602 // }}} | |
| 603 // {{{ testDecryptFileNoPassphrase() | |
| 604 | |
| 605 /** | |
| 606 * @group file | |
| 607 */ | |
| 608 public function testDecryptFileNoPassphrase() | |
| 609 { | |
| 610 $expectedMd5Sum = 'f96267d87551ee09bfcac16921e351c1'; | |
| 611 | |
| 612 $inputFilename = | |
| 613 $this->getDataFilename('testDecryptFileNoPassphrase.asc'); | |
| 614 | |
| 615 $outputFilename = | |
| 616 $this->getTempFilename('testDecryptFileNoPassphrase.plain'); | |
| 617 | |
| 618 // file is encrypted with no-passphrase@example.com | |
| 619 $this->gpg->decryptFile($inputFilename, $outputFilename); | |
| 620 | |
| 621 $md5Sum = $this->getMd5Sum($outputFilename); | |
| 622 $this->assertEquals($expectedMd5Sum, $md5Sum); | |
| 623 } | |
| 624 | |
| 625 // }}} | |
| 626 // {{{ testDecryptFileFileException_input() | |
| 627 | |
| 628 /** | |
| 629 * @expectedException Crypt_GPG_FileException | |
| 630 * | |
| 631 * @group file | |
| 632 */ | |
| 633 public function testDecryptFileFileException_input() | |
| 634 { | |
| 635 // input file does not exist | |
| 636 $inputFilename = | |
| 637 $this->getDataFilename('testDecryptFileFileException_input.asc'); | |
| 638 | |
| 639 $this->gpg->decryptFile($inputFilename); | |
| 640 } | |
| 641 | |
| 642 // }}} | |
| 643 // {{{ testDecryptFileFileException_output() | |
| 644 | |
| 645 /** | |
| 646 * @expectedException Crypt_GPG_FileException | |
| 647 * | |
| 648 * @group file | |
| 649 */ | |
| 650 public function testDecryptFileFileException_output() | |
| 651 { | |
| 652 // input file is encrypted with first-keypair@example.com | |
| 653 // output file does not exist | |
| 654 $inputFilename = $this->getDataFilename('testDecryptFile.asc'); | |
| 655 $outputFilename = './non-existent' . | |
| 656 '/testDecryptFileFileException_output.plain'; | |
| 657 | |
| 658 $this->gpg->addDecryptKey('first-keypair@example.com', 'test1'); | |
| 659 $this->gpg->decryptFile($inputFilename, $outputFilename); | |
| 660 } | |
| 661 | |
| 662 // }}} | |
| 663 // {{{ testDecryptFileKeyNotFoundException() | |
| 664 | |
| 665 /** | |
| 666 * @expectedException Crypt_GPG_KeyNotFoundException | |
| 667 * | |
| 668 * @group file | |
| 669 */ | |
| 670 public function testDecryptFileKeyNotFoundException() | |
| 671 { | |
| 672 // file is encrypted with missing-key@example.com | |
| 673 $inputFilename = | |
| 674 $this->getDataFilename('testDecryptFileKeyNotFoundException.asc'); | |
| 675 | |
| 676 $outputFilename = | |
| 677 $this->getTempFilename('testDecryptFileKeyNotFoundException.plain'); | |
| 678 | |
| 679 $this->gpg->decryptFile($inputFilename, $outputFilename); | |
| 680 } | |
| 681 | |
| 682 // }}} | |
| 683 // {{{ testDecryptFileDual() | |
| 684 | |
| 685 /** | |
| 686 * @group file | |
| 687 */ | |
| 688 public function testDecryptFileDual() | |
| 689 { | |
| 690 $expectedMd5Sum = 'f96267d87551ee09bfcac16921e351c1'; | |
| 691 $inputFilename = $this->getDataFilename('testDecryptFileDual.asc'); | |
| 692 $outputFilename = $this->getTempFilename('testDecryptFileDual.plain'); | |
| 693 | |
| 694 // decrypt with first key | |
| 695 $this->gpg->addDecryptKey('first-keypair@example.com', 'test1'); | |
| 696 $this->gpg->decryptFile($inputFilename, $outputFilename); | |
| 697 $this->gpg->clearDecryptKeys(); | |
| 698 $md5Sum = $this->getMd5Sum($outputFilename); | |
| 699 $this->assertEquals($expectedMd5Sum, $md5Sum); | |
| 700 | |
| 701 // decrypt with second key | |
| 702 $this->gpg->addDecryptKey('second-keypair@example.com', 'test2'); | |
| 703 $this->gpg->decryptFile($inputFilename, $outputFilename); | |
| 704 $this->gpg->clearDecryptKeys(); | |
| 705 $md5Sum = $this->getMd5Sum($outputFilename); | |
| 706 $this->assertEquals($expectedMd5Sum, $md5Sum); | |
| 707 } | |
| 708 | |
| 709 // }}} | |
| 710 // {{{ testDecryptFileDualOnePassphrase() | |
| 711 | |
| 712 /** | |
| 713 * @group file | |
| 714 */ | |
| 715 public function testDecryptFileDualOnePassphrase() | |
| 716 { | |
| 717 $expectedMd5Sum = 'f96267d87551ee09bfcac16921e351c1'; | |
| 718 | |
| 719 $inputFilename = | |
| 720 $this->getDataFilename('testDecryptFileDualOnePassphrase.asc'); | |
| 721 | |
| 722 $outputFilename = | |
| 723 $this->getTempFilename('testDecryptFileDualOnePassphrase.plain'); | |
| 724 | |
| 725 // decrypt with no-passphrase | |
| 726 $this->gpg->decryptFile($inputFilename, $outputFilename); | |
| 727 $md5Sum = $this->getMd5Sum($outputFilename); | |
| 728 $this->assertEquals($expectedMd5Sum, $md5Sum); | |
| 729 | |
| 730 // decrypt with first key | |
| 731 $this->gpg->addDecryptKey('first-keypair@example.com', 'test1'); | |
| 732 $this->gpg->decryptFile($inputFilename, $outputFilename); | |
| 733 $this->gpg->clearDecryptKeys(); | |
| 734 $md5Sum = $this->getMd5Sum($outputFilename); | |
| 735 $this->assertEquals($expectedMd5Sum, $md5Sum); | |
| 736 } | |
| 737 | |
| 738 // }}} | |
| 739 // {{{ testDecryptFileNoDataException() | |
| 740 | |
| 741 /** | |
| 742 * @expectedException Crypt_GPG_NoDataException | |
| 743 * | |
| 744 * @group file | |
| 745 */ | |
| 746 public function testDecryptFileNoDataException() | |
| 747 { | |
| 748 $filename = $this->getDataFilename('testFileEmpty.plain'); | |
| 749 $this->gpg->decryptFile($filename); | |
| 750 } | |
| 751 | |
| 752 // }}} | |
| 753 // {{{ testDecryptFileSignedData() | |
| 754 | |
| 755 /** | |
| 756 * @group string | |
| 757 */ | |
| 758 public function testDecryptFileSignedData() | |
| 759 { | |
| 760 $expectedMd5Sum = 'f96267d87551ee09bfcac16921e351c1'; | |
| 761 | |
| 762 $inputFilename = | |
| 763 $this->getDataFilename('testVerifyFileNormalSignedData.asc'); | |
| 764 | |
| 765 $outputFilename = | |
| 766 $this->getTempFilename('testDecryptFileSignedData.plain'); | |
| 767 | |
| 768 $this->gpg->decryptFile($inputFilename, $outputFilename); | |
| 769 | |
| 770 $md5Sum = $this->getMd5Sum($outputFilename); | |
| 771 $this->assertEquals($expectedMd5Sum, $md5Sum); | |
| 772 } | |
| 773 | |
| 774 // }}} | |
| 775 } | |
| 776 | |
| 777 ?> |
