2015-01-16 88 views
1

CryptSignMessage可以通過在PCRYPT_SIGN_MESSAGE_PARA參數中傳遞適當的編碼類型來生成PKCS#7簽名。但我似乎無法找到與CryptSignHash函數做同樣的事情的方法。使用CryptSignHash獲取PKCS#7簽名

是否有方法使用CryptSignHash API創建PKCS#7簽名,或者是否有任何其他函數可以調用將CryptSignHash的輸出轉換爲PKCS#7?

回答

0

不,您不能將CryptSignHash的輸出轉換爲CryptSignMessage的輸出。

CryptSignMessage創建用於創建數字簽名的CMS 容器格式。這不僅僅是簽名的加密定義中的數字簽名。消息首先被散列,然後散列+可能的其他信息被散列並簽名。所以產生的簽名不是對數據的直接簽名。

使用CryptSignHash您直接簽署給定的散列。並且該散列直接在數據上執行。由於散列是一種方式,因此無法重建數據,因此無法執行CryptSignMessage所要求的方案。

簡而言之,雖然這些方法的名稱看起來很相似,但這兩個函數在不同級別執行加密。一個是密碼學原語,另一個是應用級協議。

+0

PS這是一個相當不錯的個人資料,有人仍然發佈這樣一個匿名的名字,希望我能有一些幫助 –