Skip to content

Commit 3ca71d0

Browse files
committed
update
1 parent 4542797 commit 3ca71d0

1 file changed

Lines changed: 22 additions & 18 deletions

File tree

  • FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp

FreeRASPDemoApp/app/src/main/java/com/aheaditec/talsec/demoapp/Utils.kt

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,47 +9,51 @@ import android.util.Base64
99
import java.security.MessageDigest
1010

1111
object Utils {
12-
13-
// Helper for obtaining your signing certificate hash used to initialize TalsecConfig
14-
fun computeSigningCertificateHash(context: Context): String {
15-
val packageInfo = context.packageManager.getPackageInfo(
16-
context.packageName,
17-
provideSignatureFlagsBaseOnSdk()
18-
)
19-
return getApkSigningCertificate(packageInfo)[0]
20-
}
2112

2213
private fun provideSignatureFlagsBaseOnSdk(): Int {
2314
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
2415
PackageManager.GET_SIGNING_CERTIFICATES
2516
} else {
17+
@Suppress("DEPRECATION")
2618
PackageManager.GET_SIGNATURES
2719
}
2820
}
2921

22+
/**
23+
* Computes the signing certificate hash of the current application.
24+
*
25+
* Returns a Base64-encoded SHA-256 hash of the app's signing certificate.
26+
* This value is used to initialize [TalsecConfig] for security validation.
27+
*
28+
* @param context The application context used to retrieve package information.
29+
* @return Base64-encoded SHA-256 hash of the first signing certificate.
30+
*/
31+
fun computeSigningCertificateHash(context: Context): String {
32+
val packageInfo = context.packageManager.getPackageInfo(
33+
context.packageName,
34+
provideSignatureFlagsBaseOnSdk()
35+
)
36+
return getApkSigningCertificate(packageInfo)[0]
37+
}
38+
3039
private fun getApkSigningCertificate(packageInfo: PackageInfo): List<String> {
3140
val signingHashes = mutableListOf<String>()
3241
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
3342
packageInfo.signingInfo?.apply {
3443
if (hasMultipleSigners()) {
3544
apkContentsSigners?.forEach {
36-
signingHashes.add(
37-
hashCertificate(it)
38-
)
45+
signingHashes.add(hashCertificate(it))
3946
}
4047
} else {
4148
signingCertificateHistory?.forEach {
42-
signingHashes.add(
43-
hashCertificate(it)
44-
)
49+
signingHashes.add(hashCertificate(it))
4550
}
4651
}
4752
}
4853
} else {
54+
@Suppress("DEPRECATION")
4955
packageInfo.signatures?.forEach {
50-
signingHashes.add(
51-
hashCertificate(it)
52-
)
56+
signingHashes.add(hashCertificate(it))
5357
}
5458
}
5559
return signingHashes

0 commit comments

Comments
 (0)