openssl aes api 記錄 [二] - windows 下使用openssl問題記錄


問題1(x509與Windows衝突)

  1. 現象描述:
    圖一:
    在這裏插入圖片描述
    這是報錯的地方,該文件爲 openssl/x509.h

    圖二:
    在這裏插入圖片描述
    F12可以看到, X509_NAME 指向了windows的頭文件定義。

  2. 解決方法:
    在CMakeLists.txt中添加宏 NOCRYPT,如下(看到網上有人說在wincrypt.h 中可以找到有關該宏的解釋,我沒有找到):

    cmake_minimum_required(VERSION 2.8)
    project(encrypt)
    
    FILE(GLOB_RECURSE SRCS ./src/*.cpp)
    
    add_executable(crypt ${SRCS})
    
    if (WIN32)
    include_directories(
    	${PROJECT_SOURCE_DIR}/include
    )
    endif (WIN32)
    
    target_link_libraries(model_crypt
    	${PROJECT_SOURCE_DIR}/lib/libcrypto.lib
    )
    
    add_definitions(-DNOCRYPT -D_CRT_SECURE_NO_WARNINGS)
    
    

問題二(EVP_CIPHER_CTX 不允許使用不完整的類型)

  1. 現象描述:
    在這裏插入圖片描述
    F12發現沒有找到 EVP_CIPHER_CTX 的定義。
  2. 解決方法:
    下載 openssl 源碼,源碼中找到 evp_locl.h,放入你的工程中。 evp_locl.h 中提供了 EVP_CIPHER_CTX 的定義。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章