Статьи Королевства Дельфи

         

Про то, как вычисляется размер зашифрованного текста.


Не всегда можно предположить какой размер будет выходного шифрованного текста, а функции проводящие преобразование требуют что бы память под него была уже выделена (разработчики PGPsdk почему-то это не предусмотрели), и если памяти не хватает - возникает исключение о нехватки памяти. Мною опытным путем была установлена формула для вычисления размера блока: outBufLen := inBufLen*5; if(outBufLen<10000) then outBufLen:=10000; outBufRef := StrAlloc(outBufLen);

Временные ключики

В процессе работы программы появляются резервные файлы ключей, имеющие следующий вид - (pub|sec)ring-bak-##.pgp – предусмотрен откат от изменений. В принципе, если Вы правильно используете контекст и правильно его закрываете, этот файл корректно удаляется при освобождение контекста. Но на всякий случай можно его удалять следующим образом (повесить можно на закрытие формы или вызывать принудительно):

Procedure DeleteBakPGPFiles; Var P : TPreferenceRec; FileSearch : String; SearchRec : TSearchRec; Begin spgpGetPreferences(@P, PGPPrefsFlag_PublicKeyring or PGPPrefsFlag_PrivateKeyring); FileSearch:=P.PublicKeyring; Insert('-bak-*',FileSearch,Pos('.',FileSearch)); FindFirst(FileSearch, faAnyFile, SearchRec); if(SearchRec.Name<>'')then if not(DeleteFile(ExtractFilePath(FileSearch)+SearchRec.Name))then ShowEvent('Not delete file::'+ ExtractFilePath(FileSearch)+SearchRec.Name,0); while(FindNext(SearchRec)=0)do if not(DeleteFile(ExtractFilePath(FileSearch)+SearchRec.Name)) then ShowEvent('Not delete file::'+ ExtractFilePath(FileSearch)+SearchRec.Name,0); FindClose(SearchRec); End;

Интерфейс пользователя

PGP_sdkUI.dll – это библиотека пользовательских интерфейсов, фирменные штучки от Network Associates, использовав их у Вас будут диалоги такие же как у фирменного пакета PGP. Вам уже не нужно будет строить диалоги самому:

  • Для Генерации ключей;
  • При выборе получателей сообщений;
  • При запросе пароля и т.п.

Вывод:

Если Вы читаете эту статью - то Вы наверное уже знаете где в своих приложениях можно применить криптование, PGP это позволит сделать быстро, надежно, открыто и самое главное – переносимо. Но я могу посоветовать еще одно применение - это защита Ваших программ от несанкционированного копирования. Зашить открытый ключ в exe-файл, и рассылать секретный, нужным людям. Вот тут то и появляется поле для простора.



Содержание  Назад  Вперед