Тема: PKCS#11 и etoken
Показать сообщение отдельно
  #1  
Старый 02.11.2011, 13:57
denisivc denisivc вне форума
Прохожий
 
Регистрация: 02.11.2011
Сообщения: 1
Репутация: 10
Вопрос PKCS#11 и etoken

Добрый день.
Начальство дало наказ внедрить проверку пин etoken в наших программах.
Начал разбираться с PKCS#11.
НО не все получается.
Хочу для начала прочитать данные библиотеки

вопрос
хочу прочитать данные библиотеки, но выдается белибирда.

Код:
procedure TForm1.Button1Click(Sender: TObject);
type
  CK_C_Initialize1 = ^C_Initialize;
  CK_C_Finalize1 = ^C_Finalize;
  CK_C_GetInfo1 = ^C_GetInfo;
  CK_C_GetFunctionList1 = ^C_GetFunctionList;

var
  Init:  CK_C_Initialize1;
  Fin:   CK_C_Finalize1;
  GInfo: CK_C_GetInfo1;
  GetFuncList : CK_C_GetFunctionList1;

  DLLETOKEN : THandle;
  Init1 : CK_INFO;

begin
  //загружаем DLL-ку
   DLLETOKEN := LoadLibrary(PChar('eTpkcs11.dll'));
   //загрузилась ли...

   if (DLLETOKEN = 0) then begin
    MessageDlg('Невозможно загрузить DLL', mtError, [mbOK], 0);
    Exit;
   end;

   Init:= GetProcAddress(DLLETOKEN,'C_Initialize');
   Fin:=  GetProcAddress(DLLETOKEN,'C_Finalize');
   GInfo := GetProcAddress(DLLETOKEN,'C_GetInfo');

   GetFuncList := GetProcAddress(DLLETOKEN,'C_GetFunctionList');
   if Assigned(Init) then
   begin

   Label1.Caption:= Inttostr(Init1.cryptokiVersion.major);

   Label2.Caption:= InttoStr(Init1.cryptokiVersion.minor);

   label3.Caption:= InttoStr(init1.libraryVersion.major);

   label4.Caption:= InttoStr(init1.libraryVersion.minor);

   end;
Админ: Пользуемся тегами для оформления кода!

надо как то по идее связать FIN и Init1. но как?
Ответить с цитированием