detect is estkme card

This commit is contained in:
septs 2025-02-26 17:31:48 +08:00
parent f12f6ccaa2
commit 3913e2f5d4
Signed by: septs
SSH key fingerprint: SHA256:ElK0p6DNkbsqYUdJ3I9QHDVf21SQD0c2r+hd7s/r5Co

View file

@ -1,8 +1,10 @@
package im.angry.openeuicc.vendored
import android.util.Log
import im.angry.openeuicc.core.ApduInterfaceAtrProvider
import im.angry.openeuicc.util.TAG
import im.angry.openeuicc.util.decodeHex
import im.angry.openeuicc.util.encodeHex
import net.typeblog.lpac_jni.ApduInterface
data class ESTKmeInfo(
@ -12,7 +14,11 @@ data class ESTKmeInfo(
val skuName: String?,
)
fun isESTKmeATR(atr: ByteArray?): Boolean =
atr != null && atr.encodeHex().contains("estk.me".encodeToByteArray().encodeHex())
fun getESTKmeInfo(iface: ApduInterface): ESTKmeInfo? {
if (!isESTKmeATR((iface as ApduInterfaceAtrProvider?)?.atr)) return null
fun decode(b: ByteArray): String? {
if (b.size < 2) return null
if (b[b.size - 2] != 0x90.toByte() || b[b.size - 1] != 0x00.toByte()) return null