Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];

Вниз

Библиотека AllLib, кто автор и если оф. сайт?   Найти похожие ветки 

 
Layner ©   (2006-03-31 14:32) [0]

Скачал библиотеку по ссылке с этого сайта, вещь очень нужная, только так быстро не разберешсь с их пасами от 100кб до 2х мб, и кроме них есть один текстовый файл, где описываются возможности. Хотелось бы найти информации побольше по этой сборке, например рубрикатор функций например, с кратким описанием или что нибудь подобное, есть ли таковое? Хотел просто разобраться с ф-ми шифрования, без 0,5 наверное не обойтись :)
Ссылки где можно что то по ней найти
subscribe.ru/archive/comp.soft.prog.delphiinternet/200601/14033108.html
vstepanov78.narod.ru/main.htm


 
Jeer ©   (2006-03-31 15:27) [1]

Polaris software
Владимир Гайтанов, вероятно.
http://www.vglib.com/


 
Vlad78 ©   (2006-04-16 23:59) [2]

Привет, Layner - а что оказалось непонятно?

Вообще, все ключевые функции и методы библиотеки (с указанием модуля их расположения) перечислены в справке: http://vstepanov78.narod.ru/prog.htm#alllib
Дальше находите их в коде и смотрите комментарий - в нем описано назначение всех параметов.
Кроме того, примеры вызова многих функций и методов можно найти в исходниках утилиты Utils.exe (в том числе, вызова методов шифрования и подписи CryptoAPI/Крипто-Про и триальной Сигнал-КОМ Message-PRO)

К разработке на vglib.com библиотека не имеет отношения, хотя процентов пять кода (обычно требующего спецзнаний, скажем, реализации CRC, Blowfish) позаимствован из других freeware-библиотек, в основном, с torry.ru (по работе с CryptoAPI и Message-PRO из Delphi - собственные наработки). Ввеху странички о библиотеке добавил ссылку на форум, где можно задать вопросы.


 
Vlad78 ©   (2006-04-17 00:02) [3]

P.S. Библиотека писалась для себя, для работы, поэтому сделать более подробную справку и сайт - руки не доходят. Функции и методы, не перечисленные в справке, скорее всего, внуренние и слишком специализированные. Хотя некоторые вещи, на которых не акентировался в справке, могут быть полезны. Например, при необходимости непосредственно обращаться к API-функциям CryptoAPI удобно использовать одноименные методы-обертки класса TCryptoAPI (модуль GCryAPI.pas), которые отличаются от функций API тем, что обрабатывают коды ошибок последних, генерируя исключения Delphi, кроме того, импортируют функции API динамически. После уровня методов-оберток в классе TCryptoAPI следует уровень промежуточных методов, например, аналогов функций API с поддержкой кэширования ключей (CachedAcquireContext и др.), аналогов функций API импорта сертификатов, автоматически определяющих тип сертификата - двоичный или Base64 (CodedCertCreateCertificateContext и др.) и  прочие промежуточные методы, к которым изредка обращаюсь напрямую в своих приложениях, поэтому разместил в секции public объекта (методы вроде AccessPublicKey, позволяющего получить дескриптор публичного ключа по имени контейнера, содержимому ключа или параметрам сертификата в хранилище сертификатов; AlgProcessData, позволяющего шифровать и подписывать ключами, задаваемыми разными способами алогично AccessPublicKey и т.п.). Наконец, уровень методов, перечисленных в справке. Экземпляр объекта TCryptoAPI может быть получен обращением к функции function CryptoAPI: TCryptoAPI, которая при первом обращении создает объект (потому в справке вызовы - вроде CryptoAPI.SysProtect) и хранит объект в глобальной переменной, возвращая далее ее (точнее, в каждом потоке своя переменная, но разделение хранения переменной по потокам можно отключить, задав директиву NOTHREADSAFE), с автоматическим освобождением объекта при завершении приложения (механизм автоматического освобждения сделан так, что не увеличивает размер кода приложения, несмотря на большие pas-файлы, если в приложении нет обращений к данному объекту), впрочем, можно освободить объект и раньше вызовом глобальной функции CryptoAPIReset или создавать и освобождать его вручную. Вызовы функций API можно выводить на консоль и в лог во временный каталог заданием DebugInfo^.DebuggingClasses = "CAPI" (или "*" для вывода отладчной информации по всем объектам).
По такому же принципу построены и все другие объекты-надстройки над функциями API (т.е. реализуется уровень методов-оберток над используемыми объектом функциями API, переводящих коды ошибок в исключения Delphi и, если API-функция есть не во всех версиях Windows, импортирующих ее динамически при первом обращении к методу; иногда уровень промежуточных публичных методов и уровень конечных методов, упомянутых в справке и подробнее откомментированных в коде; глобальная функция для получения экземпляра объекта, автоматически освобождаемого при завершении приложения; возможность ведения отладочных логов вызовов функций API). Есть следующие объекты-надстройки над функциями API: TSocketAPI (без исключений, модуль GGlbUtil.pas); TWindowsAPI (список процессов и сервисы), TComponentServices, TActiveScriptAccess (немного другие принципы, т.к. надстройка над COM), TADODatabaseAccess (тоже COM), TGDIPlusAPI, TASPAccess и TDHTMLAccess (тоже COM), TWinInetAPI (модуль GDifUtil.pas); TCryptoAPI (модуль GCryAPI.pas); TMessagePro (модуль GMProAPI.pas); есть еще старый объект для работы с Extended MAPI на сходных принципах, но пока не интегрировал в AllLib, потому не опубликовал.
Еще может быть непонятно - в функциях и методах криптографии для емкости часто используется прием, когда, например, параметр Data (шифруемые или подписываемые данные) интерпретируется как содержимое подвергаемых криптографической операции данных (при значении параметра IsFile = False) или как имя файла с этими данными (при IsFile = True); то же самое бывает с ключами (в зависимости от булевского параметра IsKeysInFiles).


 
Vlad78 ©   (2006-04-17 00:03) [4]

