mirror of https://github.com/YTVanced/VancedMicroG
32 lines
1.3 KiB
Kotlin
32 lines
1.3 KiB
Kotlin
/*
|
|
* SPDX-FileCopyrightText: 2021 microG Project Team
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package org.microg.gms.droidguard.core
|
|
|
|
import android.util.Base64
|
|
import android.util.Log
|
|
import java.security.KeyFactory
|
|
import java.security.Signature
|
|
import java.security.spec.X509EncodedKeySpec
|
|
|
|
object SignatureVerifier {
|
|
const val TAG = "GmsGuardSigVerify"
|
|
const val PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxW77dCKJ8mhEIfXXdeidi7/7LMNM/fzwI+wj1Ed8xIKgTYWCnekRko3JxQb4Cv/gEL5hEA8e9lFs3V67VUL6hCo1FxysXj7Q8n3Kp7hARDkbiZ0mdk8bSanqrPAXTPx6pEL2ZOzfFCHEtJdhz5Ozp2C4XTKF1SBv/YbpsqSUJwdhG7ZPGjyCMRloMww6ITpGdVQ8lChklkCek0WPbz2UrY5RC1qIJKmmcB6KNxxE776Dn6QoYbhN5jPeVBp7lDD3UxjfVzTxKKDAome6fUVBop3dpcLM6rq3+nNT2YArgqTD1qtsVM9vHlcLaAYaPg82vtIN80iDUseMlVHgK+nf6wIDAQAB"
|
|
|
|
fun verifySignature(data: ByteArray, signature: ByteArray): Boolean {
|
|
try {
|
|
val keyFactory = KeyFactory.getInstance("RSA") ?: return false
|
|
val sig = Signature.getInstance("SHA256withRSA") ?: return false
|
|
val keySpec = X509EncodedKeySpec(Base64.decode(PUBLIC_KEY, 0))
|
|
sig.initVerify(keyFactory.generatePublic(keySpec))
|
|
sig.update(data)
|
|
return sig.verify(signature)
|
|
} catch (e: Exception) {
|
|
Log.w(TAG, e)
|
|
return false
|
|
}
|
|
}
|
|
}
|