Программа предназначена для работы под Linux
Для сборки, в которую уже включён dotnet установка dotnet не требуется. Однако, требуются ручные операции.
Перейдите на страницу https://github.com/VinKekFish/VinKekFish/releases и выберите самый новый релиз. Кликните на "Assets" для развёртывания этого пункта и скачайте файлы vkf-dotnet7.7z и build.manual.zip .
Для Ubuntu Linux и Linux Mint необходимо выполнить в командной строке команду
sudo apt install -y dotnet7
для иных ОС необходимо смотреть https://dotnet.microsoft.com/download
При возникновении проблем с libfuse программа будет, скорее всего, не работоспособна. Если нужно, попробуйте отключить её (дисковое шифрование и символьное устройство '/dev/vkf/crandom' перестанут работать):
Попробуйте закомментировать символом "#" строку `character device in /dev` и строку под ней в файле настроек.
Файл настроек располагается в `./Crypto/VinKekFish/src/main/5 main-crypto/exe/service/options_files/service.options`.
После этого нужно сребилдить проект заново и запустить скрипт установки.
или просто вручную заменить файл настроек в `/opt/VinKekFish/options/` и, без ребилда, перезапустить сервис vkf [`sudo systemctl restart vkf`].
Если вы хотите сами сбилдить проект, то перейдите к следующему пункту (пукнт 1).
Если вы хотите установить бинарный файл (это проще), то:
- Перейдите на страницу https://github.com/VinKekFish/VinKekFish/releases и выберите самый новый релиз.
- Кликните на "Assets" для развёртывания этого пункта и скачайте файл vkf-dotnet7.7z .
- Распакуйте vkf-dotnet7.7z в любую папку, из которой возможен запуск.
- Перейдите к пункту "4. Установка программы".
mkdir Директория_где_вы_хотите_поместить_проекты
cd Директория_где_вы_хотите_поместить_проекты
mkdir -p ./Compiler
cd Compiler
git clone https://github.com/VinCryptoOS/tree-lang-main
cd ..
mkdir -p ./Crypto
cd Crypto
git clone https://github.com/VinKekFish/VinKekFish
Перейти в директорию VinKekFish cd VinKekFish
Кроме dotnet для блида нужен пакет makeself. На основанных на debian дистрибутивах он устанавливается командой apt install makeself.
Полностью перестроить решение bash ./b/rebuild.sh
Или быстро перестроить решение (если решение было построено) bash ./b/fbuild.sh
В случае успешного перестроения последняя строчка консоли будет начинаться с "Builder successfully ended" При построении тесты запускаются автоматически. При успешном билде, обычно, не должно быть проблем с сообщениями о том, что тесты прошли плохо. Однако, успешный билд иногда может пройти с плохими тестами на производительность (читайте сообщения тестов).
Исполняемые файлы проекта билдятся в директорию ./Crypto/VinKekFish/build (после выполнения пункта 2 мы уже находимся в ./Crypto/VinKekFish и оттуда запускаем билд). В том числе, ./Crypto/VinKekFish/build/arcs должен содержать архив с полным дистрибутивом программы.
Если установлен флаг BuildDotnetIndependenceVersionFlag (./Crypto/VinKekFish/src/builder/builder/Program.cs), то билд также будет собран в ./Crypto/VinKekFish/build.manual/ для независимой от .NET версии для Linux.
- Войдите в консоль под root.
- Текущая директория не важна, так как скрипт будет распаковываться в поддиректорию в /tmp.
- Директория /tmp не должна быть смонтирована как noexec. Если вы не понимаете, о чём это, скорее всего, у вас всё в порядке. Иначе появится ошибка по типу: "./exe/install.sh: Permission denied".
- Запустите vkf-dotnet7.sh (если под Linux установлен пакет dotnet7) или vkf-linux.sh на чистом Linux без dotnet7.
- При предложении поменять настройки при установке, поменяйте настройки в /opt/VinKekFish/options/service.options (как предлагается в скрипте, для задержки нажмите Enter). В том числе, указанные в пункте "service.options". Если не нужно менять настройки, нажмите Enter два раза.
- Распакуйте архив, если он ещё не распакован, в какую-либо временную директорию.
- Войдите в консоль root.
- Войдите с помощью команды cd в директорию, где вы распаковали архив.
- После этого скрипт install.sh нужно запустить из-под пользователя root. Установка происходит в папку /opt/VinKekFish. В директорию /usr/local/bin копируется ссылка /usr/local/bin/vkf (эта директория, вероятно, в path и программу можно будет вызывать без указания пути). Скрипт зарегистрирует службу vkf.service, которая будет дополнительно собирать энтропию.
- Во время установки измените файл
service.options, как указано в пункте "service.options" ниже.
Рекомендуемые изменения в файле service.options.
- закомментируйте две команды ping (если не хотите сетевой активности) или измените адреса сетевой активности
- измените путь "/media/veracrypt8/tmp/entropy" на ваш путь к шифрованному постоянному файлу энтропии (либо просто проигнорируйте этот блок, либо отключите этот блок, изменив слово "file" в заголовке блока на "none"). Это путь к ключевому файлу, который может быть дополнительно зашифрован и/или записан на внешнем носителе, чтобы служба vkf могла рандомизировать выдачу, учитывая этот файл. Этот файл может быть подключён уже после запуска службы. Так как сервис vkf запущен из-под root, то и файл должен иметь разрешение на чтения только для root (чтобы потенциальное вредоносное ПО не имело к нему доступа).
Если вы меняли файл service.options после установки, то выполните команду systemctl restart vkf.service для перезапуска сервиса vkf (команда выполняется из-под root). Если файл service.options был изменён в процессе установки, то этого делать не нужно.
Прочитать лог сервиса можно командой journalctl -feu vkf (выход клавишами "ctrl+C").
Файлы справки:
- [src/main/5 main-crypto/exe/auto/enc.md](Шифрование файлов 4096 битов симметричного шифрования)
- [src/main/5 main-crypto/exe/auto/disk.md](Шифрование дисков 512 битов)
В проекте нет решения, строительство осуществляется программой с исходниками src/builder/builder/ и вызовом dotnet на каждый проект в отдельности
При появлении нового проекта
- Внести его билд в файл src/builder/builder/Build-projects.cs
- Внести очистку директории bin этого проекта в b/rebuild.sh (и, если нужно, dotnet clean)