Как мы можем проверить цифровую подпись openssl в C ++ и Windows API - PullRequest
1 голос
/ 20 июля 2011

Используя openssl, я создал подписанный документ на сервере, пожалуйста, смотрите ниже команды для этого.

------ Создать закрытый ключ.

openssl pkcs12 -in "D:\Cummins Issues\XML  Encryption\mycredentialsandkey2010.pfx"  -nodes -nocerts -out "D:\privatekey.pem" -nodes

------ Создать открытый ключ.

openssl rsa -in "D:\privatekey.pem" -pubout -out "D:\rsapublickey.pem"

------ Создать подписанный документ.

openssl dgst -sha1 -sign "D:\privatekey.pem" -out "D:\ProductInformation_xml.cipher" "D:\ProductInformation.xml"

Теперь я могу проверить цифровую подпись, используя opensll, как показано ниже

--- Проверьте

openssl dgst -sha1 -verify "D:\rsapublickey.pem" -signature "D:\ProductInformation_xml.cipher" "D:\ProductInformation.xml"

Но мне нужно проверить цифровую подпись, используя C ++ & Windows API в клиентском приложении (без библиотеки openssl или исходного кода). Я знаю, используя открытый ключ и хэш, мы можем проверить цифровую подпись. Пожалуйста, предоставьте мне псевдокод или Windows API как можно скорее.

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 20 июля 2011

CryptoAPI от Microsoft позволит вам подписать и проверить данные.

Следует отметить, что Microsoft представила CNG с Windows Vista и далее.Поэтому оцените ваши требования.

Образец источника для подписи и проверки можно найти по MSDN с использованием CryptoAPI

0 голосов
/ 20 июля 2011

Почему вы не можете использовать libssl? Это очевидный путь, чтобы идти вниз. Сами алгоритмы: RSA и SHA1 , хотя вы действительно не должны пытаться свернуть свои собственные.

Поиск в Google для «Microsoft ssl library» приводит только к множеству уязвимостей. Нет, правда!

...