我如何在Lazarus的openSSL模块中使用BIGNUM

时间:2011-09-03 11:21:58

标签: delphi openssl pascal lazarus bignum

背景:我正在开发加密应用程序,我有用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(模块)?

1 个答案:

答案 0 :(得分:4)

您使用的设备是三个DLL的导入单元,其中一个是 libeay32.dll 。但不幸的是,它并没有完全导入 libeay32.dll 的所有功能。例如,它省略了BIGNUM部分,即您正在寻找的部分。

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