В библиотеке нет визуальных (и невизуальных) Delphi-компонентов - она ориентирована только на различные служебные функции и объекты. Построена библиотека так: модуль GGlbUtil.pas включает функции и объекты, не использующие SysUtils для сознания маленьких exe (вроде конветрации типов с пониманием разных форматов, включая, скажем, "30-JAN-2004", и независимо от языковых настроек; аналогов функций SysUtils сравнения строк и т.п.; кодирования и декодирования строк C++, Pascal, Base64, HTML, KOI; типовые диалоги на WinAPI без использования Forms; список и иерархия; логи; аналоги threadvar с автоосвобождением без увеличения кода и др.); модуль GVariant.pas еще не использует SysUtils, но использует тип Variant, при упоминании которого в Delphi 7 подключается SysUtils (модуль включает функции конвертации вариантов в нужные типы с распознанием разнообразных форматов, а именно, функции ToBool, ToInt, ToFloat, ToCurr, ToDateTime, ToStr, а также прочую работу с вариантами, скажем, сведения типов вариантов к восьми базовым функцией VarBaseType); модуль GDifUtil.pas включает все, что требует SysUtils, но не требует VCL - т.е. добавляется использование классов Exception, TStrings, TStream (в модуле, скажем, реализуются индексируемые списки и таблицы в памяти с быстрым поиском без изменения порядка элементов, в отличие от TStringList, в том числе списки вариантов; обертки потоков с кэшированием; копирование файлов по маске, с подкаталогами;  экспорт и импорт ключа реестра со всеми параметрами и вложенными ключами с их параметрами; чтение из оборудования параметров CPU, BIOS, HDD для привязки к компьютеру во всех Windows и др.). Специализированные модули по криптографии: GCryAPI.pas (и хидеры GWinCryp.pas, GWinCPro.pas), GMProAPI.pas (и хидер GMsgPro.pas) и GExtUtil.pas (использующий предыдущие). Ну, и еще файлик констант GConsts.pas, упрощенные замены SysUtils - модули GExcept.pas и GExcepts.pas (нигде в библиотеке не используются), работа с VCL (модуль, использовующий Forms) - GVCLUtil.pas (форма диалога, минимизирующего приложение; чтение узлов дерева; копирование грида).
GGlbUtil.pas, GVariants.pas и GDifUtil.pas имеют одинаковые списки разделов, обозначенных {--- Имя раздела ---------}, внутри которых сосредоточены различные служебные функции и объекты (все откомментировано) на тему раздела. Это разделы:
- Типы и константы
- Ошибки и исключительные ситуации
- Указатели и блоки памяти
- Булевские операции
- Числовые операции
- Операции с датой и временем
- Операции со строками
- Операции с вариантами
- Массивы указателей и списки
- Списки строк
- Списки вариантов
- Потоки
- Иерархия
- Отладка
- Файловые операции
- Реестр
- Базы данных
- Сеть
- Web-страницы
- Параметры системы и служебные функции
- Приложения и библиотеки
- Объекты COM
- Оборудование
- Окна
- Защита от несанкционированного доступа и изменений
- Конвертация
- Экспорт и импорт
В общем, в библиотеке мне интересно было заложить различные принципы универсализации кода (и действительно, в течение написания за 5 лет фундаментальные моменты библиотеки мне не приходилось менять, разве что выделил работу  вариантами в отдельный модуль). Год назад уже выкладывал библиотечку (на старом сайте) с очень кратким описанием и давал ссылку на vingrad.ru. С тех пор изменения по криптографии были несущественны; добавились некоторые другие функции и классы вроде поддержки IActiveScript для выполнения JScript/VBScript, простого парсинга строк ParseWord и др., директивы для исключения из exe кода поддержки многопоточности, контроль утечки объектов, работа с cab, ZLib, TSocketAPI, список процессов, ну и остальное - слишком специализированные вещи.


 
Vlad78 ©   (2006-04-17 00:03) [5]

