如何使用openssl RSA公钥解密而不读取pem文件

如何使用openssl RSA公钥解密而不读取pem文件,openssl,rsa,public-key-encryption,pem,Openssl,Rsa,Public Key Encryption,Pem,我从一个pem文件发送一个客户机公钥字符串,并希望使用该字符串在服务器上进行解密,而无需将该字符串写入另一个pem文件。我怎么做 读取密钥代码: if ( (my_public_key = PEM_read_RSA_PUBKEY(fp, NULL, My_PWD, NULL)) == NULL) { ERR_print_errors_fp(stdout); fclose(fp); return; } 不解密代码: rsa_len = RSA_size(target_pu

我从一个pem文件发送一个客户机公钥字符串,并希望使用该字符串在服务器上进行解密,而无需将该字符串写入另一个pem文件。我怎么做

读取密钥代码:

if ( (my_public_key = PEM_read_RSA_PUBKEY(fp, NULL, My_PWD, NULL)) == NULL) {
    ERR_print_errors_fp(stdout);
    fclose(fp);
    return;
}
不解密代码:

rsa_len = RSA_size(target_public_key);
p_de = (unsigned char*)malloc(rsa_len+1);
memset(p_de, 0, rsa_len+1);
if (RSA_public_decrypt(rsa_len, (unsigned char*)from_hex,p_de , target_public_key, RSA_NO_PADDING) <0) {
    perror("can't decrypt data!");
    return;
}
rsa\u len=rsa\u大小(目标公钥);
p_de=(无符号字符*)malloc(rsa_len+1);
memset(p_de,0,rsa_len+1);

如果(RSA_public_decrypt(RSA_len,(unsigned char*)from_hex,p_de,target_public_key,RSA_NO_PADDING)我将其标记为,请纠正我的错误。虽然该例程实际上被称为
RSA_public_decrypt
,但您真正使用公钥所做的是验证签名,而不是解密(根据加密/解密的定义)。