summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Voisin2022-09-12 00:13:58 +0200
committerGitHub2022-09-12 00:13:58 +0200
commitb4188deaf0e0632464fd5b912b391fa4fb28d7dd (patch)
treebaedf41bc961db9c6d8781063f948ecf17b54dfb
parentefd728a73ab6c6ed6d0ae289c74bacdc5aba48d8 (diff)
parentc1803dfd5b9137a512bd0ac0b533808d4d8620b2 (diff)
Extract more details about the certificate
-rw-r--r--karton/android/android.py22
-rw-r--r--setup.py4
-rw-r--r--tests/test_android.py45
3 files changed, 59 insertions, 12 deletions
diff --git a/karton/android/android.py b/karton/android/android.py
index 7eb8790..79035e4 100644
--- a/karton/android/android.py
+++ b/karton/android/android.py
@@ -24,18 +24,36 @@ class Android(Karton):
24 return 24 return
25 25
26 metadata = { 26 metadata = {
27 "package": [a.package],
28 "activities": sorted(a.get_activities()), 27 "activities": sorted(a.get_activities()),
29 "main_activity": [a.get_main_activity()], 28 "main_activity": [a.get_main_activity()],
29 "package": [a.package.strip()],
30 "permissions": sorted(a.get_permissions()), 30 "permissions": sorted(a.get_permissions()),
31 } 31 }
32 32
33 app_name = a.get_app_name().strip()
34 if app_name:
35 metadata["app_name"] = [app_name]
36
33 if a.is_signed() or a.is_signed_v3(): 37 if a.is_signed() or a.is_signed_v3():
34 certs = a.get_certificates() 38 certs = a.get_certificates()
35 if len(certs): 39 if len(certs):
36 cert = certs[0] 40 cert = certs[0]
37 sha1_cert = cert.sha1_fingerprint.replace(" ", "") 41 sha1_cert = cert.sha1_fingerprint.replace(" ", "")
38 metadata["certificate"] = [sha1_cert] 42 cert_validity = cert["tbs_certificate"]["validity"]
43 not_before_raw = cert_validity["not_before"]
44 not_before = not_before_raw.native.strftime("%b %-d %X %Y %Z")
45 not_after_raw = cert_validity["not_after"]
46 not_after = not_after_raw.native.strftime("%b %-d %X %Y %Z")
47 metadata.update(
48 {
49 "certificate": [sha1_cert],
50 "certificate_issuer": [cert.issuer.human_friendly],
51 "certificate_not_after": [not_after],
52 "certificate_not_before": [not_before],
53 "certificate_serial": [cert.serial_number],
54 "certificate_subject": [cert.subject.human_friendly],
55 }
56 )
39 57
40 self.send_task( 58 self.send_task(
41 Task( 59 Task(
diff --git a/setup.py b/setup.py
index 56423ab..7334e05 100644
--- a/setup.py
+++ b/setup.py
@@ -25,9 +25,7 @@ setup(
25 include_package_data=True, 25 include_package_data=True,
26 install_requires=open("requirements.txt").read().splitlines(), 26 install_requires=open("requirements.txt").read().splitlines(),
27 entry_points={ 27 entry_points={
28 'console_scripts': [ 28 "console_scripts": ["karton-android=karton.android:Android.main"],
29 'karton-android=karton.android:Android.main'
30 ],
31 }, 29 },
32 classifiers=[ 30 classifiers=[
33 "Programming Language :: Python", 31 "Programming Language :: Python",
diff --git a/tests/test_android.py b/tests/test_android.py
index fa98426..c299d12 100644
--- a/tests/test_android.py
+++ b/tests/test_android.py
@@ -23,13 +23,44 @@ class AndroidMagicTestCase(KartonTestCase):
23 }, 23 },
24 payload={ 24 payload={
25 "sample": sample, 25 "sample": sample,
26 'attributes': { 26 "attributes": {
27 "certificate": ["61ED377E85D386A8DFEE6B864BD85B0BFAA5AF81"], 27 "certificate": ["61ED377E85D386A8DFEE6B864BD85B0BFAA5AF81"],
28 "main_activity": ["com.example.android.contactmanager..ContactManager"], 28 "main_activity": [
29 "package": ["com.example.android.contactmanager"], 29 "com.example.android.contactmanager..ContactManager"
30 "activities": ["com.example.android.contactmanager..ContactManager", "com.example.android.contactmanager.ContactAdder"], 30 ],
31 "permissions": ["android.permission.GET_ACCOUNTS", "android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS"], 31 "package": ["com.example.android.contactmanager"],
32 } 32 "activities": [
33 "com.example.android.contactmanager..ContactManager",
34 "com.example.android.contactmanager.ContactAdder",
35 ],
36 "permissions": [
37 "android.permission.GET_ACCOUNTS",
38 "android.permission.READ_CONTACTS",
39 "android.permission.WRITE_CONTACTS",
40 ],
41 "certificate_not_after": ["Jul 17 01:33:46 2035 UTC"],
42 "certificate_serial": [10623618503190643167],
43 "certificate_subject": [
44 "Email Address: android@android.com,"
45 " Common Name: Android,"
46 " Organizational Unit: Android,"
47 " Organization: Android,"
48 " Locality: Mountain View,"
49 " State/Province: California,"
50 " Country: US"
51 ],
52 "certificate_not_before": ["Feb 29 01:33:46 2008 UTC"],
53 "certificate_issuer": [
54 "Email Address: android@android.com,"
55 " Common Name: Android,"
56 " Organizational Unit: Android,"
57 " Organization: Android,"
58 " Locality: Mountain View,"
59 " State/Province: California,"
60 " Country: US"
61 ],
62 "app_name": ["Contact Manager"],
63 },
33 }, 64 },
34 ) 65 )
35 task = Task( 66 task = Task(