plugmate-secure-http-client.ino

TrustKernel PlugMate : Ordenador en miniatura USB-C seguro con PlugOS · Archivo : plugmate-secure-http-client.ino · Lenguaje : Kotlin · Uso : Effectuer une requête HTTPS sécurisée via le réseau emprunté de l'hôte.

Ilustra el acceso de red saliente seguro desde el entorno aislado de PlugMate, utilizando la conectividad del host a través del canal USB-C.

PlugMate no tiene módem interno; usa la red del host. Este código usa HttpsURLConnection estándar. Asegúrese de que el cliente host esté autorizado a compartir la conexión. El firewall de PlugOS bloquea los puertos no autorizados por defecto. Los certificados raíz son gestionados por el sistema operativo Android 14 endurecido.

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

← Volver a la ficha