plugmate-log-encryption-key-7.ino

TrustKernel PlugMate : Secure Miniature USB-C Computer running PlugOS · File : plugmate-log-encryption-key-7.ino · Language : python · Use case : Générer une clé de chiffrement AES-256 et la stocker de manière sécurisée dans le keystore Android.

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

← Back to the board