Здравствуйте, Jolly Roger, Вы писали:
O>>Админские права требуются для определенного уровня доступа к криптоконтейнеру, хранящему ключ.
JR>Какие, например? Может, конечно, я чего забыл, но вроде как для обычной работы никаких особых прав не требуется
Разумеется, к чужому контейнеру так просто доступ не получишь, но это скорее плюс
Была ситуация — в одной программе использовался Microsoft Base Cryptographic Provider для вычисления MD-5,
причем то ли по незнанию, то ли по ошибке, CryptAcquireContext создавал дефолтный контейнер.
Все работало несколько месяцев исправно, затем программу запустили на только что установленной
Windows XP, и CryptAcquireContext вернул ошибку, так как дефолтный контейнер до этого еще никем не
создавался, а прав (программа запускалась под учеткой "Гость") для его создания не было.
Есть еще обширная тема, связанная с ограничением на длину ключей, которое может быть разным в
разных версиях, локализациях и редакциях Windows.
O>>Вот тут и начинается код, отнюдь не пять строчек.
JR>Хм, CryptExportKey, это и делает
Ну не в файл — в блоб, какая разница
С импортом кдюча и закрытием хёндлов и будет 5-6 строк, с открытием-чтением файла — 10
А ты попробуй (см. второй параметр в CryptExportKey, если думать о безопасном транспорте) — узнаешь
JR>Ну тут как посмотреть, с одной стороны — вроде да, несколько лишних действий. С другой — действий-то чуть, зато унифицированный доступ к разным алгоритмам и разным их реализациям, единый интерфейс для разработчиков криптопровайдеров, что позволяет одним кодом работать с разными поставщиками. В этом тоже есть свои плюсы, ИМХО.
Единственный плюс стандарных криптопровайдеров, если рассматривать это в плоскости MD-5/SHA-1, это то,
что они работают очень быстро. Сам замерял. Было несколько сторонних библиотек, включая Crypto++ и
собственные реализации — CryptHashData на первом месте.