CurveZMQを使用して、クライアントとサーバー間の通信のための安全な認証と機密性を確保します。しかし、私はC#で例を見つけることができません。私はAPIドキュメントをステップバイステップで実行しようとしています。そして、CURVE_PUBLICKEY、CURVE_SECRETKEY、およびCURVE_SERVERKEYの設定で問題が発生しました。C#のCurveZMQの例とCurveZMQを使用するときにSetOption()をCURVE_SECRETKEYに使用できないのはなぜですか?
ここに私のコードです。 \ R \ ZeroMQ.ZSocket.GetOption(ZSocketOptionオプション、のIntPtr optionValue、のInt32 & optionLength)で N ZeroMQ.ZSocket.GetOption(ZSocketOptionオプションで: ソケット 'server.CurveSecretKey' 'はZeroMQ.ZException' タイプの例外をスロー、バイト[] &値)\ rを\ nはZeroMQ.ZSocket.get_CurveSecretKeyで()」
public static byte[] StringToByteArray(string hex)
{
return Enumerable.Range(0, hex.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
.ToArray();
}
var context = new ZContext();
server = new ZSocket(context, ZSocketType.ROUTER);
server.SetOption(ZSocketOption.CURVE_SERVER, 1);
string curveSKey = "8E0BDD697628B91D8F245587EE95C5B04D48963F79259877B49CD9063AEAD3B7";
var skey = StringToByteArray(curveSKey);
server.SetOption(ZSocketOption.CURVE_SECRETKEY, skey);
はあなたがCurveZMQ約C#で私にいくつかの例を与えることはできますか?
ええと...私は問題があります。現在のバイナリ 'libzmq.dll \ /。so'はCurveZMQの機能を"取得 "しませんでした...' zeromq4-x'または 'libzmqを再コンパイルする必要があります'ソースからのプロジェクト。 – metadings
'byte []'について:実際には、ZSocket.SetOptionを使って 'byte []'を設定すると、NUL文字をエスケープする必要があり、Cプログラムのターミネータとして使用されます。基本的には、SetOptionを実行する場合、NULを使用しないでください。アイデンティティを設定する場合は、NULなしでこれを行うか、rng.GetNonZeroBytesを使用してこれを行います。 – metadings
フェリックスフー、コードを稼働させることができますか?私はCurveZMQを使っていくつかのC#の例を探していますが、サンプルコードがないことにも気付きました。私は、あなたが共有できる例があれば疑問に思っていました。 –