如何使用 ASN.1 定义的 x509 algorithmIdentifier

How to use ASN.1 defined the x509 algorithmIdentifier

操作定义 自动标签 ::= 开始

Certificate ::=SEQUENCE{
    subjectUniqueID     BIT STRING,
    operatorID          BIT STRING,
    operatetype         ENUMERATED{issue,cancel},
    time                GeneralizedTime,
    hashofcertificate   INTEGER,  
    highofblock         INTEGER,
    sigatureAlgotithm   AlgorithmIdentifier,    
    signatureValue      BIT STRING
}

AlgorithmIdentifier ::= SEQUENCE {
  algorithm       OBJECT IDENTIFIER,
  parameters      ANY DEFINED BY algorithm OPTIONAL
}

结束

但 eclipse 编译 error.The 原因是 "Syntax error on token "DEFINED",} 预期"。我不知道 error.Can 你告诉我如何处理这个错误或如何用另一种方式对证书进行编码?

这只是一个猜测,但你可以试试

AlgorithmIdentifier ::= SEQUENCE {
  algorithm       OBJECT IDENTIFIER,
  parameters      ANY OPTIONAL
}

您可以找到在 BouncyCastle here

中实现的 AlgorithmIdentifier 示例

您似乎正在尝试使用 X.509 的过时版本。 ANY DEFINED BY 来自 1988 年的 ASN.1,它在 1994 年左右被撤回。如果您使用 X.509 的更新版本,它定义的 AlgorithmIdentifier 更像以下内容,那么您会遇到很多麻烦:

  AlgorithmIdentifier ::= SEQUENCE {
   algorithm   ALGORITHM.&id ({SupportedAlgorithms}),
   parameters  ALGORITHM.&Type ({SupportedAlgorithms}{@algorithm}) OPTIONAL}