-
Notifications
You must be signed in to change notification settings - Fork 0
License
masahide/libipmsg
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
IP メッセンジャライブラリ(Unix用) WindowsのIPメッセンジャーと通信するライブラリ。 このライブラリはスレッドセーフでない。注意が必要。 プロトコルを実装したもので他の言語との実装と通信できるようにShift_JIS限定にはなっていない。 但し、プロトコルの電文中の区切り文字として'\0'を使うことが有るため、 UTF16やUCSの様な、文字コードに'\0'を含む文字コードには対応していない。 このライブラリのバージョンでは、暗号系はOpenSSLのcryptoライブラリを使用するため、 公開鍵はRSA512,1024,2048 共通鍵はRC2-40,RC2-128,RC2-256,BLOWFISH-128,BLOWFISH-256 をサポートできる。(通信先のクライアントの最強強度の暗号をネゴシエートして自動選択する。) 但し、Windows版は(ソース中のコメントによれば)「手抜き」の実装なので最強強度で選択 してしまうと、Windows版は自己の能力を虚偽申請しているので暗号化されたパケットを復号 出来ないことに注意。 Windows版ではRSA512+RC2-40, RSA1024+BLOWFISH128しかサポートしていないが これはWINCOMPATマクロによりサポートする。(WINCOMPATを定義すると、Windows版の自己能力の虚偽申請に 合わせて暗号化方法を選択する。) ダウンロード周りファイル名の変換はファイル名コンバータオブジェクトで行う。 ローカルファイルシステムのエンコーディングとメッセージのエンコーディングの相互変換するオブジェクトで、 ライブラリとしては仮想基底クラスのFileNameConverterと変換を行わないNullFileNameConverter(デフォルト) を提供する。アプリケーションは必要に応じて、FileNameConverterを継承して、ファイル名変換ロジック を組み込む必要がある。(Windows版はShift_JIS(CP932)、一般のUnixではeucJP or UTF-8だから。) コマンドオプションの実装や、リトライ等の実装は適当であるので使用には注意が必要。 ログはアプリ側の実装とし、当方は関知しない。 心残り ・全体的にスレッドセーフでない。 ・クラスの分割がいまいち。(IpMessengerAgentの責務が多すぎる。 プロトコルのハンドリングとアプリとのインターフェイスを分離すべき) ・スタック上のインスタンスが多すぎる。もっとヒープ上にとるべき。
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published