我正在设计一个通用Java库,需要在发送之前先对消息签名并在接受之前验证消息。签署并验证需要同时满足以下两个约束条件;
- 使用原始的32个字符长的键以及一些其他详细信息,例如键的开始日期,结束日期,宽限期,算法等作为原始信息(不必选择,但必须将其接受为原始数据)。
- 使用包含公钥的正确PKI证书
对于基于PKI的机密,直接使用JKS/PKCS12来存储信息并使用它即可。
我面临的问题是如何管理和存储原始信息?数据结构应该是什么?到目前为止,我的选择是:
- 使用JRE提供的JCEKS将所有原始信息存储在我自己构成的数据结构中作为秘密属性,并在运行时解析以执行我的库
- 使用JKS/PKSC12以及X509证书数据结构将所有原始信息存储在其扩展名下
我真正要寻找的是针对这些通用需求(即管理非托管秘密属性)的最佳做法?