Files
reelbox/tool/test_release_signer.py

22 lines
1000 B
Python

"""Release identity verification must accept only the explicitly pinned signer."""
import unittest
from verify_apk import verified_signer
SHA = 'd684537f3637fde36c9e7b065b5acd78499c02d345c34bf87857b13ed1d8b87d'
class SignerTests(unittest.TestCase):
def test_authorized_replacement_key_has_its_actual_subject(self):
text = f'Signer #1 certificate DN: CN=Reelbox Release, OU=Reelbox\nSigner #1 certificate SHA-256 digest: {SHA}\n'
self.assertEqual(verified_signer(text, SHA), (SHA, 'CN=Reelbox Release, OU=Reelbox'))
def test_mismatched_or_debug_signer_is_rejected(self):
with self.assertRaises(AssertionError):
verified_signer(f'Signer #1 certificate DN: CN=Reelbox Release\nSigner #1 certificate SHA-256 digest: {SHA}', 'a' * 64)
with self.assertRaises(AssertionError):
verified_signer(f'Signer #1 certificate DN: CN=Android Debug\nSigner #1 certificate SHA-256 digest: {SHA}', SHA)
if __name__ == '__main__':
unittest.main()