2013-01-23 28 views
7

Các tài liệu nóiKhông hiểu OpenSSL_add_all_algorithms phương pháp

OpenSSL giữ một bảng nội bộ tiêu hóa thuật toán và thuật toán mã hóa. Nó sử dụng bảng này để tra cứu mật mã thông qua các hàm như EVP_get_cipher_byname().

OpenSSL_add_all_digests() thêm tất cả thuật toán thông báo vào bảng.

Câu hỏi của tôi là, bảng này được lưu ở đâu? Làm thế nào để mã của tôi biết rằng phương pháp này đã thực hiện? ... làm thế nào nó hoạt động trong nội bộ, nếu tôi muốn kết nối SSL nhiều hơn và một để có tất cả các tiêu hóa được thêm vào và một không? Có ai biết bất kỳ tài liệu nào tốt về điều này không?

Cảm ơn bạn

Trả lời

7

Jones Lang LaSalle Hotels phần của trang hướng dẫn khá nhiều tiền nó lên:

Một ứng dụng điển hình sẽ gọi OpenSSL_add_all_algorithms() ban đầu và EVP_cleanup() trước khi thoát.

Các thuật toán mã hóa và tiêu hóa chức năng tra cứu được sử dụng ở nhiều nơi trên thư viện. Nếu bảng không được khởi tạo, một số chức năng sẽ hoạt động sai và phàn nàn rằng chúng không thể tìm thấy các thuật toán. Điều này bao gồm các thư viện PEM, PKCS # 12, SSL và S/MIME. Đây là một truy vấn phổ biến trong danh sách gửi thư OpenSSL.

Vì vậy, giả định rằng bạn đang viết một ứng dụng điển hình, bạn sẽ thêm video này vào mã khởi OpenSSL của bạn:

OpenSSL_add_all_algorithms(); 

và điều này vào mã dọn dẹp OpenSSL:

EVP_cleanup(); 

và bạn đã xong. Bạn luôn chịu trách nhiệm tự gọi những ứng dụng này sử dụng OpenSSL. Nếu bạn muốn biết OpenSSL lưu trữ bảng nội bộ như thế nào, use the source, Luke.

Để kiểm soát mật mã nào có sẵn cho ngữ cảnh SSL cụ thể, bạn sẽ sử dụng SSL_CTX_set_cipher_list.

Để có tài liệu hướng dẫn tốt hơn trang hướng dẫn sử dụng, tôi có thể đề xuất "Network Security with OpenSSL" by John Viega, Matt Messier & Pravir Chandra. Cuốn sách cũ và không bao gồm các phiên bản OpenSSL mới hơn, nhưng hầu hết nó vẫn còn rất áp dụng.

+0

cảm ơn bạn đã trả lời –

+0

Cảm ơn bạn đã giới thiệu sách. – Sabuncu

Các vấn đề liên quan