From c0dcdc3be2f9af8a8fa76b94f334f81eadfd2e33 Mon Sep 17 00:00:00 2001 From: Anton Rigin Date: Mon, 25 Apr 2022 01:10:42 +0000 Subject: [PATCH] solution with pkg-config and update readme --- blowfish/README.md | 26 ++++++++++++++------------ blowfish/blowfish.go | 2 +- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/blowfish/README.md b/blowfish/README.md index 91f234b..729d8a3 100644 --- a/blowfish/README.md +++ b/blowfish/README.md @@ -13,24 +13,26 @@ ``` - Реализация не должна делать динамического выделения памяти. -- Для сборки этой задачи, на вашей системе должен быть установлен dev пакет openssl. На ubuntu установить пакет можно командой `sudo apt-get install libssl-dev`. Сборка под другие платформы не гарантируется. На macOS должна сработать следующая последовательность действий: +- Для сборки этой задачи, на вашей системе должен быть установлен dev пакет openssl. На ubuntu установить пакет можно командой `sudo apt-get install libssl-dev`. Сборка под другие платформы не гарантируется. + +
+Установка openssl на Mac OS через Homebrew + ``` -Установка openssl через Homebrew +$ brew install openssl@3 -$ brew install openssl +После установки Homebrew предупредит вас о том, что для корректной работы библиотеки может понадобиться выставить несколько переменных окружения, нас интересует последняя: +$ export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig" -Далее нужно указать путь до библиотеки одним из способов: +Важно: на вашем компьютере путь может быть другим, а именно, начинаться с префикса /opt/homebrew вместо /usr/local. Если у вас уже стоит openssl, для правильного экспорта переменной вы можете узнать этот префикс через команду: +$ brew --prefix -1. Установка переменной окружения через GoLand: Run -> Edit Configurations -> Environment: -CGO_LDFLAGS=-L/usr/local/opt/openssl/lib - -2. Установка переменной окружения через консоль и запуск тестов: -$ CGO_LDFLAGS=-L/usr/local/opt/openssl/lib go test -v ./blowfish/… - -3. Добавить флаг прямо в коде: -// #cgo LDFLAGS: -lcrypto -L/usr/local/opt/openssl/lib +Вы также можете выставить переменную окружения в самом GoLand: Run -> Edit Configurations -> Environment: +PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig" ``` +
+ **Disclaimer:** Эта задача дана в учебных целях. Помните, что (1) нельзя реализовывать собственную криптографию, (2) шифр blowfish устарел, (3) в стандартной библиотеке есть pure go реализация для большинства криптографических примитивов. ## Ссылки diff --git a/blowfish/blowfish.go b/blowfish/blowfish.go index 12b0890..59a5558 100644 --- a/blowfish/blowfish.go +++ b/blowfish/blowfish.go @@ -2,7 +2,7 @@ package blowfish -// #cgo LDFLAGS: -lcrypto +// #cgo pkg-config: libcrypto // #include import "C"