这是我的测试场景,应用程序:
A.Encryption lib - OpenSSL wrapper
B.Server-Socket lib - in includes A.
测试环境:
1. Server build on top of B
2. Light Client build on top of B
3. Large app + client build on top of B.
当我在1.和2.之间进行简单测试时,一切都很好。但是,当我在1.和3之间进行测试时,我得到了
在1.服务器上:
EVP_DecryptFinal_ex() failed error:02001003:system library:fopen:No such process
这是发送到服务器的初始请求-服务器错误。
在3.大型应用程序上:
EVP_DecryptFinal_ex() failed error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt
这是服务器的答复,该请求或多或少由于加密/解密失败而导致请求失败-应用程序错误。
在所有3个应用程序的cmake中,我都按如下所示导入它
SET(OPENSSL_ROOT_DIR ${OpenSSLLibPath})
find_package(OpenSSL)
if (OPENSSL_FOUND)
MESSAGE("STATUS" "FOUND openSSL")
MESSAGE("STATUS" "OPENSSL_INCLUDE_DIR : " ${OPENSSL_INCLUDE_DIR})
MESSAGE("STATUS" "OPENSSL_DIR : " ${OPENSSL_ROOT_DIR})
MESSAGE(${OPENSSL_VERSION})
set(OPENSSL_USE_STATIC_LIBS TRUE)
endif ()
+ include_dir
${OPENSSL_INCLUDE_DIRS}
...+more
+include_libs
OpenSSL::SSL
OpenSSL::Crypto
${OPENSSL_CRYPTO_LIBRARY}
${OPENSSL_SSL_LIBRARY}
${OPENSSL_LIBRARIES}
...+more
版本等匹配。
我完全不知道如何解决此问题。我检查了种子密钥和其他值,我比较了tcp套接字传输前后的原始数据(以字节为单位)以及所有其他内容。我不明白为什么简单的应用程序(1. + 2。)和较大的应用程序(1. + 3。)不起作用。我只能附带一些疯狂的宏,或更改字节顺序或类似内容的配置。但是我很迷茫。
any1可以暗示所有关于查找内容的信息吗?好像我以某种方式更改了配置,OpenSSL变成了香蕉。
大型应用程序正在使用许多库,Qt,OpenSSL,OpenCV,OpenGL,OpenMP,Assimp,Freeimage等 TIA。