SSL が誤った最大バッファ サイズをプログラムへ通知する

この記事は、以前は次の ID で公開されていました: JP300562
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
SSL (Secure Sockets Layer) の実装 (Schannel.dll) により、以下のコードに示されているように、誤ったバッファ サイズがプログラムに通知されます。
SecPkgContext_StreamSizes MySPCSS;if ( SEC_E_OK == QueryContextAttributes(phContext,SECPKG_ATTR_STREAM_SIZES,(PVOID)&MySPCSS) ){// MySPCSS.cbMaximumMessage is 16379, instead of 16384}
たとえば、Pine IMAP クライアントから Microsoft Exchange Server コンピュータにメッセージを送信する場合、IMAP 機能で送信メッセージを送信済みアイテムのフォルダにのみ追加する問題が発生します。メールは Microsoft Outlook Express または Netscape Messenger クライアントでは問題なく送信されます。

この問題は、SSL を使用している場合あるいはメッセージのサイズが 16,000 バイトを超える場合に発生します。その制限を超え、また SSL を使用している場合でも Outlook Express や Netscape Messenger クライアントではメッセージを送信できます。Pine クライアントから送信する場合は、Exchange Server 以外のサーバーを使用していれば送信することができます。
原因
SSL の実装 (Schannel.dll) によりプログラムに通知される最大バッファ サイズが正しくありません。問題は、Schannel.dll の最大メッセージ サイズが SSL の仕様である 16,384 より 5 バイト小さいという点です。
状況
マイクロソフトでは、この問題をこの資料の冒頭に記載したマイクロソフト製品の問題として認識しています。

この問題を解決するためのモジュールは、Windows 2000 日本語版サービスパック 3 以降に含まれております。
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
260910 最新の Windows 2000 Service Pack の入手方法

関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 300562 (最終更新日 2001-10-22) を基に作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

プロパティ

文書番号:300562 - 最終更新日: 02/04/2014 01:52:59 - リビジョン: 4.3

  • Microsoft Windows 2000 Professional
  • Microsoft Windows 2000 Service Pack 1
  • Microsoft Windows 2000 Service Pack 1
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server
  • kbnosurvey kbarchive kbtshoot kbwin2000presp3fix kbtool kbwin2000sp3fix kbenv kbsecurity kbhotfixserver KB300562
フィードバック