Cercherò di rispondere a quello che - al momento della stesura - capisco sono le tue domande:
La crittografia è indipendente dalla piattaforma, quindi non importa quale piattaforma sta inviando un messaggio crittografato finché il mittente e il destinatario aderiscono allo stesso protocollo.
Per quanto riguarda lo scambio di chiavi: Diciamo che hai i dispositivi A e B, entrambi appartenenti alla stessa identità, I. Ora, dovrei avere accesso ai messaggi tramite A e B. Questo significa che ogni messaggio è essere crittografato con la chiave (A) e la chiave (B) - o quella chiave (A) = la chiave (B).
Nel primo caso, non ci si può fidare del fatto che il server non aggiunga in modo trasparente un terzo dispositivo sotto il loro controllo all'elenco delle chiavi per I, cioè la chiave (C). Questo potrebbe sollevare alcune sopracciglia con il mittente, ma poiché hanno il controllo dell'interfaccia utente e per quello - non importa.
Nel secondo caso, è possibile condividere le chiavi stabilendo un canale di comunicazione sicuro per trasmettere la chiave, ad esempio visualizzando un codice QR su A e scansionandolo con B in un ambiente sicuro.
In entrambi i casi, poiché l'interfaccia utente e la logica potrebbero essere closed source o potresti non eseguire il binario per il quale hai fonti (potrebbe essere corretto prima della consegna), non puoi essere certo che A e B trasmettano tutte le chiavi note a li al server mentre stai messaggiando via.
Si riduce a: lo scambio di chiavi è un problema risolvibile per questo scenario - il software fidato non lo è. O fai o non fai e usa il tuo software sotto il tuo controllo, aderendo allo stesso protocollo.
Quanto a chi chiede l'implementazione e i dettagli di progettazione per un prodotto specifico: non lo so; potrebbe non essere divulgato. E se lo fosse, se stai diffidando del fornitore, perché fidarti di quello che dicono?