Клиент-FCM (начиная с версии 0.01.64) и ФБП-IP Мост (начиная с версии 1.7) обмениваются данными в
компрессированном формате. Это существенно повышает скорость передачи данных по
сетям Internet и увеличивает надежность связи
за счет уменьшения вероятности возникновения ошибок, так как уменьшается время и
объем передачи.
В качестве алгоритма
компрессии был выбран свободно распространяемый алгоритм автором которого
является Roberto Della Pasqua ( http://www.dellapasqua.com/delphizlib/
). К сожалению, указанный сайт с некоторого времени не доступен.
Клиент-FC, начиная с версии 0.03.00, и ФБП-IP Мост, начиная с версии 1.8, обмениваются данными в зашифрованном виде. В
качестве алгоритма шифрования выбран алгоритм по ГОСТ 28147-89, в реализации
Hagen Reddmann (HaReddmann@AOL.COM).
Выбор ГОСТ был сделан на
основании нескольких соображений.
Безопасность передаваемых данных является довольно серьезным вопросом. Я
заявляю, что предпринял все необходимые меры для того, чтобы обеспечить
пользователю максимально возможную защиту передаваемых данных, насколько это
было в моих силах. Однако я спокойно отношусь и к возможному недоверию со
стороны пользователя.
Для преодоления возможного недоверия я даю механизм,
позволяющий пользователю написать самостоятельно процедуры шифрования и
компрессии. Для этого эти процедуры вынесены в динамическую библиотеку.
Если по каким-либо причинам вы не удовлетворены работой
алгоритмов сжатия и шифрования, то вы можете написать свою собственную версию
библиотеки FCDLL.DLL следуя приведенной ниже спецификации.
Спецификация
библиотеки FCDLL.DLL
function fcdllver: pChar; stdcall;
external 'fcdll.dll';
Возвращает указатель
на строку содержащую информацию о версии библиотеки.
procedure compress(var p :Pointer; var z :int64); stdcall; export;
procedure decompress(var p :Pointer; var
z :int64); stdcall; export;
procedure decrypt(var p :Pointer; var z :int64; const Key :pChar); stdcall;
export;
procedure encrypt(var p :Pointer; var z :int64; const Key :pChar); stdcall;
export;
p – указатель на область памяти подлежащий
компрессии/декомпрессии, шифрованию/дешифровке;
z – размер этой области памяти;
Процедуры изменяют
значения p и z. После завершения
работы процедуры эти переменные указывают на области памяти, содержащие
результат работы процедур.
[EOF]