Импорт SSL DLL в проект

0

У меня есть проект, который я импортировал из старой системы. Этот код стал наиболее проблематичным

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 Release

Я импортировал последнюю библиотеку SSL в проект и получил эту ошибку (в строке на линии Crypto = new GameCrypto())

System.DllNotFoundException: невозможно загрузить DLL libeay32.dll: приложение не запускалось, потому что его бок о бок конфигурация неверна. Пожалуйста, просмотрите журнал событий приложения или используйте инструмент командной строки sxstrace.exe для более подробной информации. (Исключение из HRESULT: 0x800736B1)

на PROJECT_NAME.Native.BF_set_key (IntPtr _key, Int32 len, Byte [] data) в PROJECT_NAME.Main.Blowfish.SetKey (данные байта []) в PATH\Main\Blowfish.cs: строка 85 на PROJECT_NAME.Main.GameCrypto..ctor(Byte []) в PATH\Main\Blowfish.cs: строка 15 на PROJECT_NAME.Main.GameClient..ctor(Boolean Robot) в PATH\Main\GameClient.cs: строка 48

Я смог решить эту проблему, и я застрял в этой проблеме (на новой строке OpenSSL.Crypto.DH())

System.TypeInitializationException: инициализатор типа для "OpenSSL.Core.Native" сделал исключение. ---> System.DllNotFoundException: Не удается загрузить DLL 'ssleay32': операционная система не может работать. (Исключение из HRESULT: 0x800700B6)

в OpenSSL.Core.Native.SSL_library_init() в OpenSSL.Core.Native..cctor() --- Конец внутренней трассировки стека исключений - в OpenSSL.Core.Native.DH_new() в OpenSSL.Crypto.DH..ctor() в PROJECT_NAME.Main.GameClient..ctor(Boolean Robot) в PATH\Main\GameClient.cs: строка 49 System.NullReferenceException: ссылка на объект не установлена в экземпляр объекта. в PROJECT_NAME.Main.GameWorker.ConnectionHandler(StateObj S) в PATH\Main\GameWorker.cs: строка 33

Теги:
ssl

1 ответ

1
Лучший ответ

Вам нужна копия libeay32.dll, libssl32.dll и ssleay32.dll в каталоге приложения

  1. Добавьте неуправляемую dll в файл или связанный файл в ваш проект. (щелкните правой кнопкой мыши проект → добавить → существующий файл, затем добавьте или добавьте в качестве ссылки).

  2. Выберите файл в проводнике решений. В окне свойств установите действие сборки для копирования всегда.

Не забывайте, что неуправляемая DLL сама по себе может потребовать другие неуправляемые DLL. Если вы забудете добавить их, вы можете получить ту же ошибку. Вы можете использовать хост зависимостей, чтобы помочь вам, если вы не знаете, что такое зависимости.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню