plugmate-secure-http-client.ino

TrustKernel PlugMate : Ordinateur miniature USB-C sécurisé sous PlugOS · Fichier : plugmate-secure-http-client.ino · Langage : Kotlin · Usage : Effectuer une requête HTTPS sécurisée via le réseau emprunté de l'hôte.

Illustre l'accès réseau sortant sécurisé depuis l'environnement isolé du PlugMate, utilisant la connectivité de l'hôte via le canal USB-C.

Le PlugMate n'a pas de modem interne ; il utilise le réseau de l'hôte. Ce code utilise HttpsURLConnection standard. Assurez-vous que le client hôte est autorisé à partager la connexion. Le pare-feu PlugOS bloque les ports non autorisés par défaut. Les certificats racine sont gérés par le système d'exploitation Android 14 durci.

plugmate-secure-http-client.ino

package com.trustkernel.plugmate.demo

import java.net.HttpURLConnection
import java.net.URL
import javax.net.ssl.HttpsURLConnection
import javax.net.ssl.SSLContext
import javax.net.ssl.TrustManagerFactory
import java.security.KeyStore
import java.io.BufferedReader
import java.io.InputStreamReader

object SecureNetworkDemo {
    /**
     * Effectue une GET HTTPS vers une API sécurisée.
     * Le trafic est chiffré TLS et passe par le tunnel USB-C vers l'hôte.
     */
    fun fetchSecureData(apiUrl: String): String? {
        var connection: HttpURLConnection? = null
        return try {
            val url = URL(apiUrl)
            connection = url.openConnection() as HttpsURLConnection
            
            // Configuration TLS standard (Android 14 gère les CA système)
            connection.requestMethod = "GET"
            connection.connectTimeout = 5000
            connection.readTimeout = 5000
            
            val responseCode = connection.responseCode
            if (responseCode == HttpURLConnection.HTTP_OK) {
                BufferedReader(InputStreamReader(connection.inputStream)).use { reader ->
                    val response = StringBuilder()
                    var line: String?
                    while (reader.readLine().also { line = it } != null) {
                        response.append(line)
                    }
                    response.toString()
                }
            } else {
                null
            }
        } catch (e: Exception) {
            e.printStackTrace()
            null
        } finally {
            connection?.disconnect()
        }
    }
}

← Retour à la fiche