我正在使用基于java的客户端获取TimeStampToken(RFC3161)
我需要将TSTInfo中包含的所有信息存储在数据库MySql或Oracle中。是否有特定的格式来存储它?
这类东西没有指定的格式1。
但脑海中浮现出一些明显的替代方案:
-
将DER编码的表单存储为BLOB。
-
采用DER编码的形式,base-64对其进行编码,并将其存储在CHAR(n)列中。
-
创建一个包含列的表,以表示
TSSInfo
结构的每个字段。。。假设你已经在解码了。 -
使用Java序列化协议、XML、JSON等序列化Java对象表示。
-
等等
1-实际上,根据维基百科的说法,ASN.1有一种称为XER的编码,它是用XML表示的
请注意,如果只存储TSTInfo,则会丢失签名,这就是拥有RFC3161令牌的全部意义。没有签名的TSTInfo证明不了什么!
为了保留其证据属性,您确实应该存储整个时间戳令牌(定义为封装TSTInfo的签名CMS ContentInfo)。
就使用什么格式而言,可能是RFC3161规范的第3.2章(https://www.rfc-editor.org/rfc/rfc3161)可能会有所帮助(不过这只是一个建议):
3. Transports
There is no mandatory transport mechanism for TSA messages in this
document. The mechanisms described below are optional; additional
optional mechanisms may be defined in the future.
[...]
3.2. File Based Protocol
A file containing a time-stamp message MUST contain only the DER
encoding of one TSA message, i.e., there MUST be no extraneous header
or trailer information in the file. Such files can be used to
transport time stamp messages using for example, FTP.
因此,我会将DER编码的CMS ContentInfo(而不是TSTInfo)存储为BLOB