我正在使用openssl创建自签名证书。
我使用openssl函数RSA_generate_key()
创建了一个密钥对:
key = RSA_generate_key(1024, 65537, null, 0);
现在,我想为自签名证书生成Authority Key Identifier。
RFC说:
keyIdentifier字段的值应该从中派生出来 用于验证证书签名的公钥或生成唯一值的方法。生成密钥的两种常用方法 公共密钥中的标识符在第4.2.1.2节中描述。
好。我们来看一下。在上面提到的4.2.1.2节中,描述说:
(1)keyIdentifier由160位SHA-1哈希组成 BIT STRING subjectPublicKey的值(不包括标签, 长度和未使用的位数)。
(2)keyIdentifier由一个四位类型字段组成 值0100后跟最低有效60位 BIT STRING值的SHA-1哈希值 subjectPublicKey(不包括标签,长度和数量 未使用的比特)。
如果我想使用版本(1):如何获取要散列的数据以创建有效的授权密钥标识符?
答案 0 :(得分:1)
首先,您需要创建证书。 然后添加权限密钥标识符扩展具有以下内容:
add_ext(YourX509SelfSignedCert, NID_authority_key_identifier, "keyid,issuer");
你也可以只使用keyid, 有一篇关于使用here
的文章