b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

openssl_openssl生成证书_openssl社区(3)

电脑杂谈  发布时间:2017-05-15 23:03:42  来源:网络整理

不管 BIO 对象是套接字还是文件,对其进行的读和写操作都是通过以下两个函数来完成的:BIO_read 和BIO_write 。很简单,对吧?精彩之处就在于它始终如此。

BIO_read 将尝试从服务器读取一定数目的字节。它返回读取的字节数、0 或者 -1。在受阻塞的连接中,该函数返回 0,表示连接已经关闭,而 -1 则表示连接出现错误。在非阻塞连接的情况下,返回 0 表示没有可以获得的数据,返回 -1 表示连接出错。可以调用BIO_should_retry 来确定是否可能重复出现该错误。

BIO_write 会试着将字节写入套接字。它将返回实际写入的字节数、0 或者 -1。同BIO_read ,0 或 -1 不一定表示错误。BIO_should_retry 是找出问题的途径。如果需要重试写操作,它必须使用和前一次完全相同的参数。

关闭连接也很简单。您可以使用以下两种方式之一来关闭连接:BIO_reset 或BIO_free_all 。如果您还需要重新使用对象,那么请使用第一种方式。如果您不再重新使用它,则可以使用第二种方式。

BIO_reset 关闭连接并重新设置 BIO 对象的内部状态,以便可以重新使用连接。如果要在整个应用程序中使用同一对象,比如使用一台安全的聊天客户机,那么这样做是有益的。该函数没有返回值。

BIO_free_all 所做正如其所言:它释放内部结构体,并释放所有相关联的内存,其中包括关闭相关联的套接字。如果将 BIO 嵌入于一个类中,那么应该在类的析构函数中使用这个调用。

现在需要给出建立安全连接需要做哪些事情。惟一要改变的地方就是建立并进行连接。其他所有内容都是相同的。

安全连接要求在连接建立后进行握手。在握手过程中,服务器向客户机发送一个证书,然后,客户机根据一组可信任证书来核实该证书。它还将检查证书,以确保它没有过期。要检验证书是可信任的,需要在连接建立之前提前加载一个可信任证书库。

只有在服务器发出请求时,客户机才会向服务器发送一个证书。该过程叫做客户机认证。使用证书,在客户机和服务器之间传递密码参数,以建立安全连接。尽管握手是在建立连接之后才进行的,但是客户机或服务器可以在任何时刻请求进行一次新的握手。

部分中列出的 Netscasp 文章和 RFC 2246 ,对握手以及建立安全连接的其他方面的知识进行了更详尽的论述。

为安全连接进行设置要多几行代码。同时需要有另一个类型为 SSL_CTX 的指针。该结构保存了一些SSL 信息。您也可以利用它通过 BIO 库建立 SSL 连接。可以通过使用 SSL 方法函数调用 SSL_CTX_new 来创建这个结构,该方法函数通常是SSLv23_client_method 。

还需要另一个 SSL 类型的指针来保持 SSL 连接结构(这是短时间就能完成的一些连接所必需的)。以后还可以用该 SSL 指针来检查连接信息或设置其他 SSL 参数。

在创建上下文结构之后,必须加载一个可信任证书库。这是成功验证每个证书所必需的。如果不能确是可信任的,那么 OpenSSL 会将证书标记为无效(但连接仍可以继续)。

OpenSSL 附带了一组可信任证书。它们位于源文件树的certs 目录中。不过,每个证书都是一个独立的文件 —— 也就是说,需要单独加载每一个证书。在certs 目录下,还有一个存放过期证书的子目录。试图加载这些证书将会出错。

openssl社区_openssl生成证书_openssl

如果您愿意,可以分别加载每一个文件,但为了简便起见,最新的 OpenSSL 发行版本的可信任证书通常存放在源代码档案文件中,这些档案文件位于名为“TrustStore.pem”的单个文件中。如果已经有了一个可信任证书库,并打算将它用于特定的项目中,那么只需使用您的文件替换清单 8 中的“TrustStore.pem”(或者使用单独的函数调用将它们全部加载)即可。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-47341-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...