openssl 代码分析(1)

openssl支持的平台非常多,至少我就在windows,linux,以及mips上编译且运行过。而且按照openssl的整个设计,我想移植到任何平台都是没有多少障碍的,openssl已经很好的将平台依赖的部分独立开来,通过callback的方式来实现。比如内存分配函数,malloc,free等,就可以通过CRYPTO_set_mem_functions函数将目标平台的内存分配函数指针传入,这样openssl所有的内存分配就会最终调入到用户传入的函数里面。其他类似的callback机制还有很多,包括为了多任务,多线程而提供的设置锁的函数。

打开openssl的代码目录,我想最主要的就是这样几个。ssl,crypto,以及apps,他们分别代表了ssl协议(sslv2,sslv3,tls1.0)的实现,所有跟crypto功能(加解密,hash摘要算法等等)相关的实现,以及很多常用的application的code。最后这个apps我觉得非常好,它既提供了所有openssl常用的功能,你可以调用s_client,s_server来做一个简单的ssl server和ssl client,也可以调用x509,pkcs7等函数来查看证书,生成证书。此外,如果你只是想用到openssl的库来写一些应用,这个apps基本上你就是一个教材和sample code。你完全可以将其中的一些代码段用到自己的应用中。比如在openssl的根目录下,你就可以通过“openssl x509 -in certs/ca-cert.pem -text”命令来dump一个x509的证书。在apps目录下的所有.c文件就对应了一个apps,你也可以通过在shell下运行openssl来看到所有的apps。

因为openssl不像一个独立的应用程序

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值