plugmate-log-encryption-key-7.ino
Python Android script using Hardware Keystore for AES-256-GCM key.
Java-Python example via JNI/Chaquopy. PlugMate has a TEE (ZoneSecure) for key storage. This code only works in an embedded Android app compiled for Android 14. Requires appropriate security permissions and Android API compilation.
plugmate-log-encryption-key-7.ino
import jnius_config
import os
# Configuration pour accéder aux classes Java/Android depuis Python (via Chaquopy ou Jython si dispo)
# Note : Le PlugMate utilise Android 14, le stockage sécurisé est via KeyStore
import android
from android.content import Context
from android.security import KeyGenParameterSpec
from android.security import KeyGenerator
from java.security import KeyStore
def generate_secure_key():
context = android.activity.getApplicationContext()
keyStore = KeyStore.getInstance("AndroidKeyStore")
keyStore.load(None)
alias = "PlugMateAppKey"
if not keyStore.containsAlias(alias):
keyGen = KeyGenerator.getInstance("AES", "AndroidKeyStore")
spec = KeyGenParameterSpec.Builder(alias,
KeyGenParameterSpec.PURPOSE_ENCRYPT | KeyGenParameterSpec.PURPOSE_DECRYPT)
.setBlockModes(KeyGenParameterSpec.GCM)
.setEncryptionPaddings(KeyGenParameterSpec.ENCRYPTION_NO_PADDING)
.setKeySize(256)
.build()
keyGen.init(spec)
keyGen.generateKey()
print("Clé AES-256-GCM générée dans le Hardware Keystore")
else:
print("Clé existante détectée")
if __name__ == "__main__":
generate_secure_key()