libstrophe を Windows 用の DLL としてコンパイルしました。
DecryptMessage()
スタンザが前後に渡されるため、Jabber サーバーによる認証中に3 回呼び出されます。最初の 2 回の呼び出しでは を返します0 (SEC_E_OK)
が、3 回目の呼び出しでは を返します0x80090302 (SEC_E_UNSUPPORTED_FUNCTION)
。問題は、ドキュメント によるとSEC_E_UNSUPPORTED_FUNCTION
、有効な戻り値ではないことです。これは、Windows 7 と Windows XP の両方で発生します。
受信した暗号化された文字列をガベージに置き換えて、戻り値が何であるかを確認しようとしましたが、それはだった0x80090318 (SEC_E_INCOMPLETE_MESSAGE)
ので、単に「ガベージイン - ガベージアウト」の場合ではないことがわかりました。また、Pidgin を使用して同じ JID でログインして、JID が正しいことも確認しました。
誰でも啓発を提供できますか?