Makefile написан Rinick и может быть скомпилирован в библиотеку под bcc (
[email protected]).
В сжатом пакете есть 4 каталога.
lib: Содержит файлы lib (и соответствующие исходные файлы для справки). Перед использованием скопируйте два файла goozo_crypt.obj и tomcrypt.lib в каталог lib C++builder.
include: файл заголовка, скопируйте его в каталог include C++builder перед использованием.
docs(tom): том предоставляет описание библиотеки функций шифрования в формате PDF (если вы хотите узнать больше о функциях, вы можете прочитать комментарии в заголовочном файле и исходном файле)
ECC Риника: пример и генератор ключей для асимметричной криптографии на эллиптических кривых
Несколько базовых функций инкапсулированы в независимые функции, что упрощает их использование.
После #include <goozo_crypt.h> вы можете использовать следующую функцию для шифрования: ltc_eax_encrypt(&aes_desc, "111", "222", pchar, pcharC, 300);
В pchar содержится 300 байтов содержимого, которое зашифровано и сохранено в pcharC. Пароль пользователя — 111 (AnsiString).
222 — это системный пароль (AnsiString), который отличает вашу систему aes от других. Его можно рассматривать как двухуровневый пароль.
aes_desc — метод шифрования, доступны следующие варианты:
Blowfish_desc, rc5_desc, rc6_desc, rc2_desc, Saferp_desc, Safer_k64_desc, Safer_k128_desc, Safer_sk64_desc, Safer_sk128_desc, rijndael_desc, aes_desc, rijndael_enc_desc, aes_enc_desc, xtea_desc, twofish_desc, , des_ desc, des3_desc, cast5_desc, noekeon_desc,skipjack_desc, khazad_desc, anubis_desc
Если нет особой необходимости, просто используйте для расшифровки aes: ltc_eax_decrypt(&aes_desc, "111", "222", pcharC, pcharP, 300);
В pcharC содержится 300 байт зашифрованного содержимого. После расшифровки оно сохраняется в pcharP. Остальные параметры такие же, как и в сводке по памяти: AnsiString hash=ltc_hash_mem(&md5_desc, pchar, 800);
В pchar 800 байт контента, а его дайджест MD5 сохраняется в хеше.
md5_desc — режим сводки, доступны следующие варианты:
chc_desc, Whirlpool_desc, sha512_desc, sha384_desc, sha256_desc, sha224_desc, sha1_desc, md5_desc, md4_desc, md2_desc, Tiger_desc, rmd128_desc, rmd160_desc
Если требования к безопасности высоки, рекомендуется использовать sha512 или sha384. Обычно md5 достаточно. Сводка файла: AnsiString hash=ltc_hash_file(&md5_desc, "C:\1.txt");
Рассчитайте дайджест файла C:1.txt и сохраните его в хеше. Остальные параметры такие же, как указано выше.
Для получения информации о других функциях см. инструкции в формате PDF и исходные файлы.
Библиотека функций шифрования поддерживает следующие функции шифрования, которые обеспечивают поддержку шифрования очень большой целочисленной библиотеки.
Иглобрюхая рыба
ХТЕА
RC5
RC6
БЕЗОПАСНЕЕ+
Рейндал (он же AES)
Две рыбы
БЕЗОПАСНЕЕ (К64, СК64, К128, СК128)
RC2
ДЕС, 3ДЕС
КАСТ5
Ноекон
Скипджек
Анубис (с дополнительной настройкой, предложенной разработчиками)
Хазад
Связывание режимов (этой частью не пользуюсь, не знаю как перевести)
Режимы включают в себя запуск, шифрование/дешифрование и установку/получение IV-интерфейсов.
Режим поддерживается.
ЕЦБ
Си-Би-Си
ОФБ
ЦФБ
CTR
Хэш-метод, поддерживаемый односторонней хэш-функцией.
MD2
MD4
MD5 (чаще используется)
ША-1
SHA-224/256/384/512 (рекомендовано Риником)
ТИГР-192
РАЙП-МД 128/160
ВИРЛПУЛ
Аутентификация информации
FIPS-198 HMAC (поддерживает все хэш-функции)
CMAC, также известный как
ОМАС1
(Поддерживает все функции шифрования)
PMAC-аутентификация
Пеликан МАК
Режим аутентификации шифрования информации
Режим EAX
Режим OCB
Режим CCM (спецификация NIST)
Режим GCM (спецификация IEEE)
Генератор псевдослучайных чисел (используется некоторыми другими функциями)
Тысячелистник (алгоритм на основе)
RC4
Поддерживает /dev/random, /dev/urandom и Win32 CSP RNG.
Фортуна
ТРЕЗВЫЙ-128
алгоритм открытого ключа
RSA (с использованием PKCS #1 v2.1)
ECC (стандарт цифровой подписи EC-DSA X9.62, X9.63 EC-DH, стандарт обмена ключами)
Риник добавил функцию шифрования и дешифрования ECC для реализации таких функций, как регистрация программного обеспечения.
DSA (пользователи могут определить собственный алгоритм создания цифровых подписей)
Другие поддерживаемые стандарты
PKCS #1 (заполнение версии 2.1)
ПККС №5
ASN.1 DER для типов ПОСЛЕДОВАТЕЛЬНОСТЬ, ЦЕЛОЕ ЧИСЛО, БИТОВАЯ СТРОКА, ОКТЕТНАЯ СТРОКА, ИДЕНТИФИКАТОР ОБЪЕКТА, СТРОКА IA5, СТРОКА ДЛЯ ПЕЧАТИ, UTCTIME, ВЫБОР и NULL.