小编Jur*_*ura的帖子

使用公钥进行 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 …
Run Code Online (Sandbox Code Playgroud)

c++ size openssl rsa

2
推荐指数
1
解决办法
8682
查看次数

标签 统计

c++ ×1

openssl ×1

rsa ×1

size ×1