【发布时间】:2014-12-23 23:49:55
【问题描述】:
我有一个从旧系统导入的项目。 这段代码问题最大
PacketGroup = new ArrayList();
Crypto = new GameCrypto(ASCIIEncoding.ASCII.GetBytes(STRING_CRYPTO));
KeyExchance = new OpenSSL.Crypto.DH();
KeyExchance.G = RANDOM_INT;
KeyExchance.P = OpenSSL.Core.BigNumber.FromHexString("KEY__KEY_KEY\0");
KeyExchance.GenerateKeys();
NewServerIV = GenerateIV();
NewClientIV = GenerateIV();
一开始我收到错误:
System.TypeInitializationException: 'OpenSSL.Native' 的类型初始化器 重新例外。 ---> System.Exception: libeay32.dll 的无效版本,期望 0.9.8a 开发,得到:1.0.0 发布
我在项目中导入了最新的 SSL 库并得到了这个错误(在 Crypto = new GameCrypto() 行上)
System.DllNotFoundException: 无法加载 DLL 'libeay32.dll': 应用程序无法启动 因为它的并排配置不正确。请查看应用程序事件日志或使用 命令行 sxstrace.exe 工具了解更多详细信息。 (HRESULT 异常:0x800736B1)
在 PROJECT_NAME.Native.BF_set_key(IntPtr _key, Int32 len, Byte[] 数据) 在 PATH\Main\Blowfish.cs:line 85 中的 PROJECT_NAME.Main.Blowfish.SetKey(Byte[] data) 在 PATH\Main\Blowfish.cs:line 15 中的 PROJECT_NAME.Main.GameCrypto..ctor(Byte[] key) 在 PATH\Main\GameClient.cs:line 48 中的 PROJECT_NAME.Main.GameClient..ctor(Boolean Robot) 处
我能够解决这个问题,但我被困在这个问题上(在 new OpenSSL.Crypto.DH() 线上)
System.TypeInitializationException:“OpenSSL.Core.Native”的类型初始化程序引发了异常。 ---> System.DllNotFoundException: Unable to load DLL 'ssleay32': The operating system cannot run 。 (HRESULT 异常:0x800700B6)
在 OpenSSL.Core.Native.SSL_library_init() 在 OpenSSL.Core.Native..cctor() --- 内部异常堆栈跟踪结束 --- 在 OpenSSL.Core.Native.DH_new() 在 OpenSSL.Crypto.DH..ctor() 在 PATH\Main\GameClient.cs:line 49 中的 PROJECT_NAME.Main.GameClient..ctor(Boolean Robot) System.NullReferenceException:对象引用未设置为对象的实例。 在 PATH\Main\GameWorker.cs:line 33 中的 PROJECT_NAME.Main.GameWorker.ConnectionHandler(StateObj S) 处
【问题讨论】:
标签: c# c++ .net ssl visual-studio-project