C++ libtorrent传输是否默认加密?

C++ libtorrent传输是否默认加密?,c++,libtorrent,C++,Libtorrent,抱歉,如果这听起来很直白,我还是想问这个问题,因为我是libtorrent的新手。 我试图使用libtorrent编写一个文件传输机制,但在执行CMake构建时遇到了一个有趣的错误: CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:138 (message): Could NOT find OpenSSL, try to set th

抱歉,如果这听起来很直白,我还是想问这个问题,因为我是libtorrent的新手。 我试图使用libtorrent编写一个文件传输机制,但在执行
CMake构建时遇到了一个有趣的错误:

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流量是否默认加密。我已经在我的程序中实现了一个加密方案,我不想加密已经加密的数据

这里的加密方式和条件很重要。让我们假设您指的是(加密可能有点误导,它实际上更模糊)

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

也就是说,openssl与这些都无关。Libtorrent内置了对RC4和Diffie-Hellman的支持(来自libtomcrypt)。OpenSSL只需要通过HTTPS和(不受广泛支持的)扩展与跟踪器进行通信,就可以通过SSL运行bittorrent本身(它确实提供对等方之间的正确身份验证)

此外,可能值得注意的是,跟踪器流量通常不加密。即使是通过SSL进行认证,跟踪者也通常会提供自签名证书(至少在我有限的经验中是这样),因此通常在那里强制实施身份验证也不实际