wasm openssl get dlopen abort



我遵守openssl1.1.1c在浏览器中进行一些加密和解密。这是我的构建脚本。emconfigure ./Configure linux-x32 -no-asm -no-threads

sed -i 's|^CROSS_COMPILE.*$|CROSS_COMPILE=|g' Makefile

emmake make -j 12 build_generated libssl.a libcrypto.a apps/openssl

我得到了两个位码文件libcrypto.solibssl.so,然后我在自己的代码中使用它。 这是我的CMkaeLists.txt:

include_directories("${OPENSSL_ROOT}/build/include")link_directories("${OPENSSL_ROOT}/lib")

set(CMAKE_C_FLAGS "--pre-js pre.js -s WASM=1 -s EXTRA_EXPORTED_RUNTIME_METHODS='["cwrap","getValue","setValue"]'"

SET(CMAKE_EXECUTABLE_SUFFIX ".html")

add_executable(SM2FinalNew main.c ${DIR_SRCS})

target_link_libraries(SM2FinalNew crypto)

当我使用sha256 base64时,一切都很好,但是当我使用某种方法实现sm2加密和解密时,网页上出现了错误。

SM2FinalNew.html:98 To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking

我发现当我在openssl/ec.h中调用EC_POINT_mul方法时,错误应用程序,当我注释EC_POINT_mul调用时,错误消失器,但加密结果不正确。 我不知道为什么。

看起来您正在编译的代码正在尝试使用dlopen加载外部库。 Emscripten 对共享库和动态链接的支持相当有限。 最好的办法是找到有问题的代码,并尝试静态链接所需的库。

相关内容

  • 没有找到相关文章

最新更新