
Минималистичный терминальный менеджер паролей
Минимальный менеджер паролей для терминала.
Argon2id для выработки ключа и аутентифицированное шифрование с помощью libsodium.Скачайте AppImage из релизов и выполните:
chmod +x klip-x86_64.appimage
./klip-x86_64.appimage
Зависимости:
Установка:
git clone https://github.com/vid4l-07/Klip.git
cd klip
mkdir build
cd build
cmake ..
make
sudo make install
| Клавиша | Действие |
|---|---|
q | выход |
| Клавиша | Действие |
|---|---|
l / Стрелка вправо | переместиться вправо |
h / Стрелка влево | переместиться влево |
Enter | открыть выбранную БД |
o | открыть/создать новую БД |
x | закрыть выбранную БД |
| Клавиша | Действие |
|---|---|
Esc | Фокус на панель вкладок |
j / Стрелка вниз | переместиться вниз |
k / Стрелка вверх | переместиться вверх |
Enter | выбрать/скопировать |
n | новые учётные данные |
f | фильтр по сайту |
e | редактировать учётные данные |
d | удалить учётные данные |
g | сгенерировать надёжный пароль |
Когда выбраны учётные данные:
Enter на поле User копирует имя пользователя.Enter на поле Pass копирует пароль.При выборе «Открыть» появляется текстовый попап. Внутри попапа можно нажать Tab, чтобы перемещаться по недавно открытым базам данных.
Вы можете ввести абсолютный или относительный путь к базе данных. Если файл не существует, он будет создан, если указанный путь корректен.
Пути к недавним файлам хранятся в $HOME/.config/klip/recents.
Вся логика шифрования находится в src/Security.cpp
crypto_pwhash из libsodium, основанном на Argon2id в режиме INTERACTIVE (настраиваемые параметры стоимости для защиты от атак перебором).crypto_secretbox_easy с использованием полученного ключа и случайного nonce.[соль][nonce][зашифрованные данные]
crypto_secretbox_open_easy.Вклад всегда приветствуется. Если вы нашли ошибку или хотите помочь с новыми функциями, вы можете:
Мне нужна помощь с обнаружением клавиш-стрелок:
На данный момент обычные клавиши определяются правильно, но клавиши-стрелки всегда интерпретируются как одно нажатие ESC вместо полной escape-последовательности.
Если у вас есть опыт работы с терминальным вводом (termios, ANSI escape-последовательности и т. д.), я буду очень признателен за помощь.
Логика чтения нажатий клавиш находится в src/term/term.cpp, особенно в функции read_char, и используется классом App в функции start, расположенной в src/ui/app/app.cpp.
Если вы хотите внести вклад, пожалуйста, постарайтесь ограничить изменения функцией read_char или классом Terminal, чтобы остальная часть проекта не требовала изменений.