plugmate-secure-http-client.ino
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()
}
}
}