|
11 | 11 |
|
12 | 12 | class VerifierTestCase(MyTest):
|
13 | 13 |
|
| 14 | + CRX_FILE = os.path.join(EXAMPLE_EXTENSION_DIR, EXAMPLE_EXTENSION_NAME + '.crx') |
| 15 | + PUBLIC_KEY_FILE = os.path.join(EXAMPLE_EXTENSION_DIR, EXAMPLE_EXTENSION_NAME + '-public-key.pem') |
| 16 | + PUBLIC_KEY_HASH = '99ec6d34093cd254def8c05e5fd5b25ebfef20f97d976eceba28b970da7d81b9' |
| 17 | + |
14 | 18 | def test_01_verify_ok_full(self):
|
15 |
| - crx_file = os.path.join(EXAMPLE_EXTENSION_DIR, EXAMPLE_EXTENSION_NAME + '.crx') |
16 |
| - public_key_file = os.path.join(EXAMPLE_EXTENSION_DIR, EXAMPLE_EXTENSION_NAME + '-public-key.pem') |
17 |
| - verifier_result, header_info = verifier.verify(crx_file) |
| 19 | + verifier_result, header_info = verifier.verify(self.CRX_FILE) |
18 | 20 | # print(verifier_result, header_info)
|
19 | 21 | self.assertEqual(verifier_result, verifier.VerifierResult.OK_FULL)
|
20 |
| - public_key = read_public_key_str(public_key_file) |
| 22 | + public_key = read_public_key_str(self.PUBLIC_KEY_FILE) |
21 | 23 | self.assertEqual(header_info, verifier.CrxHeaderInfo(EXAMPLE_EXTENSION_CRX_ID, public_key))
|
22 | 24 |
|
23 | 25 | def test_02_verify_error_file_not_readable(self):
|
@@ -46,6 +48,19 @@ def test_04_verify_error_signature_verification_failed(self):
|
46 | 48 | self.assertEqual(verifier_result, verifier.VerifierResult.ERROR_SIGNATURE_VERIFICATION_FAILED)
|
47 | 49 | self.assertEqual(header_info, None)
|
48 | 50 |
|
| 51 | + def test_05_verify_ok_full_with_required_key_hashes(self): |
| 52 | + verifier_result, header_info = verifier.verify(self.CRX_FILE, [self.PUBLIC_KEY_HASH]) |
| 53 | + # print(verifier_result, header_info) |
| 54 | + self.assertEqual(verifier_result, verifier.VerifierResult.OK_FULL) |
| 55 | + public_key = read_public_key_str(self.PUBLIC_KEY_FILE) |
| 56 | + self.assertEqual(header_info, verifier.CrxHeaderInfo(EXAMPLE_EXTENSION_CRX_ID, public_key)) |
| 57 | + |
| 58 | + def test_06_verify_fail_for_required_key_hashes(self): |
| 59 | + verifier_result, header_info = verifier.verify(self.CRX_FILE, ['0' * 64]) |
| 60 | + # print(verifier_result, header_info) |
| 61 | + self.assertEqual(verifier_result, verifier.VerifierResult.ERROR_REQUIRED_PROOF_MISSING) |
| 62 | + self.assertEqual(header_info, None) |
| 63 | + |
49 | 64 |
|
50 | 65 | if __name__ == '__main__':
|
51 | 66 | unittest.main()
|
0 commit comments