如何从C中的公钥创建AuthorityKeyIdentifier



我正在使用openssl创建一个自签名证书。

我使用openssl函数RSA_generate_key():创建了一个密钥对

key = RSA_generate_key(1024, 65537, null, 0);

现在,我想为自签名证书生成授权密钥标识符。

RFC说:

keyIdentifier字段的值应该从用于验证证书签名或生成唯一值的方法的公钥。生成密钥的两种常用方法来自公钥的标识符在第4.2.1.2节中进行了描述。

好的。让我们看看。在上述第4.2.1.2节中,描述中写道:

(1) keyIdentifier由BIT STRING subjectPublicKey的值(不包括标签,长度和未使用比特的数量)。

(2) keyIdentifier由一个带有值0100之后是位字符串值的SHA-1散列subjectPublicKey(不包括未使用的比特)。

如果我想使用版本(1):我如何获得要散列的数据以创建有效的授权密钥标识符

首先需要创建证书。然后添加具有以下权限的密钥标识符扩展:

add_ext(YourX509SelfSignedCert, NID_authority_key_identifier, "keyid,issuer");

你也只能使用keyid,有一篇关于在这里使用的好文章

最新更新