Jur*_*ura 2 c++ size openssl rsa
我正在使用 OpenSSL RSA API 通过服务器的公钥来加密数据。
uint32_t rsasize = RSA_size(keypair); // -- RSA key size == 256
uint32_t dl = 255
uint8_t *d; // points to 255 bytes of data
unsigned char *encrypt = (unsigned char*)malloc(rsasize);
auto num = RSA_public_encrypt(dl, d, encrypt, keypair, RSA_NO_PADDING);
if ( num == -1 )
{
auto err = malloc(130);
ERR_load_crypto_strings();
ERR_error_string(ERR_get_error(), (char*)err);
printf("Error encrypting message: %s\n", err);
return nullptr;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用RSA_NO_PADDINGRSA 应该可以轻松地使用 256 字节公钥加密 255 字节。但我收到这个:
Error encrypting message: error:0406B07A:rsa routines:RSA_padding_add_none:data too small for key size
Run Code Online (Sandbox Code Playgroud)
我将 dl(data_lenght) 更改为 256(仅+1),得到以下结果:
Error encrypting message: error:04068084:rsa routines:RSA_EAY_PUBLIC_ENCRYPT:data too large for modulus
Run Code Online (Sandbox Code Playgroud)
我知道 RSA 可以用 256 个密钥编码 255 个字节。有什么问题?
| 归档时间: |
|
| 查看次数: |
8682 次 |
| 最近记录: |