Add embedded file signature verification.

This commit is contained in:
Roberto Rosario
2016-03-23 13:03:48 -04:00
parent cd077cb076
commit 2f7c6ed0d9
5 changed files with 55 additions and 8 deletions
+13 -5
View File
@@ -1,11 +1,8 @@
from __future__ import unicode_literals
TEST_GPG_HOME = '/tmp/test_gpg_home'
TEST_KEY_FINGERPRINT = '6A24574E0A35004CDDFD22704125E9C571F378AC'
TEST_KEYSERVERS = ['pool.sks-keyservers.net']
import os
TEST_SEARCH_UID = 'Roberto Rosario'
TEST_SEARCH_FINGERPRINT = '607138F1AECC5A5CA31CB7715F3F7F75D210724D'
from django.conf import settings
TEST_KEY_DATA = '''-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: GnuPG v1
@@ -69,3 +66,14 @@ h4oCbUV5JHhOyB+89Y1w8haFU9LrgOER2kXff1xU6wMfLdcO5ApV/sRJcNdYL7Cg
TEST_KEY_ID = '4125E9C571F378AC'
TEST_KEY_FINGERPRINT = '6A24574E0A35004CDDFD22704125E9C571F378AC'
TEST_KEY_PASSPHRASE = 'testpassphrase'
TEST_KEYSERVERS = ['pool.sks-keyservers.net']
TEST_SEARCH_UID = 'Roberto Rosario'
TEST_SEARCH_FINGERPRINT = '607138F1AECC5A5CA31CB7715F3F7F75D210724D'
TEST_SIGNED_FILE = os.path.join(
settings.BASE_DIR, 'mayan', 'apps', 'django_gpg', 'tests', 'contrib',
'test_files', 'test_file.txt.gpg'
)
+16 -1
View File
@@ -2,11 +2,12 @@ from __future__ import unicode_literals
from django.test import TestCase
from ..exceptions import KeyDoesNotExist
from ..models import Key
from .literals import (
TEST_KEY_DATA, TEST_KEY_FINGERPRINT, TEST_SEARCH_FINGERPRINT,
TEST_SEARCH_UID
TEST_SEARCH_UID, TEST_SIGNED_FILE
)
@@ -31,3 +32,17 @@ class KeyTestCase(TestCase):
self.assertEqual(Key.objects.all().count(), 1)
self.assertEqual(Key.objects.first().fingerprint, TEST_SEARCH_FINGERPRINT)
def test_embedded_verification_no_key(self):
with open(TEST_SIGNED_FILE) as signed_file:
with self.assertRaises(KeyDoesNotExist):
Key.objects.verify_file(signed_file)
def test_embedded_verification_with_key(self):
Key.objects.create(key_data=TEST_KEY_DATA)
with open(TEST_SIGNED_FILE) as signed_file:
result = Key.objects.verify_file(signed_file)
self.assertTrue(result)
self.assertEqual(result.fingerprint, TEST_KEY_FINGERPRINT)