我正在使用:java.security.cert.X509Certificate包。和java.security.cert.X509CRL;
当我得到扩展值时,例如当 OID=2.5.29.14 (它是 SubjectKeyIdentifier) cert.getExtensionValue("2.5.29.14"); 我得到这个字节 [] 范围:
[4,22,4,20, 5,125,-118,106,-44,108,39,-74,-108,-20,-27,-32,-113,64,-69,125,-8,102,-52,-24 ]
当我在证书中看到时, SubjectKeyIdentifier从 5 开始。
问题1:这个范围的开始是什么?它是 4 个字节。
当我在 X509CRL 中看到 AuthorityKeyIdentifier 时(如果 CRL 由该证书签名,则 CRL 的 AuthorityKeyIdentifier == SubjectKeyIdentifier Of certificate)有相同的:
[4,24,48,22,-128,20, 5,125,-118,106,-44,108,39,-74,-108,-20,-27,-32,-113,64,-69,125,-8,102, -52,-24 ] 但开头还有 6 个字节。
问题2:这个范围的开始是什么?它是 6 个字节。
还有一个问题:
问题 3:如何解析 ExtensionValue 以便仅获取 Identifier 值。这个 4 和 6 字节是固定的吗?解析的最佳方法是什么?