Skip to content

Commit ba3e25e

Browse files
committed
Add SHA-256 signature to App Details screen
1 parent 139f095 commit ba3e25e

File tree

7 files changed

+30
-3
lines changed

7 files changed

+30
-3
lines changed

app/src/main/java/sk/styk/martin/apkanalyzer/ui/appdetail/page/certificate/AppCertificateDetailsFragmentViewModel.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,14 @@ class AppCertificateDetailsFragmentViewModel @AssistedInject constructor(
4040
),
4141
DetailInfoAdapter.DetailInfo(
4242
TextInfo.from(R.string.cert_md5),
43-
TextInfo.from(data.certificateHash),
43+
TextInfo.from(data.certificateHashMd5),
4444
TextInfo.from(R.string.cert_md5_description),
4545
),
46+
DetailInfoAdapter.DetailInfo(
47+
TextInfo.from(R.string.cert_sha256),
48+
TextInfo.from(data.certificateHashSha256),
49+
TextInfo.from(R.string.cert_sha256_description),
50+
),
4651
data.issuerName?.let {
4752
DetailInfoAdapter.DetailInfo(
4853
TextInfo.from(R.string.issuer_name),

app/src/main/res/values-ja/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@
124124
<string name="start_date">開始 : </string>
125125
<string name="end_date">有効期限 : </string>
126126
<string name="cert_md5">MD5証明書</string>
127+
<string name="cert_sha256">SHA-256証明書</string>
127128
<string name="issuer_name">発行者名</string>
128129
<string name="issuer_organization">発行組織</string>
129130
<string name="issuer_country">発行国</string>
@@ -135,6 +136,7 @@
135136
<string name="start_date_description">証明書の有効期間の開始</string>
136137
<string name="end_date_description">証明書の有効期間の終了</string>
137138
<string name="cert_md5_description">証明書のMD5ハッシュ</string>
139+
<string name="cert_sha256_description">証明書のSHA-256ハッシュ</string>
138140
<string name="issuer_name_description">証明書の発行者の名前</string>
139141
<string name="issuer_organization_description">証明書の組織の名前</string>
140142
<string name="issuer_country_description">証明書の発行国の名前</string>

app/src/main/res/values-zh-rTW/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@
189189
<string name="start_date">有效日期</string>
190190
<string name="end_date">截止日期</string>
191191
<string name="cert_md5">MD5 憑證</string>
192+
<string name="cert_sha256">SHA-256 憑證</string>
192193
<string name="issuer_name">發行者名稱</string>
193194
<string name="issuer_organization">發行機構</string>
194195
<string name="issuer_country">發行國家</string>
@@ -201,6 +202,7 @@
201202
<string name="start_date_description">憑證生效起始日期。</string>
202203
<string name="end_date_description">憑證效力截止日期。</string>
203204
<string name="cert_md5_description">憑證的 MD5 雜湊值。</string>
205+
<string name="cert_sha256_description">憑證的 SHA-256 雜湊值。</string>
204206
<string name="issuer_name_description">憑證發行者名稱。</string>
205207
<string name="issuer_organization_description">憑證發行機構名稱。</string>
206208
<string name="issuer_country_description">發行憑證的國家代號。</string>

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@
153153
<string name="start_date">Valid from</string>
154154
<string name="end_date">Valid to</string>
155155
<string name="cert_md5">Certificate MD5</string>
156+
<string name="cert_sha256">Certificate SHA-256</string>
156157
<string name="issuer_name">Issuer name</string>
157158
<string name="issuer_organization">Issuer organization</string>
158159
<string name="issuer_country">Issuer country</string>
@@ -164,6 +165,7 @@
164165
<string name="start_date_description">Start of validity period of the certificate.</string>
165166
<string name="end_date_description">End of validity period of the certificate.</string>
166167
<string name="cert_md5_description">MD5 hash of the certificate.</string>
168+
<string name="cert_sha256_description">SHA-256 hash of the certificate.</string>
167169
<string name="issuer_name_description">Name of issuer of the certificate</string>
168170
<string name="issuer_organization_description">Name of organization of issuer of the certificate</string>
169171
<string name="issuer_country_description">Country of issuer of the certificate</string>

core/app-analysis-core/src/main/java/sk/styk/martin/apkanalyzer/core/appanalysis/CertificateManager.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@ class CertificateManager @Inject internal constructor(private val digestManager:
2323

2424
CertificateData(
2525
signAlgorithm = certificate.sigAlgName,
26-
certificateHash = digestManager.md5Digest(certificate.encoded),
26+
certificateHashMd5 = digestManager.md5Digest(certificate.encoded),
27+
certificateHashSha256 = digestManager.md5Digest(certificate.encoded),
2728
publicKeyMd5 = digestManager.md5Digest(digestManager.byteToHexString(certificate.publicKey.encoded)),
29+
publicKeySha256 = digestManager.sha256Digest(digestManager.byteToHexString(certificate.publicKey.encoded)),
2830
startDate = certificate.notBefore,
2931
endDate = certificate.notAfter,
3032
serialNumber = certificate.serialNumber.toInt(),

core/app-analysis-core/src/main/java/sk/styk/martin/apkanalyzer/core/appanalysis/model/CertificateData.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ import java.util.Date
1010
@Parcelize
1111
data class CertificateData(
1212
val signAlgorithm: String,
13-
val certificateHash: String,
13+
val certificateHashMd5: String,
14+
val certificateHashSha256: String,
1415
val publicKeyMd5: String,
16+
val publicKeySha256: String,
1517
val startDate: Date,
1618
val endDate: Date,
1719
val serialNumber: Int = 0,

core/common/src/main/java/sk/styk/martin/apkanalyzer/core/common/digest/DigestManager.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,18 @@ class DigestManager @Inject constructor() {
2020
return getHexString(digest.digest())
2121
}
2222

23+
fun sha256Digest(input: ByteArray): String {
24+
val digest = getDigest("SHA-256")
25+
digest.update(input)
26+
return getHexString(digest.digest())
27+
}
28+
29+
fun sha256Digest(input: String): String {
30+
val digest = getDigest("SHA-256")
31+
digest.update(input.toByteArray())
32+
return getHexString(digest.digest())
33+
}
34+
2335
fun byteToHexString(bArray: ByteArray): String {
2436
val sb = StringBuilder(bArray.size)
2537
val var5 = bArray.size

0 commit comments

Comments
 (0)