I miei requisiti sono:
Requisito 1: condividi la chiave pubblica sul server java.
Passi:
- Genera chiavi pubbliche-private nell'app per iOS.
- Salva le chiavi generate nel portachiavi.
- Invia la chiave pubblica generata al server java.
- Il server Java deve essere in grado di memorizzare la chiave pubblica condivisa nel database.
Requisito 2: archivia la chiave pubblica inviata dal server java.
Passi:
- Il server Java invia la chiave pubblica di un altro utente.
- Elabora i dati inviati dal server java e genera la chiave pubblica da esso.
- Memorizza la chiave generata nel portachiavi, che può essere successivamente recuperata per crittografare il messaggio da trasferire.
Sono in grado di raggiungere i passaggi 1-2 del requisito 1 utilizzando il metodo descritto di seguito nella classe SecKeyWrapper (esempio CommonCrypto):
- (void)generateKeyPair:(NSUInteger)keySize
Domanda 1: Ora il problema è - come devo inviare quella chiave al server java?
Abbiamo il metodo getPublicKeyBits
nella stessa classe, che restituisce un oggetto NSData, su alcuni google ho scoperto che è in formato codificato DER.
Domanda 2: Se invio lo stesso oggetto NSData al server, che suppongo interpreterà come oggetto ByteBuffer, sarà possibile per altri dispositivi, nel mio caso potrebbe essere Android, per interpretare quei dati?
Domanda 3: Qual è il modo migliore per condividere la chiave pubblica negli scenari sopra riportati?