您还可以让库给出预先格式化了的错误字符串。可以调用ERR_error_string 来得到该字符串。该函数将错误代码和一个预分配的缓冲区作为参数。而这个缓冲区必须是 256 字节长。如果参数为 NULL,则 OpenSSL 会将字符串写入到一个长度为 256 字节的静态缓冲区中,并返回指向该缓冲区的指针。否则,它将返回您给出的指针。如果您选择的是静态缓冲区选项,那么在下一次调用ERR_error_string 时,该缓冲区会被覆盖。
您还可以将整个错误队列转储到文件或 BIO 中。可以通过ERR_print_errors 或ERR_print_errors_fp 来实现这项操作。队列是以可读格式被转储的。第一个函数将队列发送到BIO ,第二个函数将队列发送到FILE 。字符串格式如下(引自 OpenSSL 文档):
[pid]:error:[error code]:[library name]:[functionname]:[reason string]:[file name]:[line]:[optional text message]
其中,[pid] 是进程 ID,[error code] 是一个 8 位十六进制代码,[file name] 是 OpenSSL 库中的源代码文件,[line] 是源文件中的行号。
使用 OpenSSL 创建基本的连接并不困难,但是,当试着确定该如何去做时,文档可能是一个小障碍。本文向您介绍了一些基本概念,但 OpenSSL 还有很多灵活之处有待发掘,而且您还可能需要一些高级设置,以便项目能够充分利用 SSL 的功能。
本文中有两个样例。一个样例展示了到 的非安全连接,另一个则展示了到 的安全 SSL 连接。两者都是连接到服务器并下载其主页。它们没有进行任何安全检查,而且库中的所有设置都是默认值 —— 作为本文的一部分,应该只将这些用于教学目的。
在任何支持的平台上,源代码的编译都应该是非常容易的,不过我建议您使用最新版本的 OpenSSL。在撰写本文时,OpenSSL 的最新版本是 0.9.7d。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-47341-5.html
美国欺负到门上了