Openssl 如何在不使用#include RSA.h的情况下仅使用libeay32.dll执行RSA#u签名?

Openssl 如何在不使用#include RSA.h的情况下仅使用libeay32.dll执行RSA#u签名?,openssl,Openssl,我可以成功地让OpenSSL执行HMAC-SHA1、MD5、SHA1,而无需使用#include语句,但要让它为RSA#u签名工作确实有困难,因为它需要RSA类型的密钥,我认为RSA.h(或它自己的一个include)中埋藏得很深而且我还无法哄骗我正在使用的工具来处理openssl头文件 为此,我使用LoadRunner—每次我试图让它执行RSA_签名时,我都会遇到内存异常冲突—这可能是因为我没有以正确的格式提供密钥 那么,有没有一种方法可以直接在libeay32.dll上调用RSA_-sign

我可以成功地让OpenSSL执行HMAC-SHA1、MD5、SHA1,而无需使用#include语句,但要让它为RSA#u签名工作确实有困难,因为它需要RSA类型的密钥,我认为RSA.h(或它自己的一个include)中埋藏得很深而且我还无法哄骗我正在使用的工具来处理openssl头文件

为此,我使用LoadRunner—每次我试图让它执行RSA_签名时,我都会遇到内存异常冲突—这可能是因为我没有以正确的格式提供密钥

那么,有没有一种方法可以直接在libeay32.dll上调用RSA_-sign,而无需参考openssl头文件,就像我对上面提到的其他方法一样

任何帮助都将不胜感激。
John

我想您已经加载了dll。如果没有,请尝试
lr\u load\u dll()
。我没有使用RSA_符号,但是使用LoadRunner,如果包含函数声明(在使用之前),则可以调用外部库函数,而不使用.h。尝试将以下内容添加到该部分的顶部:

int RSA_sign(int type, const unsigned char *m, unsigned int m_len,
   unsigned char *sigret, unsigned int *siglen, RSA *rsa);
如果不起作用,请尝试将
RSA*RSA
更改为
long*RSA


如果您可以调用,但仍然收到错误,则可能需要执行
typedef
和/或
struct
并在使用之前声明/填充
RSA
对象。

感谢您的响应,是的,我加载了dll,因为这一步骤允许其他方法工作。我曾尝试将RSA_sign声明放在vuser_init的开头,在那里我正在进行函数开发,但这对RSA或Long-RSA都不起作用,因为它不知道RSA是什么-我尝试使用TypeDef/Struct来定义RSA,但没有成功-甚至使用我在Wiki上找到的实际定义-这建议使用Long-Long,但LoadRunner不允许这样做。我想使用你建议的long也失败了,因为我的密钥是1269个十六进制数字,long不够大,无法容纳它

不幸的是,我不是一个“核心”程序员——充其量我只能说我是一个脚本编写者,这远远超出了我的理解。如果你还有什么建议,我将非常感激

再次感谢