设置 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()