对不起,如果这听起来很生硬,我仍然想问这个问题,因为我是libtorrent的新手。
我正在尝试使用libtorrent编写文件传输机制,但我在执行CMake Build
时遇到了这个有趣的错误:
CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES
OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
C:/Program Files (x86)/CMake/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:374 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files (x86)/CMake/share/cmake-3.2/Modules/FindOpenSSL.cmake:334 (find_package_handle_standard_args)
CMakeLists.txt:162 (FIND_PACKAGE)
错误很明白 - 我缺少依赖性,我可以安装它。但我想知道的是,使用libtorrent的torrent流量是否默认加密。我已经在我的程序中实现了加密方案,我不想加密已经加密的数据!
答案 0 :(得分:1)
如何加密以及在什么条件下这里很重要。我们假设您指的是bittorrent protocol encryption(加密可能有点误导,它实际上更加混淆)。
然后,是的,有时候。由于它实际上只是混淆,因此允许接受非加密的传入连接,同样,如果加密的传出连接失败(实际上是出于任何原因),它可能会以非加密模式重新连接。但是,您可以将libtorrent配置为不允许未加密的连接,请参阅pe_settings。请注意,仍然没有任何身份验证可言。基本上,洪流的信息哈希是关键。
那就是说,openssl与其中任何一个都无关。 Libtorrent内置支持RC4和Diffie-Hellman(来自libtomcrypt)。 OpenSSL只需要通过HTTPS和(不广泛支持的)扩展来与跟踪器通过SSL运行bittorrent(它确实在对等体之间提供适当的身份验证)。
此外,值得注意的是,跟踪器流量通常不加密。即使它是通过SSL完成的,跟踪器通常提供自签名证书(至少在我有限的经验中),因此通常在那里强制执行身份验证也是不切实际的。 / p>