Arcfourの優先度を最高にしていると接続できない
サーバからのproposalを,で区切りで分割してからstrcmpしておらず、サーバproposal全体と,で区切ったクライアントproposalでstrstrしているためです。
サーバからのカンマ区切りとクライアントのカンマ区切りを比較する、KEXアルゴリズム/共有鍵アルゴリズム/MACアルゴリズム/圧縮アルゴリズムの決定部分では同様の実装をしていますので、値によって同じことが起こりえます。
ありがとうございます。問題ないのを確認しました。
Arcfourの優先度を最高にしていると、サーバ側の設定によっては接続できなくなる。 具体的には、共通鍵暗号としてArcfour128かArcfour256の少なくともどちらかを許しているが、Arcfourは許していないサーバに接続できない。
サーバからのProposalに含まれるarcfour128,arcfour256をarcfourと誤認しているためと思われる。