2013-01-23 10 views
7

Dont'anlamak dokümantasyonOpenSSL_add_all_algorithms yöntemi

OpenSSL algoritmalar ve şifrelere sindirmek bir iç tablo tutar söylüyor. Bu tablo, EVP_get_cipher_byname() gibi işlevler aracılığıyla cipher aramak için kullanır.

OpenSSL_add_all_digests() tablonun tüm özet algoritmalarını ekler.

Sorum şu, bu tablo nerede depolanıyor? Kodum bu yöntemin nasıl yürütüldüğünü biliyor mu? ... nasıl dahili olarak çalışıyor, ne daha fazla SSL bağlantısı istiyorsam ve bir tanesi tüm sindirimleri eklediyse ne yapmalıyım? Bunun için iyi bir dokümantasyon bilen var mı?

size

cevap

7

manuel sayfanın NOTLAR bölümüne ederiz hemen hemen özetliyor:

Tipik bir uygulama çıkmadan önce() başlangıçta ve EVP_cleanup() OpenSSL_add_all_algorithms arayacak.

ve

şifre ve sindirimi arama fonksiyonları kütüphane bir çok yerinde kullanılmıştır. Tablo başlatılmamışsa, çeşitli işlevler yanlış davranacak ve şikâyetçi bulamıyorlar. Bu PEM, PKCS # 12, SSL ve S/MIME kitaplıklarını içerir. Bu, OpenSSL posta listelerinde genel bir sorgudur.

Yani, kendi OpenSSL başlatma koduna bu katacak tipik bir uygulama yazıyorsanız varsayarak:

EVP_cleanup(); 

ve: OpenSSL temizleme koduna

OpenSSL_add_all_algorithms(); 

ve bu yapılır. OpenSSL kullanan uygulamalarda bunları kendiniz aramaktan her zaman sorumlusunuz. OpenSSL'nin tabloyu dahili olarak nasıl sakladığını öğrenmek isterseniz, use the source, Luke.

Belirli bir SSL bağlamı için hangi şifrelerini kullanabileceğinizi kontrol etmek için SSL_CTX_set_cipher_list kullanırsınız.

El kitabından daha iyi belgelere gelince, "Network Security with OpenSSL" by John Viega, Matt Messier & Pravir Chandra'u önerebilirim. Kitap eski ve OpenSSL'nin daha yeni sürümlerini kapsamıyor, ancak çoğu hala çok uygulanabilir.

+0

Yanıtladığınız için teşekkürler –

+0

Kitap önerisi için teşekkürler. – Sabuncu