我可以成功地让OpenSSL在不使用#include语句的情况下执行HMAC-SHA1,MD5,SHA1,但是使用RSA_sign非常困难,因为需要Key为RSA类型我认为深藏在rsa.h(或其中一个包含的内容)中,我无法使用我正在使用的工具来处理openssl头文件。
我正在使用LoadRunner - 每次我尝试让它执行RSA_sign时我只会遇到内存异常违规 - 这可能是因为我没有提供正确格式的密钥。< / p>
那么,有没有一种方法可以直接在libeay32.dll上调用RSA_sign而不参考openssl头文件,就像上面提到的其他方法一样?
任何帮助将不胜感激。 约翰
答案 0 :(得分:0)
我假设你已经加载了dll。如果没有,请尝试lr_load_dll()
。我没有使用过RSA_sign,但是如果你包含函数声明(在使用之前),你可以使用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
对象。
答案 1 :(得分:0)
感谢您的回复,是的,我加载了dll,因为这一步是允许其他方法工作的。我已经尝试将RSA_sign声明放在我正在进行函数开发的vuser_init的头部,但这对RSA或Long-RSA无效,因为它不知道RSA是什么 - 我试过了没有成功使用TypeDef / Struct来定义RSA - 即使使用我在Wiki上找到的实际定义 - 建议使用long long,但LoadRunner不允许这样做。如你所建议的那样使用long也失败了我认为因为我的密钥是1269个十六进制数字而且长度不足以容纳它。
不幸的是,我不是一个'核心'程序员 - 充其量我会说我是一个脚本编写者,这远远超出了我的理解。如果有任何其他建议你可以给我非常感激。
再次感谢。