1

Libstrophe に問題があります。Linux (fedora) では動作させることができましたが、Windows ではそれほど簡単ではないようです。

basic.exe を実行すると、次の出力が得られます (サーバーは dukgo.com でした)。

TLSS DEBUG QuerySecurityPackageInfo() success
TLSS DEBUG AcquireCredentialsHandle() success
conn DEBUG SENT: <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
xmpp DEBUG RECV: <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
xmpp DEBUG handle proceedtls called for proceed
xmpp DEBUG proceeding with TLS
TLSS DEBUG QuerySecurityPackageInfo() success
TLSS DEBUG AcquireCredentialsHandle() success
xmpp DEBUG Couldn't start TLS! error -2146893018
conn DEBUG SENT: </stream:stream>
xmpp DEBUG Socket closed by remote host.
xmpp DEBUG Closing socket.
DEBUG: disconnected
event DEBUG Stopping event loop.
event DEBUG Event loop completed.

問題は src\tls_schannel.c:331 にあるようです

ret = tls->sft->InitializeSecurityContextA(&(tls->hcred), &(tls->hctxt), name,
                          ctxtreq, 0, 0, &sbdin, 0,
                          &(tls->hctxt), &sbdout,
                          &ctxtattr, NULL);
    }

    if (ret == SEC_E_OK) {

ret 値は SEC_E_OK ではなく -2146893018 です。この問題に関する投稿をいくつか見て、OpenSLL に変更しましたが、使用できず、まだ機能していません。また、これらのケースで DecryptMessage() が言及されましたが、これまでコードのその行に到達したことはありません。SEC_E_UNSUPPORTED_FUNCTION を返す DecryptMessage

誰かがこれについて考えを持っているなら、私は本当に感謝しています.1週間以上これを修正しようとしましたが、まだ何もありません.

ありがとう、フェデリコ。

pd .:「警告 LNK4006: __NULL_IMPORT_DESCRIPTOR はすでに libeay32MTd.lib(LIBEAY32.dll) で定義されています; 2 番目の定義は無視されました」のような警告があります。

4

0 に答える 0