Sono in bilico tra l'uso di OpenSSL o NSS in un'applicazione Linux incorporata che utilizza un TPM (HSM).
EDIT: Ho bisogno di un server SSH e Apache che utilizza TLS, entrambi che usano le chiavi protette dal TPM.
Sto cercando di soddisfare i seguenti vincoli:
- Buon supporto di PKCS # 11 (almeno la gestione delle chiavi di curva ellittica)
- Non troppe dipendenze
- Compilazione incrociata
Per quanto ho potuto trovare, NSS supporta nativamente PKCS # 11, e OpenSSL ha bisogno di un motore esterno, libengine-pkcs11-openssl, che supporta solo chiavi RSA. Quindi una scelta OpenSSL mi porterebbe ad aggiungere funzionalità a questo motore. Ci sono altri motori PKCS11 disponibili per OpenSSL con un supporto migliore di questo?
Per quanto riguarda le dipendenze, NSS richiede Netscape Portable Runtime (NSPR). In totale, NSS e le sue dipendenze hanno 2,5 x più righe di codice di OpenSSL. Questo è uno svantaggio e forse un ostacolo allo spettacolo per le applicazioni incorporate, eccetto se parti di esso inutili per l'applicazione possono essere facilmente eliminate dalla compilazione tramite alcune definizioni. È possibile?
Riguardo alla compilazione incrociata, il confronto wikipedia afferma che NSS è macchinoso. Qualcuno ha un how-to per proporre o un link per favore?
Più in generale, i consigli di persone che hanno sperimentato uno o entrambi con un TPM sono i benvenuti.