plugmate-log-encryption-key-7.ino
Script Python Android utilisant le Keystore matériel pour une clé AES-256-GCM.
Exemple Java-Python via JNI/Chaquopy. Le PlugMate dispose d'un TEE (ZoneSecure) pour le stockage de clés. Ce code ne fonctionne que dans une application Android embarquée compilée pour Android 14. Nécessite les permissions de sécurité appropriées et la compilation avec l'API Android.
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()