openssl之BIO系列之14---源类型的NULL型BIO

17 篇文章 0 订阅

  这是一个空的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来实现这个功能。


FW : http://blog.csdn.net/gdwzh/article/details/19213

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值