Около 5% кода - позаимствовано из других библиотек, а именно:
- руссифицированные константы Delphi (модули ComConst.pas, Consts.pas, DBConsts.pas, OleConst.pas, RtlConsts.pas, SysConst.pas) позаимствованы с torry.ru, 1998-99 Polaris Software, http://members.xoom.com/PolarisSoft, добавлены русско-английские варианты через слэш, недостающие константы для совместимости с Delphi3-Delphi7, выбор в зависимости от директив RUS_LANG, ENG_LANG русских, английских или русско-английских (по умолчанию) вариантов;
- в модуль GGlbUtil.pas из SysUtils.pas перенесены некоторые стандартные функции Borland Delphi (CompareMemStd, DateTimeToTimeStampStd, TimeStampToDateTimeStd, StrScanStd, StrRScanStd, StrLenStd, CompareStrStd, CompareStrUpper, MakeObjectInstanceStd, FreeObjectInstanceStd);
- подсчет 16- и 32-битного CRC в CalcCRC16, CalcCRC (модуль GGlbUtil.pas) позаимстсован с torry.ru, CRCTab calculated by Mark G. Mendel, Network Systems Corporation, UpdCRC derived from article Copyright (C) 1986 Stephen Satchell, Satchell Evaluations and Chuck Forsberg, Omen Technology, CRC32Tab, UpdC32 Translated to Turbo Pascal (tm) V4.0 March, 1988 by J.R.Louvau Copyright (C) 1986 Gary S. Brown;
- функция получения версии Internet Explorer в дружественном формате IEFriendlyVer (модуль GGlbUtil.pas) реализована согласно http://helpware.net/htmlhelp/hh_info.htm;
- функции получения информации о процессоре CPUInfo и его тактовой частоты GetCPUSpeed (модуль GGlbUtil.pas) написаны на основе http://www.torry.net/vcl/system/cpu/cpuid.zip (с исправлением ошибки, из-за которой на Notebook с экономичным режимом использования электроэнергии порцессором неправильно определялась тактовая частота);
- в функции HDDInfo (модуль GDifUtil.pas) драйвер DiskId32 (freeware) для чтения параметров HDD в Windows98 взят с http://www.winsim.com/diskid32/diskid32.html, вообще много информации о способах чтения параметров BIOS, HDD из оборудования почерпнуто из примеров http://www.delphibbs.com/keylife/iblog_show.asp?xid=3080 (исправлены ошибки, добавлен свой метод сканирования памяти BIOS);
- диалог просмотра папок TBrowseFolderDlgStd (модуль GDifUtil.pas) взят с небольшими изменениями из библиотеки RX;
- функция суммы прописью AmtAsWordsIni (модуль GDifUtil.pas) сделана на основе библиотеки с torry.ru (добавлена загрузка настроек не из файла Ini, а из строки, например, DefAmtAsWordsIniStr);
- для функций симметричного шифрования ProtectStr, UnprotectStr (модуль GDifUtil.pas) реализации алгоритмов Blowfish, RC6, GOST взяты с torry.ru, Dave Barton (davebarton@bigfoot.com);
- поддержка загрузки графики в TGIFBitmap и TPCXBitmap (модуль GVCLUtil.pas) позаимствована с torry.ru, Endre I. Simay, sunibmp 2.02, endre_s@freestart.hu



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.014 c
2-1145549181
Vitalik__
2006-04-20 20:06
2006.05.07
координаты курсора мыши


2-1145257356
KyRo
2006-04-17 11:02
2006.05.07
Cкрол мыши


3-1142091496
Sollo
2006-03-11 18:38
2006.05.07
dbExpress сумма вычисляемых полей


15-1145073126
grisme
2006-04-15 07:52
2006.05.07
AC97


9-1128282128
3d[Power]__
2005-10-02 23:42
2006.05.07
OGG via directsound





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский