任何人都可以解釋爲什麼CryptImportKey函數接受0-5的hPubKey(解密密鑰句柄)?CryptImportKey CryptoAPI中接受的0 hPubKey導入加密的會話密鑰
的環境是這樣的:
PC#1:生成在本地密鑰容器中的密鑰交換密鑰對(公共/私有)(CryptGenKey
瓦特/ AT_KEYEXCHANGE),則出口的公共部分作爲PUBLICKEYBLOB並將其發送給PC#2
PC#2:從PC#1注意到公共密鑰二進制大對象,並將其導入到本地密鑰容器。在同一本地密鑰容器中創建一個會話密鑰。出口本地密鑰容器會話密鑰到SIMPLEBLOB(CryptExportKey
),使用從客戶端的密鑰團(這是用來加密會話密鑰)導入的公鑰。提供本地密鑰容器hProv,key-blob緩衝區指針和長度,hPubKey和flags的0(零),以及a指向HCRYPTKEY句柄的指針。
完成上述操作後,我得到一個有效的句柄,並且可以使用我回來的句柄調用CryptEncrypt
和CryptDecrypt
。是的,如果我在CryptImportKey上指定了從PC#1上面的第一步生成的密鑰交換密鑰對的句柄,那麼也可以。我只是不明白爲什麼hPubKey的值爲0,就好像CryptoAPI「知道」私鑰用於加密數據一樣。
謝謝。