1 使用内嵌密码加速引擎
openssl从0.9.6版本开始,具有对内嵌密码加速的支持。从openssl0.9.7开始,这种支持在openssl的主分支中得到限制。openssl0.9.6的引擎包中只有建立一个引擎对象的简易功能,而openssl0.9.7具有更健壮的特性用于对引擎包的支持。使用内嵌密码加速引擎,主要是通过使用引擎对象模型,使应用程序获得对可变化的底层描述的引用,此底层描述大部分是针对底层硬件的描述。大概的思想很简单:声明一个对象,然后用我们希望使用的硬件的描述符(见表1)来初始化这个对象。下面用一小段程序来演示如何实现这种操作。
// 例1 如何使用密码加速引擎
engine *e; // 声明一个指向引擎对象的指针
if (!(e = engine_by_id("cswift"))) //使用engine_by_id 初始化引擎对象
fprintf(stderr, "error finding specified engine\n");
else if (!engine_set_default(e, engine_method_all))
fprintf(stderr, "error using engine\n");
else
fprintf(stderr, "engine successfully enabled\n")