aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2024-01-15 15:21:47 +0100
committerHarald Welte <laforge@osmocom.org>2024-01-16 19:04:19 +0100
commit4f3d11b378b6b37f7e39b523652b0eaea052c955 (patch)
treef4bccab1a89a33d33468c4cd5a4ff558002c1f37 /tests
parentcd18ed0a82403bc8d4d36649d56bc5e5ee5676d4 (diff)
euicc: Implement EID checksum verification + computation
Diffstat (limited to 'tests')
-rwxr-xr-xtests/test_euicc.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/test_euicc.py b/tests/test_euicc.py
new file mode 100755
index 0000000..05d71ed
--- /dev/null
+++ b/tests/test_euicc.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python3
+
+import unittest
+
+from pySim.euicc import *
+
+class TestEid(unittest.TestCase):
+
+ def test_eid_verify(self):
+ for eid in ['89049032123451234512345678901235', '89086030202200000022000023022943',
+ '89044045116727494800000004479366', 89044045116727494800000004479366]:
+ self.assertTrue(verify_eid_checksum(eid))
+
+ def test_eid_verify_wrong(self):
+ self.assertFalse(verify_eid_checksum('89049032123451234512345678901234'))
+ self.assertFalse(verify_eid_checksum(89049032123451234512345678901234))
+
+ def test_eid_encode_with_32_digits(self):
+ self.assertEquals(compute_eid_checksum('89049032123451234512345678901200'), '89049032123451234512345678901235')
+ self.assertEquals(compute_eid_checksum('89086030202200000022000023022900'), '89086030202200000022000023022943')
+
+ def test_eid_encode_with_30digits(self):
+ self.assertEquals(compute_eid_checksum('890490321234512345123456789012'), '89049032123451234512345678901235')
+
+ def test_eid_encode_with_wrong_csum(self):
+ # input: EID with wrong checksum
+ self.assertEquals(compute_eid_checksum('89049032123451234512345678901299'), '89049032123451234512345678901235')
+ self.assertEquals(compute_eid_checksum(89049032123451234512345678901299), '89049032123451234512345678901235')
+
+if __name__ == "__main__":
+ unittest.main()