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

时间:2017-04-07 10:41:56

标签: java asn.1

操作定义 AUTOMATIC TAGS :: = BEGIN

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
}

END

但是eclipse编译错误。原因是“令牌上的语法错误”DEFINED“,}}”。我不知道哪里出错。您能告诉我如何处理此错误或如何以其他方式编写证书?

2 个答案:

答案 0 :(得分:1)

您似乎正在尝试使用过时版本的X.509。 ANY DEFINED BY来自1988 ASN.1,它于1994年左右被撤销。如果您使用更新版本的X.509定义AlgorithmIdentifier,您会遇到更少的麻烦:

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

答案 1 :(得分:0)

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

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

您可以在BouncyCastle here中找到AlgorithmIdentifier实施的示例