
У меня есть сертификат CA в Local Machine Certificate Store. Когда я запускаю эту команду -enter code here
certutil -verifyKeys
даетKey "KEYNAME" verifies as the public key for Certificate "KEYNAME" V0.0
Signature test FAILED
CertUtil: -verifykeys command FAILED: 0x80070057 (WIN32: 87 ERROR_INVALID_PARAMETER)
CertUtil: The parameter is incorrect
MSDN говорит certutil -verifykeys
: «Проверьте набор открытых/закрытых ключей».
Мне просто интересно, как он проверяет эти ключи? Хотелось бы узнать внутреннюю работу этой команды.
решение1
Он выполняет операцию подписания с использованием зарегистрированного поставщика, а затем пытается проверить подписанный текст с помощью открытого ключа, хранящегося в сертификате.
Так как я использовал своего собственного поставщика, то я увидел запрос на подпись, падающий на моего поставщика, но не запрос на проверку. Таким образом, я делаю вывод, что он выполняет подпись с помощью зарегистрированного поставщика, но для проверки он использует своего собственного поставщика, т. е. собственного поставщика cng Microsoft.