Windows下OpenSSL 编程(一)

  • Windows 下的OpenSSL库下载,建议下载编译好的,有时间自己研究的可以下载源码编译。

下载地址: https://slproweb.com/products/Win32OpenSSL.html

可以选择轻量和全功能。暂时不清楚轻量和全功能的差别,通常选择全功能版本进行下载。

  • 包含头文件和库

Win32 工程: 安装路径/ OpenSSL-Win32/include,安装路径/ OpenSSL-Win32/lib

Win64 工程:安装路径/ OpenSSL-Win64/include,安装路径/ OpenSSL-Win64/lib

 

通常需要引用两个lib库:

#if defined(_WIN32)

#if defined(_WIN64)

 

//64bit

#if !defined(NDEBUG)

#pragma  comment (lib,"libssl64MDd")

#pragma  comment (lib,"libcrypto64MDd")

#else

#pragma  comment (lib,"libssl64MD")

#pragma  comment (lib,"libcrypto64MD")

#endif // !defined(NDEBUG)

 

#else

 

//32 bit

#if !defined(NDEBUG)

#pragma  comment (lib,"libssl32MDd")

#pragma  comment (lib,"libcrypto32MDd")

#else

#pragma  comment (lib,"libssl32MD")

#pragma  comment (lib,"libcrypto32MD")

#endif // !defined(NDEBUG)

 

#endif //defined(_WIN64)

#endif // defined(_WIN32)

 

#endif //defined(ENABLE_OPENSSL)

 

  • 运行时dll

区分Win32 和 win 64版本

Libssl-1_1-x32.dll, libcrypto-1_1-x32.dll

