openssl之裁剪

     对于搞信息安全的人来说,openssl是大家最熟悉不过的了,尤其是搞信息安全c语言方面的技术人员。
     openssl经过这些年的发展,已经非常之成熟完善了,也被很多公司和项目使用。对与openssl的优点我就不说了,大家上网上也能找到很多;但就其缺点来说,最大的就是代码的剪裁问题,由于openssl是用标准c语言实习的,里面用了很多宏定义,这样就降低了代码的可读性和剪裁性。对于一些常见的操作系统,代码剪裁是没必要的,直接把openssl编译成动态库或静态库使用即可;而对于特殊的操作系统(如嵌入式)对功能要求相对简单,可用空间有限,这样如果想使用openssl解决其安全应用方面的问题,代码剪裁就非常有必要了。
     下面我就自己的一点经验来谈一下有关openssl代码的剪裁问题(只以与加密、Asn1编码部分为例):
     1,用vc6(当然其它编译器也可以)建立一个您需要的工程(建议先建立动态库工程),网上可能有已经建立好的工程(建议自己做一个);
     2,到openssl中把crypto中的目录原封不动的copy过来(当然,你也可一把源代码文件平铺到一个目录),并把相关的头文件目录也拷贝过来,把需要用到的源代码添加到工程中,并设置好头文件的相对路径(vc6—project—setting中设置)
     3,上面的工作都做好了之后,可能工程编译不过,下面开始具体的剪裁设置,openssl定义了很多裁剪算法的宏(如 OPENSSL_NO_DSA,OPENSSL_NO_DH等),定义了这些宏即在工程中不使用该算法,我们可以把不用的算法宏定义到工程中,这样就可以把实现文件从工程中删除,而不影响系统的编译,逐渐调试,编译工程(这个工作量比较大);
     4, 我们裁剪的目的当然不是用在windows系统上,而是用到特殊系统上,这样就需要把vc工程中裁剪好的代码提取到新的目录上(建议),当然,你也可以在你的makefile文件中自己写好用哪些文件,进行移植编译。

     特殊平台需要考虑的问题:有些嵌入式中memcpy、malloc、strcpy等标准C函数无法使用,这样就需要您自己实现这些函数,必要的时候可能要改openssl源代码;
    
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值