encryptMessage 函式 (sspi.h)
EncryptMessage (Digest) 函式會加密訊息以提供隱私權。 EncryptMessage (Digest) 可讓應用程式選擇所選機制所支援 的密碼編譯演算法 。 EncryptMessage (Digest) 函式會使用內容控制碼所參考的安全性內容。 某些套件沒有要加密或解密的訊息,而是提供可檢查的完整性 雜湊 。
此函式僅供 SASL 機制使用。
語法
SECURITY_STATUS SEC_ENTRY EncryptMessage(
[in] PCtxtHandle phContext,
[in] unsigned long fQOP,
[in, out] PSecBufferDesc pMessage,
[in] unsigned long MessageSeqNo
);
參數
[in] phContext
要用來加密訊息之安全性 內容的 控制碼。
[in] fQOP
指出保護品質的套件特定旗標。 安全性套件可以使用此參數來選取密碼編譯演算法。
使用摘要式 SSP 時,此參數必須設定為零。
[in, out] pMessage
SecBufferDesc結構的指標。 在輸入時,結構會參考一或多個可以是類型SECBUFFER_DATA SecBuffer 結構。 該緩衝區包含要加密的訊息。 訊息已就地加密,並覆寫結構的原始內容。
函式不會處理具有 SECBUFFER_READONLY 屬性的緩衝區。
包含訊息的 SecBuffer 結構的長度不得大於 cbMaximumMessage,這是從 QueryCoNtextAttributes (Digest) (SECPKG_ATTR_STREAM_SIZES) 函式取得。
使用摘要式 SSP 時,必須有類型為 SECBUFFER_PADDING 或 SEC_BUFFER_DATA的第二個緩衝區,才能保存 簽章 資訊。 若要取得輸出緩衝區的大小,請呼叫 QueryCoNtextAttributes (Digest) 函式並指定SECPKG_ATTR_SIZES。 函式會傳回 SecPkgCoNtext_Sizes 結構。 輸出緩衝區的大小是 cbMaxSignature 和 cbBlockSize 成員中的值總和。
不使用 SSL 的應用程式必須提供類型為 SECBUFFER_PADDING 的 SecBuffer 。
[in] MessageSeqNo
傳輸應用程式指派給訊息的序號。 如果傳輸應用程式未維護序號,此參數必須為零。
使用摘要式 SSP 時,此參數必須設定為零。 摘要式 SSP 會在內部管理序號。
傳回值
如果函式成功,函式會傳回SEC_E_OK。
如果函式失敗,它會傳回下列其中一個錯誤碼。
傳回碼 | 描述 |
---|---|
|
輸出緩衝區太小。 如需詳細資訊,請參閱<備註>。 |
|
應用程式正在參考已經關閉的內容。 正確寫入的應用程式不應該收到此錯誤。 |
|
不支援為安全性內容選擇的 加密 。 |
|
記憶體不足,無法完成要求的動作。 |
|
phCoNtext參數中指定了不正確內容控制碼。 |
|
找不到SECBUFFER_DATA類型緩衝區。 |
|
安全性內容不支援機密性和完整性。 |
備註
EncryptMessage (Digest) 函式會根據來自安全性內容的訊息和工作階段金鑰來加密訊息。
如果傳輸應用程式已建立安全性內容以支援序列偵測,而且呼叫端會提供序號,則函式會包含此資訊與加密的訊息。 包含這項資訊可防止重新執行、插入和隱藏訊息。 安全性套件會納入從傳輸應用程式傳遞的序號。
當您使用摘要式 SSP 時,呼叫 QueryCoNtextAttributes (Digest) 函式並指定SECPKG_ATTR_SIZES,以取得輸出緩衝區的大小。 函式會傳回 SecPkgCoNtext_Sizes 結構。 輸出緩衝區的大小是 cbMaxSignature 和 cbBlockSize 成員中的值總和。
緩衝區類型 | 描述 |
---|---|
SECBUFFER_STREAM_HEADER | 內部使用。 不需要初始化。 |
SECBUFFER_DATA | 包含要加密的 純文字 訊息。 |
SECBUFFER_STREAM_TRAILER | 內部使用。 不需要初始化。 |
SECBUFFER_EMPTY | 內部使用。 不需要初始化。 大小可以是零。 |
為了獲得最佳效能,應該從連續記憶體配置 pMessage 結構。
Windowsxp: 此函式也稱為 SealMessage。 應用程式現在應該只使用 EncryptMessage (Digest) 。
規格需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | sspi.h (包含 Security.h) |
程式庫 | Secur32.lib |
Dll | Secur32.dll |
另請參閱
AcceptSecurityCoNtext (Digest)
InitializeSecurityCoNtext (Digest)