设置 authoritykeyidentifier 扩展。x509certificate
必须包含一个 authoritykeyidentifier 扩展,且该扩展值的内容与指定的标准值匹配。如果该标准值为 null
,则不执行 authoritykeyidentifier 检查。
如果 authoritykeyid
不为 null
,则应该包含单个与 authoritykeyidentifier 扩展的扩展值内容(不包括对象标识符、关键性设置和封装 octet string)相对应的 der 编码形式的值。此结构的 asn.1 表示如下:
authoritykeyidentifier ::= sequence {
keyidentifier [0] keyidentifier optional,
authoritycertissuer [1] generalnames optional,
authoritycertserialnumber [2] certificateserialnumber optional }
keyidentifier ::= octet string
x509certselector
不解析 authoritykeyidentifier。相反,使用逐字节比较的方式来比较该值。
生成 authoritykeyidentifier
的 keyidentifier
字段时,通常从发布方证书中的 subjectkeyidentifier
扩展中获取该值。但是要注意,在发布方的证书上执行 x509certificate.getextensionvalue()
所得到的结果可能无法直接用作 setauthoritykeyidentifier
的输入。这是因为 subjectkeyidentifier 只包含一个 keyidentifier octet string(八位字节字符串),而不是 keyidentifier、generalnames 和 certificateserialnumber 的 sequence。为了使用发布方证书的 subjectkeyidentifier
扩展的扩展值,必需提取嵌入的 keyidentifier
octet string 值,然后将此 octet string 以 der 编码方式放入一个 sequence 中。有关 subjectkeyidentifier 的更多详细信息,请参见 setsubjectkeyidentifier(byte[] subjectkeyid)
。
还要注意,要复制此处提供的 byte 数组以防后续修改。
- 参数:
authoritykeyid
- authoritykeyidentifier(或者为 null
)- 另请参见:
getauthoritykeyidentifier()