是否加密了libtorrent转移?

时间:2015-06-26 19:08:58

标签: c++ libtorrent

对不起,如果这听起来很生硬,我仍然想问这个问题,因为我是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流量是否默认加密。我已经在我的程序中实现了加密方案,我不想加密已经加密的数据!

1 个答案:

答案 0 :(得分:1)

如何加密以及在什么条件下这里很重要。我们假设您指的是bittorrent protocol encryption(加密可能有点误导,它实际上更加混淆)。

然后,是的,有时候。由于它实际上只是混淆,因此允许接受非加密的传入连接,同样,如果加密的传出连接失败(实际上是出于任何原因),它可能会以非加密模式重新连接。但是,您可以将libtorrent配置为不允许未加密的连接,请参阅pe_settings。请注意,仍然没有任何身份验证可言。基本上,洪流的信息哈希是关键。

那就是说,openssl与其中任何一个都无关。 Libtorrent内置支持RC4和Diffie-Hellman(来自libtomcrypt)。 OpenSSL只需要通过HTTPS和(不广泛支持的)扩展来与跟踪器通过SSL运行bittorrent(它确实在对等体之间提供适当的身份验证)。

此外,值得注意的是,跟踪器流量通常不加密。即使它是通过SSL完成的,跟踪器通常提供自签名证书(至少在我有限的经验中),因此通常在那里强制执行身份验证也是不切实际的。 / p>