2012-10-16 20 views
5

Tôi đã biên soạn OpenSSL với hỗ trợ cryptodev (tức là tăng tốc phần cứng), nhưng tiếc là công cụ mặc định vẫn là phần mềm.Làm cách nào tôi có thể định cấu hình công cụ phụ trợ mặc định của openssl?

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

mang lại số "đúng", nhưng ProFTP (cũng sử dụng OpenSSL) không hiển thị bất kỳ hiệu suất nào khi sử dụng (FTP Secure, FTPS, tuy nhiên bạn gọi nó).

Động cơ có hỗ trợ AES-128, AES-192, RC4, SHA-1, DES, Triple-DES và một vài loại khác.

/etc/ssl/openssl.cnf của tôi trông như thế này:

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

[engine_section] 
cryptodev = cryptodev_section 

[cryptodev_section] 
default_algorithms = ALL 

Tôi nhìn vào mã, nhưng họ làm những điều khó chịu với định nghĩa, định nghĩa lại, undefines, kết hợp với nguyên mẫu mà làm cho truy tìm một nỗi đau ...

Nếu ở trên là chính xác, những gì thường được gọi để khởi tạo các công cụ khi người dùng tạo ra CTX_SSL hoặc tương tự?

Trả lời

1

Theo OpenSSL's config(5): "Lệnh default_algorithms đặt thuật toán mặc định mà ENGINE sẽ cung cấp bằng hàm ENGINE_set_default_string()". Tôi không tin "ALL" là một công cụ hợp lệ. Bạn có thể thử chỉ định engine_id đến default_algorithms.


Nếu bạn đang làm điều này trong mã nguồn, thử gọi:

ENGINE_load_builtin_engines(); 

Tiếp theo

ENGINE_register_all_complete(); 

Nếu bạn có một ENGINE*, sau đó bạn có thể làm một cái gì đó như:

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

Tôi không biết bất kỳ tài liệu nào tốt về chủ đề này, nhưng tôi đã không kiểm tra sách của Viega, Massier và Chandra. Một vài người trong chúng tôi đã thảo luận về một trang thảo luận wiki OpenSSL cho Libcrypto API.

+0

Tôi đã cố khắc phục sự cố bằng cách sử dụng cấu hình, nhưng tôi quên cập nhật điều này và tôi không có quyền truy cập vào repo nữa mà chứa cấu hình, dù sao cũng rất tốt - phiên bản openssl cũ dường như không có 'ENGINE_set_default_ciphers' (từ http://forums.freebsd.org/showthread.php?t=7418). – drahnr

+0

Ở đó bạn cũng có thể thấy rằng 'ALL' phải hợp lệ. – drahnr

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