diff --git a/tests/data/ssfs_npl_dat b/tests/data/ssfs_npl_dat new file mode 100644 index 0000000..ea5c733 Binary files /dev/null and b/tests/data/ssfs_npl_dat differ diff --git a/tests/data/ssfs_npl_key b/tests/data/ssfs_npl_key new file mode 100644 index 0000000..2884682 Binary files /dev/null and b/tests/data/ssfs_npl_key differ diff --git a/tests/sapssfs_test.py b/tests/sapssfs_test.py index 8d63707..76d9ae2 100755 --- a/tests/sapssfs_test.py +++ b/tests/sapssfs_test.py @@ -21,7 +21,7 @@ # External imports # Custom imports from tests.utils import data_filename -from pysap.SAPSSFS import (SAPSSFSKey, SAPSSFSData, SAPSSFSLock) +from pysap.SAPSSFS import (SAPSSFSKey, SAPSSFSKeyE, SAPSSFSData, SAPSSFSLock) class PySAPSSFSKeyTest(unittest.TestCase): @@ -145,6 +145,30 @@ def test_ssfs_data_record_decrypt(self): self.assertFalse(record.is_stored_as_plaintext) self.assertTrue(record.valid) +class PySAPSSFSDataDecryptETest(unittest.TestCase): + + ENCRYPTED_VALUES = {"RS/CIPHERTEXT_VAL": "hellow0rld"} + + def test_ssfs_data_record_decrypt(self): + """Test decrypting a record with a given key in a SSFS Data file.""" + + with open(data_filename("ssfs_npl_key"), "rb") as fd: + s = fd.read() + key = SAPSSFSKeyE(s) + + with open(data_filename("ssfs_npl_dat"), "rb") as fd: + s = fd.read() + data = SAPSSFSData(s) + + for name, value in self.ENCRYPTED_VALUES.items(): + self.assertTrue(data.has_record(name)) + self.assertIsNotNone(data.get_record(name)) + self.assertEqual(data.get_value(name, key), value) + + record = data.get_record(name) + self.assertFalse(record.is_stored_as_plaintext) + self.assertTrue(record.valid) + def test_suite(): loader = unittest.TestLoader()