Как использовать BIGNUM из модуля openSSL в Lazarus - PullRequest
2 голосов
/ 03 сентября 2011

Справочная информация: я работаю над приложением шифрования, у меня есть приложение, написанное на Objective C, и теперь я хочу переписать его на паскале, чтобы оно работало на Windows.Я использую pascal, так как это язык, который я уже знаю, и lazarus, поскольку это бесплатная IDE

Вопрос: Как использовать модуль BigNum из openSSL в Lazarus, я скачал этот модуль: 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 (модуль)?

1 Ответ

4 голосов
/ 03 сентября 2011

Единица, которую вы используете, является единицей импорта для трех DLL, и одна из них - libeay32.dll .Но, к сожалению, он не полностью импортирует все функции из libeay32.dll .Например, он пропускает часть BIGNUM, то есть то, что вы ищете.

Возможно, вы можете найти лучшую единицу импорта, такую ​​как эта единица, называемая libeay32.pas, который, кажется, имеет все функции BN_, или вы можете получить заголовок от этой ссылки и добавитьнедостающие функции для openssl.pas .Это не тривиально, но и не отменно.Я бы пошел на готовый переведенный блок.Выглядит хорошо. веб-сайт , похоже, содержит еще несколько вещей, которые могут вам понадобиться.

...