简体   繁体   English

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

[英]How to do RSA public key encryption using OpenSSL EVP routines?

I am using the EVP high-level functions in OpenSSL . 在OpenSSL中使用EVP高级功能 I haven't found any examples online showing how to use these functions (eg EVP_EncryptInit_ex() , EVP_EncryptUpdate() , EVP_EncryptFinal_ex() ) to encrypt data using an RSA public key. 我还没有找到任何在线示例来展示如何使用这些函数(例如EVP_EncryptInit_ex()EVP_EncryptUpdate()EVP_EncryptFinal_ex() )来使用RSA公钥加密数据。 Specifically, I do not see a EVP_CIPHER type that matches RSA, similar to what you see for AES like: const EVP_CIPHER *EVP_aes_128_cbc(void); 具体来说,我看不到与RSA匹配的EVP_CIPHER类型,类似于您在AES中看到的类型: const EVP_CIPHER *EVP_aes_128_cbc(void); in evp.h . evp.h I think one for RSA is required to initialize EVP for encryption using that method. 我认为需要使用RSA来初始化使用该方法进行加密的EVP。

Can anyone help me understand how to use an RSA existing key to encrypt data using OpenSSL's EVP routines? 谁能帮助我了解如何使用RSA现有密钥通过OpenSSL的EVP例程加密数据? Examples would be extremely helpful. 示例将非常有帮助。

To do asymmetric encryption you need to use different EVP routines than for symmetric crypto. 要进行非对称加密,您需要使用与对称加密不同的EVP例程。 In particular see the EVP_PKEY_encrypt() function. 特别是请参见EVP_PKEY_encrypt()函数。 The man page is here, and it contains an example. 手册页在这里,其中包含一个示例。

https://www.openssl.org/docs/man1.1.0/crypto/EVP_PKEY_encrypt.html https://www.openssl.org/docs/man1.1.0/crypto/EVP_PKEY_encrypt.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM