plugmate-secure-file-io.ino

TrustKernel PlugMate : Ordenador en miniatura USB-C seguro con PlugOS · Archivo : plugmate-secure-file-io.ino · Lenguaje : Kotlin · Uso : Écrire et lire des fichiers sensibles dans le stockage chiffré isolé du PlugMate.

Demuestra cómo usar el almacenamiento interno cifrado de Android 14 para guardar datos sensibles sin exponer las claves de cifrado al host.

PlugMate utiliza almacenamiento eMMC cifrado por hardware. Este código usa la API estándar de Kotlin/Android getFilesDir(). La aplicación debe estar firmada e instalada en el PlugMate vía ADB o la tienda interna. Los datos solo son accesibles por la propia aplicación debido al estricto aislamiento del sistema. No se necesita configuración de red para esta operación local.

plugmate-secure-file-io.ino

package com.trustkernel.plugmate.demo

import android.content.Context
import java.io.File
import java.io.FileOutputStream
import java.io.FileInputStream
import java.nio.charset.StandardCharsets

object SecureStorageDemo {
    /**
     * Écrit des données dans le répertoire privé de l'application.
     * Le stockage eMMC est chiffré au repos par PlugOS.
     */
    fun writeSecret(context: Context, filename: String, data: String) {
        try {
            // getFilesDir() pointe vers le sandbox chiffré de l'app
            val file = File(context.filesDir, filename)
            FileOutputStream(file).use { fos ->
                fos.write(data.toByteArray(StandardCharsets.UTF_8))
            }
            println("Données écrites avec succès dans le stockage chiffré.")
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }

    /**
     * Lit les données depuis le stockage chiffré.
     */
    fun readSecret(context: Context, filename: String): String? {
        val file = File(context.filesDir, filename)
        if (!file.exists()) return null

        return try {
            FileInputStream(file).bufferedReader().use { it.readText() }
        } catch (e: Exception) {
            e.printStackTrace()
            null
        }
    }
}

← Volver a la ficha