首页 > 解决方案 > 一个 rfc5280 证书中可以有多个相同的 CHOICE 字段吗?

问题描述

我目前正在验证我对符合RFC5280的证书的实现。

通用名称定义为:

GeneralName ::= CHOICE {
    otherName     [0] OtherName,
    rfc822Name    [1] IA5String,
    dNSName       [2] IA5String,
    x400Address   [3] ORAddress,
    directoryName [4] Name,
    ediPartyName  [5] EDIPartyName,
    uniformResourceIdentifier [6] IA5String,
    iPAddress     [7] OCTET STRING,
    registeredID  [8] OBJECT IDENTIFIER }

现在我找不到CHOICE关键字的定义。我的证书是否可以包含多个目录名称或 URI 字段?或者选择是否意味着以下任何一种但不超过一次?

标签: certificaterfcchoice

解决方案


我的证书是否可以包含多个目录名称或 URI 字段?

是的。

或者选择是否意味着以下任何一种但不超过一次?

也是的。


一个选择是一个单一的选择。它可能在文档中的某处简洁地说明了这一点,但ITU-T X.680始终将选择称为单个值,例如:

29.8 选择类型包含的值并不都具有相同的标签。(标签取决于为选择类型贡献的替代项。)

(强调我的)

证书可以包含多个 directoryName/etc 值,因为诸如主题替代名称扩展之类的东西没有GeneralName值,它们有GeneralNames值。而且当然,GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName


推荐阅读