2012-10-16 8 views
5

Ho compilato OpenSSL con supporto cryptodev (ad es. Accelerazione hardware), ma sfortunatamente il motore predefinito è ancora software.Come posso configurare il motore di backend predefinito di openssl?

time openssl speed -evp aes-128-cbc -engine cryptodev 

cede il numero "giusto", ma ProFTP (che utilizza anche OpenSSL) non mostra alcun guadagno prestazioni quando viene utilizzato (Secure FTP, FTPS, comunque si chiami).

Il motore ha supporto per AES-128, AES-192, RC4, SHA-1, DES, Triple-DES e pochi altri.

mio /etc/ssl/openssl.cnf assomiglia a questo:

#... 
# a lot of generic stuff... 
#... 

[engine_section] 
cryptodev = cryptodev_section 

[cryptodev_section] 
default_algorithms = ALL 

ho guardato nel codice, ma lo fanno cose brutte con definisce, ridefinisce, non-definisce, in combinazione con i prototipi che rende tracciando un dolore ...

Se quanto sopra è corretto, quale routine viene chiamata per inizializzare i motori quando l'utente crea CTX_SSL o simili?

risposta

1

Secondo OpenSSL's config(5): "Il comando default_algorithms imposta gli algoritmi predefiniti che un MOTORE fornirà utilizzando le funzioni ENGINE_set_default_string()". Non credo che "TUTTI" sia un motore valido. Potresti provare a specificare lo engine_id su default_algorithms.


Se si sta facendo questo nel codice sorgente, provare a chiamare:

ENGINE_load_builtin_engines(); 

seguito da

ENGINE_register_all_complete(); 

Se avete un ENGINE*, allora si può fare qualcosa di simile:

ENGINE* eng = ENGINE_by_id("XXX"); 
ENGINE_set_default(eng, ENGINE_METHOD_ALL); 
OpenSSL_add_all_algorithms(); 

Non sono a conoscenza di alcuna buona documentazione sull'argomento, ma non ho controllato il libro di Viega, Massier e Chandra. Alcuni di noi stavano discutendo su una pagina di discussione wiki OpenSSL per Libcrypto API.

+0

Sono riuscito a sistemarlo solo con la configurazione, ma ho dimenticato di aggiornarlo e non ho più accesso al repository che contiene la configurazione, comunque un suggerimento molto buono - le vecchie versioni di openssl sembrano non avere il 'ENGINE_set_default_ciphers' (da http://forums.freebsd.org/showthread.php?t=7418). – drahnr

+0

Si può anche vedere che 'ALL' dovrebbe essere valido. – drahnr