从EVP_PKEY密钥对中提取公钥?

开发太阳能

我正在使用OpenSSL的高级EVP_*()功能在我的应用程序中实现加密/解密方案,因此我可以轻松切换使用的实际算法,而不必更改API调用。

我可以相对轻松地创建一个密钥

// dumbed down, no error checking for brevity
EVP_PKEY * pkey;
// can change EVP_PKEY_RSA to something else here
EVP_PKEY_CTX * context = EVP_PKEY_CTX_new_id( EVP_PKEY_RSA, NULL );
EVP_PKEY_keygen_init( ctx );
// could set parameters here
EVP_PKEY_keygen( context, &pkey );
// ...
EVP_PKEY_CTX_free( context );

pkey现在拥有一个密钥,即秘密密钥和公共密钥。这对于事物秘密方面很好,但是显然我只想提取公共密钥组件以用于事物的公共方面。

我能够找到特定RSA的功能,但使用高级EVP_*()API却一无所获

帮帮我?

杰瑞德

您可以使用以下方法将公钥和私钥分开以备将来使用。

int PEM_write_bio_PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc,
                    unsigned char *kstr, int klen,
                    pem_password_cb *cb, void *u);

 int PEM_write_PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc,
                    unsigned char *kstr, int klen,
                    pem_password_cb *cb, void *u);
EVP_PKEY *PEM_read_bio_PUBKEY(BIO *bp, EVP_PKEY **x,
                    pem_password_cb *cb, void *u);

 EVP_PKEY *PEM_read_PUBKEY(FILE *fp, EVP_PKEY **x,
                    pem_password_cb *cb, void *u);

 int PEM_write_bio_PUBKEY(BIO *bp, EVP_PKEY *x);
 int PEM_write_PUBKEY(FILE *fp, EVP_PKEY *x);

有关详细信息,请参阅<openssl/pem.h>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Dev

从EVP_PKEY到缓冲区的OpenSSL公钥

来自分类Dev

如何以可读的方式读写包含在“ EVP_PKEY”中的公钥和私钥?

来自分类Dev

从私钥中提取公钥

来自分类Dev

如何获取EVP_PKEY的类型?

来自分类Dev

如何发送EVP_PKEY给对方?

来自分类Java

从RSA公钥中提取数据

来自分类Dev

使用Botan从私钥中提取公钥

来自分类Dev

将RSA私钥加载到EVP_PKEY

来自分类Dev

如何从.key文件中提取公钥和私钥?

来自分类Dev

无法从x509证书中提取公钥

来自分类Dev

从X.509证书中提取PEM公钥

来自分类Dev

(Erlang)以Pem格式从证书中提取公钥

来自分类Dev

如何从python的RSA公钥中提取N和E?

来自分类Dev

如何从RSA JWK中提取公钥和私钥?

来自分类Dev

如何从python中的x509证书中提取公钥?

来自分类Dev

我们可以从Android Keystore中提取公钥/私钥吗?

来自分类Dev

如何使用OpenSSL从.cer中提取RSA公钥并将其存储在.pem中?

来自分类Dev

如何从nodejs中身份服务器4的jwk返回中提取公钥?

来自分类Dev

如何使用公钥字符串创建OpenSSL :: PKey?

来自分类Dev

如何使用OpenSSL EVP例程进行RSA公钥加密?

来自分类Dev

获取GPG公钥的密钥签名/指纹

来自分类Java

使用RSA公钥加密AES密钥

来自分类Java

使用ECDH公钥进行密钥包装?

来自分类Dev

分离ECDSA密钥对的公钥和私钥

来自分类Dev

GitLab SSH密钥-权限被拒绝(公钥)

来自分类Dev

从字典中提取密钥

来自分类Dev

如何使用OpenSSL提取公钥?

来自分类Dev

从PKCS12文件中提取公钥/私钥,以供以后在SSH-PK-Authentication中使用

来自分类Java

如何生成公钥的专用密钥在X25519?

TOP 榜单

热门标签

归档