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