软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
openssl之BIO系列之14---源类型的NULL型BIO

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

source/sink型BIO
    ---根据openssl doc\crypto\bio_s_null.pod翻译和自己的理解写成
    
    (作者:DragonKing, Mail: [email protected] ,发布于:httpgdwzh.126.com之openssl专业论坛)
    
    这是一个空的source/sink型BIO,写到这个BIO的数据都被丢掉了,从这里执行读操作也总是返回EOF。该BIO非常简单,其相关函数的定义如下(openssl\bio.h):
     BIO_METHOD * BIO_s_null(void);
    其相关的源文件实现函数在bss_null.c里面。
    【BIO_s_null】
    该函数返回一个NULL型的BIO_METHOD结构,该结构定义如下:
    static BIO_METHOD null_method=
     {
     BIO_TYPE_NULL,
     "NULL",
     null_write,
     null_read,
     null_puts,
     null_gets,
     null_ctrl,
     null_new,
     null_free,
     NULL,
     };
    从结构上看,这个类型的BIO实现了不少的函数,但是,仔细看看源文件,就会发现所有这些函数都只是简单返回0、1或者输入数据的长度,而不作任何事情。熟悉Linux系统的技术人员可能知道,这跟Linux系统的/dev/null设备的行为是一样的。
    一般来说,在openssl里面,这种类型的BIO是置放在BIO链的末尾的,比如在应用程序中,如果你要将一些数据通过filter型的BIO digest进行摘要算法,但不需要把它送往任何地方,又因为一个BIO链要求以source/sink型BIO开始或结束,所以这时候就可以在BIO链的末尾添加一个source/sink型的NUll类型BIO来实现这个功能。
    



相关文章

相关软件