plugmate-log-encryption-key-7.ino

TrustKernel PlugMate : Ordenador en miniatura USB-C seguro con PlugOS · Archivo : plugmate-log-encryption-key-7.ino · Lenguaje : python · Uso : Générer une clé de chiffrement AES-256 et la stocker de manière sécurisée dans le keystore Android.

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()

← Volver a la ficha