plugmate-log-encryption-key-7.ino
Script Python Android que usa el Keystore de hardware para una clave AES-256-GCM.
Ejemplo Java-Python vía JNI/Chaquopy. PlugMate tiene un TEE (ZoneSecure) para almacenamiento de claves. Este código solo funciona en una aplicación Android incrustada compilada para Android 14. Requiere permisos de seguridad adecuados y compilación con 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()