L'ho già chiesto su Stack Overflow, qui . Mi è stato detto che potrei trovare le risposte qui.
L'ho già chiesto su Stack Overflow, qui . Mi è stato detto che potrei trovare le risposte qui.
Due cose:
(Forse leggermente fuori tema). Non sono sicuro di iOS, ma su OSX, CFStream, CFNetwork e così via consentono all'applicazione di utilizzare una chiave privata nel KeyChain senza mai accedere al suo contenuto. Ad esempio, se devi autenticare un sito con un certificato client, è il livello OS / Portachiavi che gestirà la firma usando la chiave privata e poi passerà l'handle "TLS" all'applicazione.
In un certo senso, rende le chiavi più sicure, dato che gli utenti non devono fidarsi tanto dell'applicazione: anche se usa la tua chiave privata quando glielo permetti, non sarà mai in grado di fare una copia di esso (e forse inviarlo a un sito canaglia). (Si noti che questo dipende da varie opzioni di configurazione, ovviamente, dato che si è anche in grado di fornire il contenuto della chiave privata all'applicazione, se richiesto, e consentito dall'utente).
Per quanto ne so, OpenSSL non è integrato con il sistema operativo in questo modo (quindi il processo di applicazione deve essere in grado di ottenere la chiave privata se vuole usarlo).