Libssl-1_1-x64.dll, libcrypto-1_1-x64.dll

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章基础知识.......................................................................................................................8 1.1 对称算法.......................................................................................................................8 1.2 摘要算法.......................................................................................................................9 1.3 公钥算法.......................................................................................................................9 1.4 回调函数..................................................................................................................... 11 第二章openssl 简介................................................................................................................13 2.1 openssl 简介................................................................................................................13 2.2 openssl 安装................................................................................................................13 2.2.1 linux 下的安装................................................................................................13 2.2.2 windows 编译与安装......................................................................................14 2.3 openssl 源代码............................................................................................................14 2.4 openssl 学习方法........................................................................................................16 第三章堆栈.............................................................................................................................17 3.1 openssl 堆栈................................................................................................................17 3.2 数据结构.....................................................................................................................17 3.3 源码.............................................................................................................................18 3.4 定义用户自己的堆栈函数......................................................................................... 18 3.5 编程示例.....................................................................................................................19 第四章哈希表.........................................................................................................................21 4.1 哈希表.........................................................................................................................21 4.2 哈希表数据结构.........................................................................................................21 4.3 函数说明.....................................................................................................................23 4.4 编程示例.....................................................................................................................25 第五章内存分配.....................................................................................................................27 5.1 openssl 内存分配........................................................................................................27 5.2 内存数据结构.............................................................................................................27 5.3 主要函数.....................................................................................................................28 5.4 编程示例.....................................................................................................................29 第六章动态模块加载.............................................................................................................30 6.1 动态库加载.................................................................................................................30 6.2 DSO 概述....................................................................................................................30 6.3 数据结构.....................................................................................................................31 6.4 编程示例.....................................................................................................................32 第七章抽象IO........................................................................................................................34 7.1 openssl 抽象IO...........................................................................................................34 7.2 数据结构.....................................................................................................................34 7.3 BIO 函数.................................................................................................................... 36 7.4 编程示例.....................................................................................................................36 7.4.1 mem bio...........................................................................................................36 7.4.2 file bio............................................................................................................. 37 7.4.3 socket bio.........................................................................................................38 7.4.4 md BIO............................................................................................................39 7.4.5 cipher BIO....................................................................................................... 40 7.4.6 ssl BIO.............................................................................................................41 Openssl 编程 3 7.4.7 其他示例.........................................................................................................42 第八章配置文件.....................................................................................................................43 8.1 概述.............................................................................................................................43 8.2 openssl 配置文件读取................................................................................................ 43 8.3 主要函数.....................................................................................................................44 8.4 编程示例.....................................................................................................................44 第九章随机数.........................................................................................................................46 9.1 随机数.........................................................................................................................46 9.2 openssl 随机数数据结构与源码................................................................................ 46 9.3 主要函数.....................................................................................................................48 9.4 编程示例.....................................................................................................................48 第十章文本数据库.................................................................................................................50 10.1 概述.........................................................................................................................50 10.2 数据结构.................................................................................................................51 10.3 函数说明.................................................................................................................51 10.4 编程示例.................................................................................................................52 第十一章大数.........................................................................................................................54 11.1 介绍.............................................................................................................................54 11.2 openssl 大数表示........................................................................................................54 11.3 大数函数.....................................................................................................................55 11.4 使用示例.....................................................................................................................58 第十二章BASE64 编解码......................................................................................................64 12.1 BASE64 编码介绍......................................................................................................64 12.2 BASE64 编解码原理..................................................................................................64 12.3 主要函数.................................................................................................................65 12.4 编程示例.................................................................................................................66 第十三章ASN1 库..................................................................................................................68 13.1 ASN1 简介..................................................................................................................68 13.2 DER 编码....................................................................................................................70 13.3 ASN1 基本类型示例.................................................................................................. 70 13.4 openssl 的ASN.1 库.................................................................................................. 73 13.5 用openssl 的ASN.1 库DER 编解码.................................................................... 74 13.6 Openssl 的ASN.1 宏.................................................................................................. 74 13.7 ASN1 常用函数..........................................................................................................75 13.8 属性证书编码...........................................................................................................89 第十四章错误处理.................................................................................................................93 14.1 概述.........................................................................................................................93 14.2 数据结构.................................................................................................................93 14.3 主要函数.................................................................................................................95 14.4 编程示例.................................................................................................................97 第十五章摘要与HMAC......................................................................................................100 15.1 概述.......................................................................................................................100 15.2 openssl 摘要实现......................................................................................................100 15.3 函数说明...............................................................................................................101 Openssl 编程 4 15.4 编程示例...............................................................................................................101 15.5 HMAC.......................................................................................................................103 第十六章数据压缩...............................................................................................................104 16.1 简介...............................................................................................................................104 16.2 数据结构...............................................................................................................104 16.3 函数说明...............................................................................................................105 16.4 openssl 中压缩算法协商.......................................................................................... 106 16.5 编程示例...............................................................................................................106 第十七章RSA....................................................................................................................... 107 17.1 RSA 介绍................................................................................................................... 107 17.2 openssl 的RSA 实现................................................................................................ 107 17.3 RSA 签名与验证过程.............................................................................................. 108 17.4 数据结构...............................................................................................................109 17.4.1 RSA_METHOD................................................................................................. 109 17.4.2 RSA............................................................................................................... 110 17.5 主要函数............................................................................................................... 110 17.6 编程示例....................................................................................................................... 112 17.6.1 密钥生成............................................................................................................ 112 17.6.2 RSA 加解密运算.......................................................................................... 113 17.6.3 签名与验证........................................................................................................ 116 第十八章DSA....................................................................................................................... 119 18.1 DSA 简介.............................................................................................................. 119 18.2 openssl 的DSA 实现................................................................................................ 120 18.3 DSA 数据结构..........................................................................................................120 18.4 主要函数...............................................................................................................121 18.5 编程示例...............................................................................................................122 18.5.1 密钥生成............................................................................................................122 18.5.2 签名与验证........................................................................................................124 第十九章DH................................................................................................................................ 126 19.1 DH 算法介绍............................................................................................................ 126 19.2 openssl 的DH 实现.................................................................................................. 127 19.3 数据结构.......................................................................................................................127 19.4 主要函数...............................................................................................................128 19.5 编程示例...............................................................................................................129 第二十章椭圆曲线...............................................................................................................132 20.1 ECC 介绍.................................................................................................................. 132 20.2 openssl 的ECC 实现................................................................................................ 133 20.3 主要函数...............................................................................................................135 20.3.1 参数设置............................................................................................................135 20.3.2 参数获取............................................................................................................136 20.3.3 转化函数............................................................................................................137 20.3.4 其他函数............................................................................................................137 20.4 编程示例...............................................................................................................139 第二十一章EVP................................................................................................................... 143 Openssl 编程 5 21.1 EVP 简介...................................................................................................................... 143 21.2 数据结构......................................................................................................................143 21.2.1 EVP_PKEY................................................................................................... 144 21.2.2 EVP_MD.......................................................................................................144 21.2.3 EVP_CIPHER............................................................................................... 145 21.2.4 EVP_CIPHER_CTX..................................................................................... 146 21.3 源码结构......................................................................................................................147 21.4 摘要函数......................................................................................................................147 21.5 对称加解密函数..........................................................................................................148 21.6 非对称函数..................................................................................................................149 21.7 BASE64 编解码函数................................................................................................149 21.8 其他函数.......................................................................................................................150 21.9 对称加密过程............................................................................................................152 21.10 编程示例...............................................................................................................152 第二十二章PEM 格式..........................................................................................................159 22.1 PEM 概述..................................................................................................................159 22.2 openssl 的PEM 实现................................................................................................160 22.3 PEM 函数..................................................................................................................161 22.4 编程示例...............................................................................................................161 第二十三章Engine................................................................................................................165 23.1 Engine 概述...............................................................................................................165 23.2 Engine 支持的原理...................................................................................................165 23.3 Engine 数据结构.......................................................................................................166 23.4 openssl 的Engine 源码............................................................................................167 23.5 Engine 函数...............................................................................................................167 23.6 实现Engine 示例..................................................................................................169 第二十四章通用数据结构................................................................................................... 182 24.1 通用数据结构...............................................................................................................182 24.2 X509_ALGOR.......................................................................................................... 182 24.3 X509_VAL................................................................................................................ 184 24.4 X509_SIG..................................................................................................................185 24.5 X509_NAME_ENTRY............................................................................................. 186 24.6 X509_NAME............................................................................................................ 187 24.7 X509_EXTENSION..................................................................................................193 24.8 X509_ATTRIBUTE.................................................................................................. 199 24.9 GENERAL_NAME...................................................................................................200 第二十五章证书申请...........................................................................................................203 25.1 证书申请介绍.......................................................................................................203 25.2 数据结构...............................................................................................................203 25.3 主要函数...............................................................................................................204 25.4 编程示例...............................................................................................................206 25.4.1 生成证书请求文件............................................................................................ 206 25.4.2 解码证书请求文件....................................................................................... 208 第二十六章X509 数字证书................................................................................................. 210 Openssl 编程 6 26.1 X509 数字证书......................................................................................................... 210 26.2 opessl 实现................................................................................................................210 26.3 X509 数据结构......................................................................................................... 210 26.4 X509_TRUST 与X509_CERT_AUX...................................................................... 214 26.5 X509_PURPOSE...................................................................................................... 215 26.6 主要函数...............................................................................................................218 26.7 证书验证...............................................................................................................221 26.7.1 证书验证项........................................................................................................221 26.7.2 Openssl 中的证书验证................................................................................. 221 第二十七章OCSP.................................................................................................................222 27.1 概述.......................................................................................................................222 27.2 openssl 实现..............................................................................................................222 27.3 主要函数...............................................................................................................222 27.4 编程示例.......................................................................................................................227 第二十八章CRL................................................................................................................... 228 28.1 CRL 介绍.................................................................................................................. 228 28.2 数据结构...............................................................................................................228 28.3 CRL 函数.................................................................................................................. 230 28.4 编程示例...............................................................................................................231 第二十九章PKCS7...............................................................................................................233 29.1 概述...............................................................................................................................233 29.2 数据结构...............................................................................................................233 29.3 函数.......................................................................................................................234 29.4 消息编解码.............................................................................................................235 29.4.1 data.............................................................................................................. 235 29.4.2 signed data...................................................................................................236 29.4.3 enveloped.....................................................................................................237 29.4.4 signed_and_enveloped................................................................................ 238 29.4.5 digest........................................................................................................... 238 29.4.6 encrypted..................................................................................................... 239 29.4.7 读取PEM......................................................................................................239 29.4.8 解码pkcs7.....................................................................................................240 第三十章PKCS12...............................................................................................................241 30.1 概述.......................................................................................................................241 30.2 openss 实现............................................................................................................... 241 30.3 数据结构.......................................................................................................................242 30.4 函数...............................................................................................................................243 30.5 编程示例...............................................................................................................245 第三十一章SSL 实现........................................................................................................... 254 31.1 概述...............................................................................................................................254 31.2 openssl 实现..............................................................................................................254 31.3 建立SSL 测试环境.............................................................................................. 254 31.4 数据结构...............................................................................................................256 31.5 加密套件...............................................................................................................256 Openssl 编程 7 31.6 密钥信息...............................................................................................................257 31.7 SESSION...................................................................................................................258 31.8 多线程支持...........................................................................................................258 31.9 编程示例...............................................................................................................259 31.10 函数.......................................................................................................................270 第三十二章Openssl 命令..................................................................................................... 272 32.1 概述...............................................................................................................................272 32.2 asn1parse................................................................................................................... 272 32.3 dgst............................................................................................................................ 274 32.4 gendh......................................................................................................................... 275 32.5 passwd....................................................................................................................... 276 32.6 rand............................................................................................................................276 32.7 genrsa........................................................................................................................ 277 32.8 req..............................................................................................................................278 32.9 x509...........................................................................................................................280 32.10 version................................................................................................................... 283 32.11 speed......................................................................................................................283 32.12 sess_id................................................................................................................. 284 32.13 s_server................................................................................................................284 32.14 s_client................................................................................................................ 286 32.15 rsa........................................................................................................................ 288 32.16 pkcs7....................................................................................................................289 32.17 dsaparam..............................................................................................................290 32.18 gendsa..................................................................................................................291 32.19 enc....................................................................................................................... 291 32.20 ciphers................................................................................................................. 292 32.21 CA....................................................................................................................... 293 32.22 verify................................................................................................................... 296 32.23 rsatul.................................................................................................................... 297 32.24 crl...........................................................................................................................299 32.25 crl2pkcs7........................................................................................................... 300 32.26 errstr.................................................................................................................. 300 32.27 ocsp............................................................................................................................. 301 32.28 pkcs12..................................................................................................................304 32.29 pkcs8....................................................................................................................306 32.30 s_time.................................................................................................................. 307 32.31 dhparam 和dh.............................................................................................................308 32.32 ecparam................................................................................................................. 309 32.33 ec......................................................................................................................... 310 32.34 dsa........................................................................................................................311 32.35 nseq......................................................................................................................312 32.36 prime....................................................................................................................313 32.37 smime.................................................................................................................. 313

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值