本节介绍可插入到 Solaris 加密框架中的四种应用程序的开发要求。
包括 <security/cryptoki.h>。
所有的调用都只通过 PKCS #11 接口执行。
链接到 libpkcs11.so。
库不应当调用 C_Finalize() 函数。
有关更多信息,请参见第 9 章,编写用户级加密应用程序和提供者。
设计要独立使用的提供者。尽管由提供者共享的对象不必是应用程序所链接到的具有完整功能的库,但是提供者中必须存在所有必需的符号。假设提供者将要在 RTLD_GROUP 和 RTLD_NOW 模式下由 dlopen(3C) 打开。
在共享对象中创建 PKCS #11 Cryptoki 实现。此共享对象中应当包括必需的符号,而不要依赖于消费方应用程序。
强烈建议(但并非必需)为数据清除提供 _fini() 例程。如果应用程序或共享库同时装入 libpkcs11 和其他提供者库,则需要使用此方法来避免在 C_Finalize() 调用之间产生冲突。请参见避免在用户级提供者中出现数据清除冲突。
应用 Sun Microsystems, Inc. 提供的证书。请参见申请提供者签署证书。
使用证书和 elfsign 对二进制文件进行签名。请参见签署提供者。
按照 Sun 约定对共享对象进行打包。请参见附录 F,打包和签署加密提供者。
包括 <sys/crypto/common.h> 和 <sys/crypto/api.h>。
所有的调用都通过内核编程接口执行。
包括 <sys/crypto/common.h> 和 <sys/crypto/api.h>。
导入注册、注销和提供状态所必需的例程。
导出必需的例程,以便为内核加密框架提供入口点。
导出具有受支持算法说明的数据结构。
创建可装入的内核模块。
应用 Sun Microsystems, Inc. 提供的证书。请参见申请提供者签署证书。
使用证书和 elfsign 对二进制文件进行签名。请参见签署提供者。
按照 Sun 约定对内核模块进行打包。请参见附录 F,打包和签署加密提供者。