diff options
Diffstat (limited to 'tests/core')
-rw-r--r-- | tests/core/re.chrysalide.tests.secstorage.gschema.xml | 15 | ||||
-rw-r--r-- | tests/core/secstorage.py | 150 |
2 files changed, 0 insertions, 165 deletions
diff --git a/tests/core/re.chrysalide.tests.secstorage.gschema.xml b/tests/core/re.chrysalide.tests.secstorage.gschema.xml deleted file mode 100644 index 6afa96b..0000000 --- a/tests/core/re.chrysalide.tests.secstorage.gschema.xml +++ /dev/null @@ -1,15 +0,0 @@ -<schemalist> - - <schema id="re.chrysalide.tests.secstorage" path="/re/chrysalide/tests/secstorage/"> - - <key name="salt" type="ay"> - <default>[]</default> - </key> - - <key name="master" type="ay"> - <default>[]</default> - </key> - - </schema> - -</schemalist> diff --git a/tests/core/secstorage.py b/tests/core/secstorage.py deleted file mode 100644 index 1f82388..0000000 --- a/tests/core/secstorage.py +++ /dev/null @@ -1,150 +0,0 @@ - -import gi -import os -import subprocess - -from chrysacase import ChrysalideTestCase -from pychrysalide import core -from gi.repository import Gio, GLib - - -class TestSecretStorage(ChrysalideTestCase): - """TestCase for secret storage features.""" - - @classmethod - def setUpClass(cls): - - super(TestSecretStorage, cls).setUpClass() - - cls.log('Creating GSettings schema...') - - path = os.path.dirname(os.path.realpath(__file__)) - - subprocess.run([ 'glib-compile-schemas', path ]) - - os.environ['GSETTINGS_SCHEMA_DIR'] = path + ':' + os.environ['GSETTINGS_SCHEMA_DIR'] - - - @classmethod - def tearDownClass(cls): - - super(TestSecretStorage, cls).tearDownClass() - - cls.log('Removing compiled GSettings schema...') - - os.environ['GSETTINGS_SCHEMA_DIR'] = ':'.join(os.environ['GSETTINGS_SCHEMA_DIR'].split(':')[1:]) - - path = os.path.dirname(os.path.realpath(__file__)) - - filename = os.path.join(path, 'gschemas.compiled') - - if os.path.exists(filename): - os.remove(filename) - - - def testMasterKeyDefinition(self): - """Check for cryptographic parameters for secret storage.""" - - settings = Gio.Settings.new('re.chrysalide.tests.secstorage') - - settings.reset('master') - - self.assertEqual(len(settings.get_value('master').unpack()), 0) - - self.assertFalse(core.has_secret_storage_key(settings)) - - settings.set_value('master', GLib.Variant('ay', b'ABC')) - - self.assertFalse(core.has_secret_storage_key(settings)) - - settings.set_value('master', GLib.Variant('ay', b'A' * 23)) - - self.assertTrue(core.has_secret_storage_key(settings)) - - - def testMasterKeyCreation(self): - """Create and update cryptographic parameters for secret storage.""" - - settings = Gio.Settings.new('re.chrysalide.tests.secstorage') - - settings.reset('salt') - settings.reset('master') - - status = core.has_secret_storage_key(settings) - - self.assertFalse(status); - - status = core.set_secret_storage_password(settings, '') - - self.assertTrue(status); - - status = core.has_secret_storage_key(settings) - - self.assertTrue(status); - - status = core.is_secret_storage_locked(settings) - - self.assertTrue(status) - - status = core.unlock_secret_storage(settings, '') - - self.assertTrue(status) - - status = core.is_secret_storage_locked(settings) - - self.assertFalse(status) - - core.lock_secret_storage(settings) - - status = core.is_secret_storage_locked(settings) - - self.assertTrue(status) - - status = core.unlock_secret_storage(settings, 'XXX') - - self.assertFalse(status) - - status = core.is_secret_storage_locked(settings) - - self.assertTrue(status) - - - def testDataEncryption(self): - """Create and update cryptographic parameters for secret storage.""" - - settings = Gio.Settings.new('re.chrysalide.tests.secstorage') - - settings.reset('salt') - settings.reset('master') - - status = core.set_secret_storage_password(settings, '<s3cUre>') - - self.assertTrue(status); - - status = core.unlock_secret_storage(settings, '<s3cUre>') - - self.assertTrue(status) - - - original = b'ABC' - - encrypted = core.encrypt_secret_storage_data(original, settings) - - self.assertIsNotNone(encrypted) - - plain = core.decrypt_secret_storage_data(encrypted, settings) - - self.assertIsNotNone(plain) - self.assertEqual(original, plain) - - - original = b'A' * 136 - - encrypted = core.encrypt_secret_storage_data(original, settings) - - self.assertIsNotNone(encrypted) - - plain = core.decrypt_secret_storage_data(encrypted, settings) - - self.assertIsNotNone(plain) - self.assertEqual(original, plain) |