zoukankan      html  css  js  c++  java
  • Qt中使用OpenSSL

    1、新建测试OpenSSL的工程

    1.1 在源码路径下新建libs和openssl文件夹

    1.2 按照“Windows平台源码编译OpenSSL”编译出OpenSSL动态库

    copy libcrypto-1_1.dl和libssl-1_1.dll到libs文件夹下

    copy openssl-1.1.1k/include目录到openssl文件夹下

    2、配置工程.pro文件

    2.1 添加库引用

    win32: LIBS += -L$$PWD/libs/ -llibcrypto-1_1 -llibssl-1_1
    

      

    2.2 添加头文件路径

    INCLUDEPATH += $$PWD/openssl/include
    

    3、编写代码

    #include <openssl/ssl.h>
    #include <openssl/err.h>
    #include <openssl/opensslv.h>
    #include <openssl/crypto.h>
    
    int main(int argc, char *argv[])
    {
        SSL_library_init();
        SSL_load_error_strings();
        SSL_CTX *ctx = SSL_CTX_new(SSLv23_client_method());
    
        log_info("OPENSSL_VERSION_NUMBER: %X", OPENSSL_VERSION_NUMBER);
        log_info("SSLeay(): %X", SSLeay());
        log_info("SSLeay_version(SSLEAY_VERSION): %X", SSLeay_version(SSLEAY_VERSION));
        log_info("SSLeay_version(SSLEAY_CFLAGS): %X", SSLeay_version(SSLEAY_CFLAGS));
        log_info("SSLeay_version(SSLEAY_BUILT_ON): %X", SSLeay_version(SSLEAY_BUILT_ON));
        log_info("SSLeay_version(SSLEAY_PLATFORM): %X", SSLeay_version(SSLEAY_PLATFORM));
        log_info("SSLeay_version(SSLEAY_DIR): %X", SSLeay_version(SSLEAY_DIR));
    
        return 0;
    }
    

    编译,运行:

    4、故障排查

    error: aggregate 'EVP_CIPHER_CTX ctx' has incomplete type and cannot be defined EVP_CIPHER_CTX ctx;

    原因:使用的OpenSSL版本不支持"EVP_CIPHER_CTX ctx"这种方式;

    解决:EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new()

  • 相关阅读:
    python数据结构树和二叉树简介
    python双向链表的实现
    Python单向链表的实现
    栈和队列数据结构的基本概念及其相关的Python实现
    模型融合目录
    算法汇总目录
    一个完整的机器学习目录
    python基础-面向对象opp
    Python random模块
    python-字符串前面添加u,r,b的含义
  • 原文地址:https://www.cnblogs.com/rockyching2009/p/14989873.html
Copyright © 2011-2022 走看看