certificate - 一个 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 字段?或者选择是否意味着以下任何一种但不超过一次?
解决方案
我的证书是否可以包含多个目录名称或 URI 字段?
是的。
或者选择是否意味着以下任何一种但不超过一次?
也是的。
一个选择是一个单一的选择。它可能在文档中的某处简洁地说明了这一点,但ITU-T X.680始终将选择称为单个值,例如:
29.8 选择类型包含的值并不都具有相同的标签。(标签取决于为选择类型贡献值的替代项。)
(强调我的)
证书可以包含多个 directoryName/etc 值,因为诸如主题替代名称扩展之类的东西没有GeneralName
值,它们有GeneralNames
值。而且当然,GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName
推荐阅读
- python - tokenized_docs= [(i, tokenize(doc)) for i, doc in tqdm (docs[:])] ValueError: too many values to unpack (expected 2)
- ruby - Ruby比较哈希内的字符串
- autocomplete - autocomplete="off" 在 Edge 版本 87.0.664.60 上不起作用
- spring-data-jpa - 领域驱动设计哪些表是允许访问的存储库
- flutter - 如何在 Google 表格中接受可变数量的参数
- php - PHPWord - 如何将 HTML 转换为 Docx?
- mysql - 在 JOIN 查询 MySQL 中计算 AVG
- javascript - node.js 中的执行顺序是什么?
- pandas - pandas np.where 根据来自 csv 的另一列中的值在另一列中添加值
- ruby-on-rails - Rails 升级 nil 的未定义方法“每个”后的活动记录错误:NilClass 和未定义方法“包含?” 对于零:NilClass