0
|
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 ?>
|