zoukankan      html  css  js  c++  java
  • 自己动手编译OpenSSL库

    因为工作需要,要实现一个基于SSL的通信程序。之前没有接触过SSL协议通讯,这次学习了一下如何自己编译OpenSSL库。

    我使用的环境是Windows 10 + VS2015

    1.首先打开VS2015的命令行编译工具,想编译成32位的就打开x86版本,想编译成64位的就打开x64版本。

    2.解压下载下来的openssl的压缩包,进入解压文件夹,输入命令:perl Configure VC-WIN64A;(32位:VC-WIN32)

    3.输入命令msdo_win64a;(32位:msdo_ms)

    4.输入命令nmake –f ms t.mak编译exe,编译成dll为nmake –f ms tdll.mak

    5.如编译成功,可使用nmake –f ms t.mak test来测试,dll为nmake –f ms tdll.mak test。

    配置VS

    1.项目->属性->配置属性->VC++ 目录->包含目录,将openssl文件夹的inc32添加进去;项目->属性->配置属性->VC++目录->库目录,添加openssl文件夹下的out32dll;

    2.项目->属性->配置属性->链接器->输入->附加依赖项,增加libeay32.lib和ssleay32.lib;

    3.将out32dll中的libeay32.dll和ssleay32.dll拷贝至工程目录下。

     

    使用例程编译通过,测试成功

    // SSL.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    /* OpenSSL headers */
    #include "openssl/bio.h"
    #include "openssl/ssl.h"
    #include "openssl/err.h"
    /* Initializing OpenSSL */
    
    
    int main()
    {
        SSL_load_error_strings();
        ERR_load_BIO_strings();
        OpenSSL_add_all_algorithms();
        return 0;
    }

    ps:个人感觉OpenSSL是一个很糟糕的库,文档混乱,使用体验也不好

  • 相关阅读:
    Educational Codeforces Round 58 A,B,C,D,E,G
    Codeforces Round #530 (Div. 2) F (树形dp+线段树)
    Codeforces Round #530 (Div. 2) A,B,C,D
    bzoj 3262: 陌上花开
    bzoj 2653: middle (主席树+二分)
    费马小定理的证明
    分组背包
    二维费用的背包问题
    luoguP1164 小A点菜(背包问题)
    完全背包问题
  • 原文地址:https://www.cnblogs.com/Ox9A82/p/5795024.html
Copyright © 2011-2022 走看看