summaryrefslogtreecommitdiff
path: root/src/leap/soledad/tests/test_encrypted.py
diff options
context:
space:
mode:
authordrebs <drebs@leap.se>2013-03-12 16:14:02 -0300
committerdrebs <drebs@leap.se>2013-03-12 16:14:02 -0300
commit708803f3a8b40263ccb3061e320010e35f218474 (patch)
treeb65307513f4a2966abc6e041e16580e1b4b335c8 /src/leap/soledad/tests/test_encrypted.py
parent1b7573280c5f6a8fc95170013cb7b29845e99a9e (diff)
Add test for _init_dirs().
Diffstat (limited to 'src/leap/soledad/tests/test_encrypted.py')
-rw-r--r--src/leap/soledad/tests/test_encrypted.py138
1 files changed, 0 insertions, 138 deletions
diff --git a/src/leap/soledad/tests/test_encrypted.py b/src/leap/soledad/tests/test_encrypted.py
deleted file mode 100644
index b4821cf4..00000000
--- a/src/leap/soledad/tests/test_encrypted.py
+++ /dev/null
@@ -1,138 +0,0 @@
-from leap.soledad.backends.leap_backend import LeapDocument
-from leap.soledad.tests import BaseSoledadTest
-from leap.soledad.tests import KEY_FINGERPRINT
-from leap.soledad import (
- Soledad,
- KeyAlreadyExists,
-)
-from leap.soledad.util import GPGWrapper
-
-try:
- import simplejson as json
-except ImportError:
- import json # noqa
-
-
-class EncryptedSyncTestCase(BaseSoledadTest):
- """
- Tests that guarantee that data will always be encrypted when syncing.
- """
-
- def test_get_set_encrypted_json(self):
- """
- Test getting and setting encrypted content.
- """
- doc1 = LeapDocument(soledad=self._soledad)
- doc1.content = {'key': 'val'}
- doc2 = LeapDocument(doc_id=doc1.doc_id,
- encrypted_json=doc1.get_encrypted_json(),
- soledad=self._soledad)
- res1 = doc1.get_json()
- res2 = doc2.get_json()
- self.assertEqual(res1, res2, 'incorrect document encryption')
-
- def test_successful_symmetric_encryption(self):
- """
- Test for successful symmetric encryption.
- """
- doc1 = LeapDocument(soledad=self._soledad)
- doc1.content = {'key': 'val'}
- enc_json = json.loads(doc1.get_encrypted_json())['_encrypted_json']
- self.assertEqual(
- True,
- self._soledad._gpg.is_encrypted_sym(enc_json),
- "could not encrypt with passphrase.")
-
-
-class RecoveryDocumentTestCase(BaseSoledadTest):
-
- def test_export_recovery_document_raw(self):
- rd = self._soledad.export_recovery_document(None)
- self.assertEqual(
- {
- 'user_email': self._soledad._user_email,
- 'privkey': self._soledad._gpg.export_keys(
- self._soledad._fingerprint,
- secret=True),
- 'symkey': self._soledad._symkey
- },
- json.loads(rd),
- "Could not export raw recovery document."
- )
-
- def test_export_recovery_document_crypt(self):
- rd = self._soledad.export_recovery_document('123456')
- self.assertEqual(True,
- self._soledad._gpg.is_encrypted_sym(rd))
- data = {
- 'user_email': self._soledad._user_email,
- 'privkey': self._soledad._gpg.export_keys(
- self._soledad._fingerprint,
- secret=True),
- 'symkey': self._soledad._symkey,
- }
- raw_data = json.loads(str(self._soledad._gpg.decrypt(
- rd,
- passphrase='123456')))
- self.assertEqual(
- raw_data,
- data,
- "Could not export raw recovery document."
- )
-
- def test_import_recovery_document_raises_exception(self):
- rd = self._soledad.export_recovery_document(None)
- self.assertRaises(KeyAlreadyExists,
- self._soledad.import_recovery_document, rd, None)
-
- def test_import_recovery_document_raw(self):
- rd = self._soledad.export_recovery_document(None)
- gnupg_home = self.gnupg_home = "%s/gnupg2" % self.tempdir
- s = Soledad('anotheruser@leap.se', gnupg_home=gnupg_home,
- bootstrap=False, prefix=self.tempdir)
- s._init_dirs()
- s._gpg = GPGWrapper(gnupghome=gnupg_home)
- s.import_recovery_document(rd, None)
- self.assertEqual(self._soledad._user_email,
- s._user_email, 'Failed setting user email.')
- self.assertEqual(self._soledad._symkey,
- s._symkey,
- 'Failed settinng secret for symmetric encryption.')
- self.assertEqual(self._soledad._fingerprint,
- s._fingerprint,
- 'Failed settinng fingerprint.')
- pk1 = self._soledad._gpg.export_keys(
- self._soledad._fingerprint,
- secret=True)
- pk2 = s._gpg.export_keys(s._fingerprint, secret=True)
- self.assertEqual(
- pk1,
- pk2,
- 'Failed settinng private key.'
- )
-
- def test_import_recovery_document_crypt(self):
- rd = self._soledad.export_recovery_document('123456')
- gnupg_home = self.gnupg_home = "%s/gnupg2" % self.tempdir
- s = Soledad('anotheruser@leap.se', gnupg_home=gnupg_home,
- bootstrap=False, prefix=self.tempdir)
- s._init_dirs()
- s._gpg = GPGWrapper(gnupghome=gnupg_home)
- s.import_recovery_document(rd, '123456')
- self.assertEqual(self._soledad._user_email,
- s._user_email, 'Failed setting user email.')
- self.assertEqual(self._soledad._symkey,
- s._symkey,
- 'Failed settinng secret for symmetric encryption.')
- self.assertEqual(self._soledad._fingerprint,
- s._fingerprint,
- 'Failed settinng fingerprint.')
- pk1 = self._soledad._gpg.export_keys(
- self._soledad._fingerprint,
- secret=True)
- pk2 = s._gpg.export_keys(s._fingerprint, secret=True)
- self.assertEqual(
- pk1,
- pk2,
- 'Failed settinng private key.'
- )