Я пытаюсь разрешить подписи, когда сообщения хэшируются с помощью SHA-3, семейство алгоритмов Windows пока не поддерживает.
Я успешно создал свой собственный поставщик CNG, который содержит реализацию SHA-3 (на данный момент this ), я зарегистрировал его, и он работает, когда я звоню из другогоapplication, BCryptOpenAlgorithmProvider()
.
Однако функции, которые предположительно все еще используют Crypto API, не могут найти моего провайдера.Я пытаюсь использовать функции сообщений низкого уровня (CryptMsgOpenToEncode
и т. Д.), Но они, вероятно, пытаются использовать хэш провайдера CryptAPI, который, конечно, не найден для SHA-3.
Какие у меня варианты?Должен ли я реализовать свою библиотеку в качестве поставщика Crypto API?
Есть ли способ сообщить CryptMsgUpdate
, что сообщение уже хэшировано, поэтому я могу хэшировать его с помощью CNG?Как, например, CryptRetrieveTimeStamp
, у которого есть возможность передавать уже хешированные данные.
Спасибо.