2011-07-20 61 views
1

使用openssl我已經在服務器上創建了簽名文檔, 請參閱下面的命令。我們如何驗證C++和Windows API中的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。

任何幫助表示讚賞。

+0

這是一個圖書館的目的,不推倒重來找到用於簽名和驗證樣品來源。如果使用openssl或crypto ++或Botan不是一個選項,那麼您將不得不實現自己的算法。 另請注意,使用這些庫中的任何一個靜態編譯客戶端將不會在客戶端中包含整個庫,而只包含您使用的內容。 – Ha11owed

回答

0

爲什麼你不能使用libssl?這是明顯的下降路線。算法本身是RSASHA1,雖然你真的不應該試圖推出自己的。

谷歌搜索「microsoft ssl library」只會產生許多漏洞。不完全是!

0

來自Microsoft的CryptoAPI將允許您簽署和驗證數據。

你應該注意到微軟已經從Windows vista開始引入了CNG。因此請評估您的要求。

您可以從MSDN使用的CryptoAPI