2

背景:我正在开发一个加密应用程序,我有一个用 Objective C 编写的应用程序,现在我想用 pascal 重写它,以便它在 Windows 上运行。我正在使用 pascal,因为它是我已经知道的语言和 lazarus,因为它是免费的 IDE

问题:我如何在 lazarus 中使用 openSSL 的 BigNum 模块,我已经下载了这个单元:http ://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/packages/openssl/src/

我把它放进去 uses openssl;

但是,当我尝试声明一个 BIGNUM

procedure Tform3.Button1Click(Sender: TObject);
var bits:integer;
    p:BIGNUM;
begin
   bits:=512;

   p:=BN_new();
   BN_generate_prime(p, bits, FALSE, NULL, NULL, NULL, NULL);

end;  

我只是收到一个错误:错误:找不到标识符“BIGNUM”

如何使用 BigNum 模块和 BN_generate prime(module)?

4

1 回答 1

4

您使用的单元是三个 DLL 的导入单元,其中之一是libeay32.dll。但不幸的是,它并没有完全导入libeay32.dll中的所有函数。例如,它会省略BIGNUM部分,即您要查找的内容。

也许您可以找到一个更好的导入单元,例如这个名为libeay32.pas的单元,它似乎具有所有功能,或者您可以从此链接BN_获取标题并将缺少的功能添加到openssl.pas。这不是微不足道的,但也不是不可撤销的。我会选择准备好的翻译单元。这看起来不错的样子。该网站似乎还有一些您可能需要的东西。

于 2011-09-03T15:27:53.237 回答