Добрый день, Reboot.
Reboot пишет:Расскажите, пожалуйста, про программно-реализованные алгоритмы, а то в документации они упомянуты как-то вскользь.
Принципы и правила работы с программно реализованным алгоритмом AES256 в основном такие же, как и для аппаратных алгоритмов за исключением некоторых моментов:
Reboot пишет:Нужно ли создавать хендл?
1) Да, необходимо инициализировать Guardant API (функция - GrdStartup) и создать хэндл (функция – GrdCreateHandle).
Reboot пишет:Нужно ли вводить в этот хэндл коды (если нужно, то какие)?
Нужно ли логиниться к электронному ключу, или наличие ключа вообще не требуется?
2) Нет, при использовании программного алгоритма коды доступа не нужны и соответственно логиниться к электронному ключу не нужно.
3) При вызове функции GrdCrypt/GrdCryptEx в качестве параметра dwAlgo нужно указывать GrdSC_AES256.
Отдельно хотелось бы отметить тот факт, что Guardant API естественно в основном ориентированно на работу и взаимодействие с электронными ключами Guardant.
Программно-реализованный алгоритм необходим в большей степени для шифрования больших объемов данных и, как правило, предполагает работу в некой связке с ключом и аппаратными алгоритмами (например, программным алгоритмом выполняется шифрования данных большого объема (от десятков килобайт до сотен мегабайт) а на аппаратном выполняется шифрование ключа программного алгоритма).
Использование только программного алгоритма без электронного ключа не несет в себе большого смысла как защита для приложения, с одинаковым успехом можно использовать и другие, сторонние разработки программных алгоритмов шифрования.
Reboot пишет:И в чем принципиальная разница между функциями GrdCrypt(Ex) и GrdTransform(Ex)?
Основная разница заключается в том, что GrdCryptEx является оберткой для GrdTransformEx позволяющей работать с программно реализованным алгоритмом, если при вызове GrdCryptEx в параметре dwAlgo указан номер аппаратного алгоритма, то вызов передается в GrdTransformEx.
Подробно все API функции описаны в нашей Справочной системе по Guardant API.