bio
coo1fish
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
openssl之BIO系列之16---BIO对(pair)类型BIO
前面我们已经介绍过BIO对的概念,其实更进一步,BIO对也是作为一种source/sink类型的BIO来处理的,也就是说,BIO里面还提供了一种专门的BIO_METHO方法来处理BIO对的各种操作。BIO对类型的BIO各种相关的函数定义如下(openssl/bio.h): BIO_METHOD *BIO_s_bio(void); #define BIO_make转载 2014-10-22 13:28:39 · 768 阅读 · 0 评论 -
openssl之BIO系列之4---BIO控制函数介绍
BIO控制函数介绍 BIO控制函数有许多,并且不同的BIO类型还有不同的控制函数,这里只简单介绍一些通用的BIO控制函数,至于某种类型BIO的特定控制函数,则参考后续的文件。 BIO的通用控制函数有以下几种,其声明如下(openssl/bio.h): long BIO_ctrl(BIO *bp,int cmd,long larg,void *parg);转载 2014-10-22 10:14:43 · 1242 阅读 · 0 评论 -
openssl之BIO系列之1---抽象的IO接口
BIO-抽象的IO接口 (作者:DragonKing Mail:wzhah@263.net 发布于:http://gdwzh.126.com openssl专业论坛) 其实包含了很多种接口,用通用的函数接口,主要控制在BIO_METHOD中的不通实现函数控制, 我初步估计了一下,大概有14种,包括6种filter型和8种source转载 2014-10-22 10:04:56 · 836 阅读 · 0 评论 -
openssl之BIO系列之14---源类型的NULL型BIO
这是一个空的source/sink型BIO,写到这个BIO的数据都被丢掉了,从这里执行读操作也总是返回EOF。该BIO非常简单,其相关函数的定义如下(openssl/bio.h): BIO_METHOD * BIO_s_null(void); 其相关的源文件实现函数在bss_null.c里面。 【BIO_s_null】 该函数返回一个NULL型的BIO_M转载 2014-10-22 13:23:04 · 510 阅读 · 0 评论 -
openssl之BIO系列之13---Socket类型BIO
Socket类型的BIO也是一种source/sink型BIO,封装了Socket的IO操作,它相关的一些函数定义如下(openssl/bio.h): BIO_METHOD * BIO_s_socket(void); #define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) #define BIO_转载 2014-10-22 11:58:39 · 948 阅读 · 0 评论 -
openssl之BIO系列之12---文件描述符(fd)类型BIO
文件描述符类型BIO也是一个source/sink型的BIO,它定义了以下一些类型的函数(openssl/bio.h): BIO_METHOD * BIO_s_fd(void); #define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) #define BIO_get_fd(b,c) BIO_ctr转载 2014-10-22 11:53:40 · 798 阅读 · 0 评论 -
openssl之BIO系列之11---文件(file)类型BIO
前面我们已经介绍了很多BIO的基本构造和操作,现在,我们开始针对每一个类型BIO进行进一步的介绍,这些介绍都是基本基于openssl的帮助文档的,我尽可能加入自己的一些理解,理清思路。在开始这部分之前,我一直在想该从哪一种类型的BIO开始比较合适,因为这些BIO类型之间有些还是有相互联系的,比如BIO_s_bio型就和BIO_f_ssl有关系,最后,考虑到大家对文件操作都比较熟悉,而且该类型BIO转载 2014-10-22 10:32:10 · 3263 阅读 · 1 评论 -
openssl之BIO系列之5---CallBack函数及其控制
CallBack函数及其控制 通过前面的介绍大家已经知道,BIO的callback函数是非常重要的,是实现BIO多态性的一个关键因素之一,BIO提供的callback控制系列函数有五个,其实都是一些宏定义,下面是它的声明和定义(openssl/bio.h): #define BIO_set_callback(b,cb) ((b)->callback=(cb))转载 2014-10-22 10:12:17 · 679 阅读 · 0 评论 -
openssl之BIO系列之15---内存(mem)类型BIO
内存(mem)类型BIO所定义的相关系列函数如下(openssl/bio.h): BIO_METHOD * BIO_s_mem(void); BIO_set_mem_eof_return(BIO *b,int v) long BIO_get_mem_data(BIO *b, char **pp) BIO_set_mem_buf(BIO *转载 2014-10-22 13:20:35 · 3736 阅读 · 0 评论 -
openssl之BIO系列之9---BIO对的创建和应用
BIO对是BIO中专门创建的一对缓存BIO,要创建BIO对,调用下面定义的函数(openssl/bio.h): int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); 这个函数调用成功后返回1,这时候bio1和bio2都是有效的了;否则就返回0,而bio1和bio2就会设转载 2014-10-22 10:25:09 · 592 阅读 · 0 评论 -
openssl之BIO系列之2---BIO结构和BIO相关文件介绍
BIO结构和BIO相关文件介绍 (作者:DragonKing Mail:wzhah@263.net 发布于:http://gdwzh.126.com openssl专业论坛) BIO的结构定义和相关项解析如下: (包含在bio.h文件中,其主文件为bio_lib.c) typedef struct bio_st BIO; s转载 2014-10-22 10:08:49 · 972 阅读 · 0 评论 -
openssl之BIO系列之10---BIO链的定位操作
前面的一篇文章讲过BIO链的构造方法,这里讲的是在一个BIO链中,怎么查找一个特定的BIO,怎么遍历BIO链中的每一个BIO,这组函数定义如下(openssl/bio.h): BIO * BIO_find_type(BIO *b,int bio_type); BIO * BIO_next(BIO *b); #define BIO_method_typ转载 2014-10-22 10:27:43 · 495 阅读 · 0 评论 -
openssl之BIO系列之7---BIO链的操作
我在介绍BIO结构的时候说过,BIO结构其实是一个链式结构,单个BIO是只有一个环节的BIO链的特例,那么我们怎么构造或在一个BIO链中增加一个BIO,怎么从一个BIO链中删除一个BIO呢,那么本节就是专门讲述这个问题的。 其实,在openssl中,针对BIO链的操作还是很简单的,仅仅包括两个函数(openssl/bio.h): BIO * BIO_push(BIO *b,B转载 2014-10-22 10:15:38 · 667 阅读 · 0 评论 -
openssl之BIO系列之6---BIO的IO操作函数
这些函数是BIO的基本读写操作函数,包括四个,他们的定义如下(openssl/bio.h): int BIO_read(BIO *b, void *buf, int len); int BIO_gets(BIO *b,char *buf, int size); int BIO_write(BIO *b, const void *buf, int len);转载 2014-10-22 10:17:56 · 1036 阅读 · 0 评论 -
openssl之BIO系列之3---BIO的声明和释放等基本操作
BIO的声明和释放等基本操作 ---根据openssl doc/crypto/bio/bio_new.pod翻译和自己的理解写成 (作者:DragonKing Mail:wzhah@263.net 发布于:gdwzh.126.com openssl专业论坛) 在BIO的基本操作系列函数中,他们用来BIO分配和释放操作,包括: BIO_转载 2014-10-22 10:08:56 · 1348 阅读 · 0 评论 -
openssl之BIO系列之17---连接(connect)类型BIO
该类型的BIO封装了socket的Connect方法,它使得编程的时候可以使用统一的BIO规则进行socket的connect连接的操作和数据的发送接受,而不用关心具体平台的Socket的connect方法的区别。其相关定义的一些函数如下(openssl/bio.h): BIO_METHOD * BIO_s_connect(void); #define BIO_set_co转载 2014-10-22 13:27:32 · 1599 阅读 · 0 评论 -
openssl之BIO系列之8---读写出错控制
当BIO_read或BIO_write函数调用出错的时候,BIO本身提供了一组出错原因的诊断函数,他们定义如下(openssl/bio.h): #define BIO_should_read(a) ((a)->flags & BIO_FLAGS_READ) #define BIO_should_write(a) ((a)->flags & BIO_FLAGS_WRITE)转载 2014-10-22 10:22:27 · 1831 阅读 · 0 评论
分享