ASN.1对准确性的定义是:
Accuracy ::= SEQUENCE {
seconds INTEGER OPTIONAL,
millis [0] INTEGER (1..999) OPTIONAL,
micros [1] INTEGER (1..999) OPTIONAL }
我不清楚如何处理millis和micros。它不能同时使用SEC_ASN1_INTEGER通用标记和0和1标记相同的类型。 SEC_ASN1Template结构的字段,因为它们都将进入该字段的同一部分(最低字节)。
答案 0 :(得分:0)
请注意
millis [0] INTEGER (1..999) OPTIONAL
不是真正的INTEGER类型,而是[0]类型。
以下等效类型定义可能对您有所帮助:
Accuracy ::= SEQUENCE {
seconds AccuracySeconds OPTIONAL,
millis [0] AccuracyMilliseconds OPTIONAL,
micros [1] AccuracyMicroseconds OPTIONAL }
AccuracySeconds ::= INTEGER
AccuracyMilliseconds ::= INTEGER(1..999)
AccuracyMicroseconds ::= INTEGER(1..999)
还需要考虑您的类型定义是使用IMPLICIT标记还是EXPLICIT标记...编码会有所不同:
(隐含)
30 06
01 01 02
80 01 02
vs(显式)
30 08
01 01 02
A0 03
02 01 02