solution with pkg-config and update readme

This commit is contained in:
Anton Rigin 2022-04-25 01:10:42 +00:00 committed by Arseny Balobanov
parent ef8e71bd2e
commit c0dcdc3be2
2 changed files with 15 additions and 13 deletions

View file

@ -13,24 +13,26 @@
``` ```
- Реализация не должна делать динамического выделения памяти. - Реализация не должна делать динамического выделения памяти.
- Для сборки этой задачи, на вашей системе должен быть установлен dev пакет openssl. На ubuntu установить пакет можно командой `sudo apt-get install libssl-dev`. Сборка под другие платформы не гарантируется. На macOS должна сработать следующая последовательность действий: - Для сборки этой задачи, на вашей системе должен быть установлен dev пакет openssl. На ubuntu установить пакет можно командой `sudo apt-get install libssl-dev`. Сборка под другие платформы не гарантируется.
<details>
<summary><b>Установка openssl на Mac OS через Homebrew</b></summary>
``` ```
Установка 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: Вы также можете выставить переменную окружения в самом GoLand: Run -> Edit Configurations -> Environment:
CGO_LDFLAGS=-L/usr/local/opt/openssl/lib PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig"
2. Установка переменной окружения через консоль и запуск тестов:
$ CGO_LDFLAGS=-L/usr/local/opt/openssl/lib go test -v ./blowfish/…
3. Добавить флаг прямо в коде:
// #cgo LDFLAGS: -lcrypto -L/usr/local/opt/openssl/lib
``` ```
</details>
**Disclaimer:** Эта задача дана в учебных целях. Помните, что (1) нельзя реализовывать собственную криптографию, (2) шифр blowfish устарел, (3) в стандартной библиотеке есть pure go реализация для большинства криптографических примитивов. **Disclaimer:** Эта задача дана в учебных целях. Помните, что (1) нельзя реализовывать собственную криптографию, (2) шифр blowfish устарел, (3) в стандартной библиотеке есть pure go реализация для большинства криптографических примитивов.
## Ссылки ## Ссылки

View file

@ -2,7 +2,7 @@
package blowfish package blowfish
// #cgo LDFLAGS: -lcrypto // #cgo pkg-config: libcrypto
// #include <openssl/blowfish.h> // #include <openssl/blowfish.h>
import "C" import "C"