@@ -9,47 +9,51 @@ import android.util.Base64
99import java.security.MessageDigest
1010
1111object 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