Mercurial > hg > rc1
comparison vendor/pear/crypt_gpg/tests/ImportKeyTest.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 * Key import 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 ImportKeyTestCase | |
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-2008 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 key import 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 ImportKeyTestCase extends Crypt_GPG_TestCase | |
59 { | |
60 // set up | |
61 // {{{ setUp() | |
62 | |
63 public function setUp() | |
64 { | |
65 parent::setUp(); | |
66 | |
67 // In GnuPG 2.1 first operation on a keyring in v1 format | |
68 // will cause format update and several IMPORT_OK responses | |
69 // This way we clean the state first | |
70 $this->gpg->getKeys(); | |
71 } | |
72 | |
73 // }}} | |
74 // {{{ testImportKey_private() | |
75 | |
76 /** | |
77 * @group string | |
78 */ | |
79 public function testImportKey_private() | |
80 { | |
81 // Note: Some of GnuPG 2.1.x versions return different private_imported | |
82 // and private_uchanged values, bug? GnuPG 2.1.15 returns 1 as expected. | |
83 | |
84 $expectedResult = array( | |
85 'fingerprint' => 'F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB', | |
86 'fingerprints' => array('F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB'), | |
87 'public_imported' => 0, | |
88 'public_unchanged' => 1, | |
89 'private_imported' => 1, | |
90 'private_unchanged' => 0 | |
91 ); | |
92 | |
93 // {{{ private key data | |
94 $privateKeyData = <<<TEXT | |
95 -----BEGIN PGP PRIVATE KEY BLOCK----- | |
96 Version: GnuPG v1.4.6 (GNU/Linux) | |
97 | |
98 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 | |
126 NN5B7Vl2JdxBuwWJrdfUb9UQzw== | |
127 =51qc | |
128 -----END PGP PRIVATE KEY BLOCK----- | |
129 | |
130 TEXT; | |
131 // }}} | |
132 | |
133 $result = $this->gpg->importKey($privateKeyData); | |
134 $this->assertEquals($expectedResult, $result); | |
135 } | |
136 | |
137 // }}} | |
138 // {{{ testImportKey_public() | |
139 | |
140 /** | |
141 * @group string | |
142 */ | |
143 public function testImportKey_public() | |
144 { | |
145 $expectedResult = array( | |
146 'fingerprint' => '948F9835FF09F5F91CFF2AC1268AB7103435E65D', | |
147 'fingerprints' => array('948F9835FF09F5F91CFF2AC1268AB7103435E65D'), | |
148 'public_imported' => 1, | |
149 'public_unchanged' => 0, | |
150 'private_imported' => 0, | |
151 'private_unchanged' => 0 | |
152 ); | |
153 | |
154 // {{{ public key data | |
155 $publicKeyData = <<<TEXT | |
156 -----BEGIN PGP PUBLIC KEY BLOCK----- | |
157 Version: GnuPG v1.4.6 (GNU/Linux) | |
158 | |
159 mQGiBEjS+PgRBADbDdRN9iwESSyJvjnfgk7ZWUYKdHdSER7yJ0aM4LQjVDdw9y/f | |
160 QGidipXxVD2lW28gRtzcmLufxv3DzjZp83VaXvlJs9jbTtHDIYFyDW9kH1HTRbZT | |
161 WKWfuInd0AXzHy5o77qQ+mW0AIXbyke5suSHdvcmv1hiWI9OnXcIHpmavwCgt4Hm | |
162 +j3FpRo9qs4fJM887c796qUD/iPkStU9sM/0KCJFZNaPCGBaamCEi7UoAHNlim+B | |
163 dv3rfSQ2VcDRq9/3GoCEJ2c62XpgQxt79mojJLdWZsTWvr6ESnWOm7W6GIjv/Zc3 | |
164 +OXgi7QdH5nwpZl6kBMkuzZxczFuwh9dqlXml+bND0JawS38MvQpDUkwMb592v5U | |
165 i9WIBADBacg6nixiTR+4kaHFE1Ww8QxT+vQ4S1SOx47cm8R6FxTRQA7FvK+vMxCt | |
166 Ps9GOzhjrCgIoF/6X10IZ7qB5jCYIH+kvHrp90ZbNwJ4pIa7phCPhqUF9mEyMbC2 | |
167 AEIGp/Aw26yXKskQJJ3vFji+VaeCui21sXjg5EHfoayt79xT8bRfRXh0ZXJuYWwg | |
168 UHVibGljIEtleSAoZG8gbm90IGVuY3J5cHQgaW1wb3J0YW50IGRhdGEgd2l0aCB0 | |
169 aGlzIGtleSkgPGV4dGVybmFsLXB1YmxpY0BleGFtcGxlLmNvbT6IYAQTEQIAIAUC | |
170 SNL4+AIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJECaKtxA0NeZdqHwAn3AF | |
171 EEhX1Tyba0ovCV2DwUytKM0CAKCnu6VzRy1Y8jp9fiy3ScwmaCI3FbkCDQRI0vj8 | |
172 EAgArBRh0YpPhE1vvKoPuhGDa//96YqrYt9rmBo3AR1WmF3CKtspjXdOK2bCqdJh | |
173 H6kaoNi+0Ors00n2NfPj9Am2cTV3h2/KpAWOxQGfkmpzU3xXTVCUo/HoKDXIfWqk | |
174 /TPXRqbwFV489GRBtVov4IoZM0KqZXhaFD6cXBsEl/BVSvVdBqmBzUoJ2bOzYiSW | |
175 eg/ml65jbtxjDYMbxTLi7xRcTSAsareoN6/PcbAvcCE5UeCMu8p52wxHOTrAkI4/ | |
176 6elpziVpIGn07zJb//4qIoZdhIzwfsMl73tPfdoL9jEC66SiWAN+BEDxceGR5E15 | |
177 2WsT5tkxuz/pQUC1L3JW4WCC/wADBwf8CsevcPsk2XxT2XZj0lfmAOuhXxuqBczW | |
178 TXCimnRxvC8+uAacv1RgVRH6emW3BVjt0dr9vwRT0n54JA+7ZwXVMOo4/tqNwmJs | |
179 C6SThBXGBQxEaZwv19WC58DjblbvYa81cUaXrUdHi1OyoHwgalx0xZQ57IUXW6+7 | |
180 qdLRfzyqbDBph9ogB0ta3AhSikAqqYImTrI650v/KWBLjrI+N925r0TvnfSOsru7 | |
181 JrftccY2LntVnQUcXjuaFViZ7y8ocW8f92zmGj2zUN8z2GsMKiGQtNNmoX51TcQl | |
182 sJPsZF0RKduVkNUQa9cfzSIMjjhUSzspA2qHLUKafrS3e38s2Y4CNIhJBBgRAgAJ | |
183 BQJI0vj8AhsMAAoJECaKtxA0NeZdOFQAn15X+eYzFgVERrFkddsHvAE00OnSAJ9h | |
184 A7Lcv7M+9WeZ6cjeHkZfLB6LLA== | |
185 =AV/P | |
186 -----END PGP PUBLIC KEY BLOCK----- | |
187 | |
188 TEXT; | |
189 // }}} | |
190 | |
191 $result = $this->gpg->importKey($publicKeyData); | |
192 $this->assertEquals($expectedResult, $result); | |
193 } | |
194 | |
195 // }}} | |
196 // {{{ testImportKeyAlreadyImported_private() | |
197 | |
198 /** | |
199 * @group string | |
200 */ | |
201 public function testImportKeyAlreadyImported_private() | |
202 { | |
203 // {{{ private key data | |
204 $privateKeyData = <<<TEXT | |
205 -----BEGIN PGP PRIVATE KEY BLOCK----- | |
206 Version: GnuPG v1.4.6 (GNU/Linux) | |
207 | |
208 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 | |
236 NN5B7Vl2JdxBuwWJrdfUb9UQzw== | |
237 =51qc | |
238 -----END PGP PRIVATE KEY BLOCK----- | |
239 | |
240 TEXT; | |
241 // }}} | |
242 | |
243 $result = $this->gpg->importKey($privateKeyData); | |
244 | |
245 $expectedResult = array( | |
246 'fingerprint' => 'F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB', | |
247 'fingerprints' => array('F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB'), | |
248 'public_imported' => 0, | |
249 'public_unchanged' => 1, | |
250 'private_imported' => 1, | |
251 'private_unchanged' => 0 | |
252 ); | |
253 | |
254 $this->assertEquals($expectedResult, $result); | |
255 | |
256 $result = $this->gpg->importKey($privateKeyData); | |
257 | |
258 $expectedResult = array( | |
259 'fingerprint' => 'F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB', | |
260 'fingerprints' => array('F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB'), | |
261 'public_imported' => 0, | |
262 'public_unchanged' => version_compare($this->gpg->getVersion(), '2.1.0', 'ge') ? 1 : 0, | |
263 'private_imported' => 0, | |
264 'private_unchanged' => 1, | |
265 ); | |
266 | |
267 $this->assertEquals($expectedResult, $result); | |
268 } | |
269 | |
270 // }}} | |
271 // {{{ testImportKeyAlreadyImported_public() | |
272 | |
273 /** | |
274 * @group string | |
275 */ | |
276 public function testImportKeyAlreadyImported_public() | |
277 { | |
278 // {{{ public key data | |
279 $publicKeyData = <<<TEXT | |
280 -----BEGIN PGP PUBLIC KEY BLOCK----- | |
281 Version: GnuPG v1.4.6 (GNU/Linux) | |
282 | |
283 mQGiBEjS+PgRBADbDdRN9iwESSyJvjnfgk7ZWUYKdHdSER7yJ0aM4LQjVDdw9y/f | |
284 QGidipXxVD2lW28gRtzcmLufxv3DzjZp83VaXvlJs9jbTtHDIYFyDW9kH1HTRbZT | |
285 WKWfuInd0AXzHy5o77qQ+mW0AIXbyke5suSHdvcmv1hiWI9OnXcIHpmavwCgt4Hm | |
286 +j3FpRo9qs4fJM887c796qUD/iPkStU9sM/0KCJFZNaPCGBaamCEi7UoAHNlim+B | |
287 dv3rfSQ2VcDRq9/3GoCEJ2c62XpgQxt79mojJLdWZsTWvr6ESnWOm7W6GIjv/Zc3 | |
288 +OXgi7QdH5nwpZl6kBMkuzZxczFuwh9dqlXml+bND0JawS38MvQpDUkwMb592v5U | |
289 i9WIBADBacg6nixiTR+4kaHFE1Ww8QxT+vQ4S1SOx47cm8R6FxTRQA7FvK+vMxCt | |
290 Ps9GOzhjrCgIoF/6X10IZ7qB5jCYIH+kvHrp90ZbNwJ4pIa7phCPhqUF9mEyMbC2 | |
291 AEIGp/Aw26yXKskQJJ3vFji+VaeCui21sXjg5EHfoayt79xT8bRfRXh0ZXJuYWwg | |
292 UHVibGljIEtleSAoZG8gbm90IGVuY3J5cHQgaW1wb3J0YW50IGRhdGEgd2l0aCB0 | |
293 aGlzIGtleSkgPGV4dGVybmFsLXB1YmxpY0BleGFtcGxlLmNvbT6IYAQTEQIAIAUC | |
294 SNL4+AIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJECaKtxA0NeZdqHwAn3AF | |
295 EEhX1Tyba0ovCV2DwUytKM0CAKCnu6VzRy1Y8jp9fiy3ScwmaCI3FbkCDQRI0vj8 | |
296 EAgArBRh0YpPhE1vvKoPuhGDa//96YqrYt9rmBo3AR1WmF3CKtspjXdOK2bCqdJh | |
297 H6kaoNi+0Ors00n2NfPj9Am2cTV3h2/KpAWOxQGfkmpzU3xXTVCUo/HoKDXIfWqk | |
298 /TPXRqbwFV489GRBtVov4IoZM0KqZXhaFD6cXBsEl/BVSvVdBqmBzUoJ2bOzYiSW | |
299 eg/ml65jbtxjDYMbxTLi7xRcTSAsareoN6/PcbAvcCE5UeCMu8p52wxHOTrAkI4/ | |
300 6elpziVpIGn07zJb//4qIoZdhIzwfsMl73tPfdoL9jEC66SiWAN+BEDxceGR5E15 | |
301 2WsT5tkxuz/pQUC1L3JW4WCC/wADBwf8CsevcPsk2XxT2XZj0lfmAOuhXxuqBczW | |
302 TXCimnRxvC8+uAacv1RgVRH6emW3BVjt0dr9vwRT0n54JA+7ZwXVMOo4/tqNwmJs | |
303 C6SThBXGBQxEaZwv19WC58DjblbvYa81cUaXrUdHi1OyoHwgalx0xZQ57IUXW6+7 | |
304 qdLRfzyqbDBph9ogB0ta3AhSikAqqYImTrI650v/KWBLjrI+N925r0TvnfSOsru7 | |
305 JrftccY2LntVnQUcXjuaFViZ7y8ocW8f92zmGj2zUN8z2GsMKiGQtNNmoX51TcQl | |
306 sJPsZF0RKduVkNUQa9cfzSIMjjhUSzspA2qHLUKafrS3e38s2Y4CNIhJBBgRAgAJ | |
307 BQJI0vj8AhsMAAoJECaKtxA0NeZdOFQAn15X+eYzFgVERrFkddsHvAE00OnSAJ9h | |
308 A7Lcv7M+9WeZ6cjeHkZfLB6LLA== | |
309 =AV/P | |
310 -----END PGP PUBLIC KEY BLOCK----- | |
311 | |
312 TEXT; | |
313 // }}} | |
314 | |
315 $result = $this->gpg->importKey($publicKeyData); | |
316 | |
317 $expectedResult = array( | |
318 'fingerprint' => '948F9835FF09F5F91CFF2AC1268AB7103435E65D', | |
319 'fingerprints' => array('948F9835FF09F5F91CFF2AC1268AB7103435E65D'), | |
320 'public_imported' => 1, | |
321 'public_unchanged' => 0, | |
322 'private_imported' => 0, | |
323 'private_unchanged' => 0 | |
324 ); | |
325 | |
326 $this->assertEquals($expectedResult, $result); | |
327 | |
328 $result = $this->gpg->importKey($publicKeyData); | |
329 | |
330 $expectedResult = array( | |
331 'fingerprint' => '948F9835FF09F5F91CFF2AC1268AB7103435E65D', | |
332 'fingerprints' => array('948F9835FF09F5F91CFF2AC1268AB7103435E65D'), | |
333 'public_imported' => 0, | |
334 'public_unchanged' => 1, | |
335 'private_imported' => 0, | |
336 'private_unchanged' => 0 | |
337 ); | |
338 | |
339 $this->assertEquals($expectedResult, $result); | |
340 } | |
341 | |
342 // }}} | |
343 // {{{ testImportKeyNoDataException_invalid() | |
344 | |
345 /** | |
346 * @expectedException Crypt_GPG_NoDataException | |
347 * | |
348 * @group string | |
349 */ | |
350 public function testImportKeyNoDataException_invalid() | |
351 { | |
352 $keyData = 'Invalid OpenPGP data.'; | |
353 $this->gpg->importKey($keyData); | |
354 } | |
355 | |
356 // }}} | |
357 // {{{ testImportKeyNoDataException_empty() | |
358 | |
359 /** | |
360 * @expectedException Crypt_GPG_NoDataException | |
361 * | |
362 * @group string | |
363 */ | |
364 public function testImportKeyNoDataException_empty() | |
365 { | |
366 $keyData = ''; | |
367 $this->gpg->importKey($keyData); | |
368 } | |
369 | |
370 // }}} | |
371 // {{{ testImportKeyFile_private() | |
372 | |
373 /** | |
374 * @group file | |
375 */ | |
376 public function testImportKeyFile_private() | |
377 { | |
378 $expectedResult = array( | |
379 'fingerprint' => 'F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB', | |
380 'fingerprints' => array('F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB'), | |
381 'public_imported' => 0, | |
382 'public_unchanged' => 1, | |
383 'private_imported' => 1, | |
384 'private_unchanged' => 0 | |
385 ); | |
386 | |
387 $filename = $this->getDataFilename('testImportKeyFile_private.asc'); | |
388 $result = $this->gpg->importKeyFile($filename); | |
389 | |
390 $this->assertEquals($expectedResult, $result); | |
391 } | |
392 | |
393 // }}} | |
394 // {{{ testImportKeyFile_public() | |
395 | |
396 /** | |
397 * @group file | |
398 */ | |
399 public function testImportKeyFile_public() | |
400 { | |
401 $expectedResult = array( | |
402 'fingerprint' => '948F9835FF09F5F91CFF2AC1268AB7103435E65D', | |
403 'fingerprints' => array('948F9835FF09F5F91CFF2AC1268AB7103435E65D'), | |
404 'public_imported' => 1, | |
405 'public_unchanged' => 0, | |
406 'private_imported' => 0, | |
407 'private_unchanged' => 0 | |
408 ); | |
409 | |
410 $filename = $this->getDataFilename('testImportKeyFile_public.asc'); | |
411 $result = $this->gpg->importKeyFile($filename); | |
412 | |
413 $this->assertEquals($expectedResult, $result); | |
414 } | |
415 | |
416 // }}} | |
417 // {{{ testImportKeyFileAlreadyImported_private() | |
418 | |
419 /** | |
420 * @group file | |
421 */ | |
422 public function testImportKeyFileAlreadyImported_private() | |
423 { | |
424 $filename = $this->getDataFilename('testImportKeyFile_private.asc'); | |
425 $result = $this->gpg->importKeyFile($filename); | |
426 | |
427 $expectedResult = array( | |
428 'fingerprint' => 'F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB', | |
429 'fingerprints' => array('F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB'), | |
430 'public_imported' => 0, | |
431 'public_unchanged' => 1, | |
432 'private_imported' => 1, | |
433 'private_unchanged' => 0 | |
434 ); | |
435 | |
436 $this->assertEquals($expectedResult, $result); | |
437 | |
438 $result = $this->gpg->importKeyFile($filename); | |
439 | |
440 $expectedResult = array( | |
441 'fingerprint' => 'F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB', | |
442 'fingerprints' => array('F83118CB6F5892DC1C3E936DABA81EF54E8C0DEB'), | |
443 'public_imported' => 0, | |
444 'public_unchanged' => version_compare($this->gpg->getVersion(), '2.1.0', 'ge') ? 1 : 0, | |
445 'private_imported' => 0, | |
446 'private_unchanged' => 1, | |
447 ); | |
448 | |
449 $this->assertEquals($expectedResult, $result); | |
450 } | |
451 | |
452 // }}} | |
453 // {{{ testImportKeyFileAlreadyImported_public() | |
454 | |
455 /** | |
456 * @group file | |
457 */ | |
458 public function testImportKeyFileAlreadyImported_public() | |
459 { | |
460 $filename = $this->getDataFilename('testImportKeyFile_public.asc'); | |
461 $result = $this->gpg->importKeyFile($filename); | |
462 | |
463 $expectedResult = array( | |
464 'fingerprint' => '948F9835FF09F5F91CFF2AC1268AB7103435E65D', | |
465 'fingerprints' => array('948F9835FF09F5F91CFF2AC1268AB7103435E65D'), | |
466 'public_imported' => 1, | |
467 'public_unchanged' => 0, | |
468 'private_imported' => 0, | |
469 'private_unchanged' => 0 | |
470 ); | |
471 | |
472 $this->assertEquals($expectedResult, $result); | |
473 | |
474 $result = $this->gpg->importKeyFile($filename); | |
475 | |
476 $expectedResult = array( | |
477 'fingerprint' => '948F9835FF09F5F91CFF2AC1268AB7103435E65D', | |
478 'fingerprints' => array('948F9835FF09F5F91CFF2AC1268AB7103435E65D'), | |
479 'public_imported' => 0, | |
480 'public_unchanged' => 1, | |
481 'private_imported' => 0, | |
482 'private_unchanged' => 0 | |
483 ); | |
484 | |
485 $this->assertEquals($expectedResult, $result); | |
486 } | |
487 | |
488 // }}} | |
489 // {{{ testImportKeyFileFileException() | |
490 | |
491 /** | |
492 * @expectedException Crypt_GPG_FileException | |
493 * | |
494 * @group file | |
495 */ | |
496 public function testImportKeyFileFileException() | |
497 { | |
498 // input file does not exist | |
499 $filename = | |
500 $this->getDataFilename('testImportKeyFileFileException.asc'); | |
501 | |
502 $this->gpg->importKeyFile($filename); | |
503 } | |
504 | |
505 // }}} | |
506 // {{{ testImportKeyFileNoDataException() | |
507 | |
508 /** | |
509 * @expectedException Crypt_GPG_NoDataException | |
510 * | |
511 * @group file | |
512 */ | |
513 public function testImportKeyFileNoDataException() | |
514 { | |
515 $filename = $this->getDataFilename('testFileEmpty.plain'); | |
516 $this->gpg->importKeyFile($filename); | |
517 } | |
518 | |
519 // }}} | |
520 } | |
521 | |
522 ?> |