add hashing key with SHA256, update readme

This commit is contained in:
redlineo committed 2025-01-21 07:47:11 +00:00
1 parent 842beb2716
commit 6b2605d270
3 files changed
+47 -11

No files matched your search

+14 -5
View File
@@ -5,15 +5,16 @@
Password manager for (almost) any QMK keyboards.
Supports cryptographic algorithms:
- [x] Kuznechik (Russian GOST cipher)
- [ ] SHA256 (for hashing key)
- [x] SHA256 (for hashing key)
- [ ] Streebog (for hashing key, Russian GOST hash algorithm)
- [ ] AES256
## Features and plans
- [x] add read all ASCII-printable symbols for key
- [x] add Kuznechik lib for non 128 bit MCU
- [ ] use SHA256 for hashing key to set key length to 32 bytes
- [ ] expand password length from 16 byte to 64
- [x] use SHA256 for hashing key to set key length to 32 bytes
- [ ] expand stored passwords length from 16 byte to 64
- [ ] expand number of stored passwords, may be with auto-adding new keycodes
- [ ] add CBC mode for Kuznechik, it will increase security
@@ -33,17 +34,25 @@ include keyboards/<your keyboard>/<path to your keymap folder>/red_crypto/red_cr
#include "red_crypto/red_crypto.h"
```
4. Enable chosen algorithms. Now you can use only `Kuznechik`.
4. Enable chosen algorithms with define in `config.h`. Now you can use only `Kuznechik`.
```c
#define USE_KUZNECHIK_8
```
If you want use SHA256 of your key to encrypt passwords, define this in `config.h`.
```c
#define USE_SHA256_KEY
```
5. Encrypt your passwords with chosen algorithm (AES, Kuznechik). Now available only Kuznechik. You can use `CyberChef`.
> Don't use web version! We are here for security, right?
Choose `GOST Encrypt`, then choose type `GOST R 34.12 (Kuznechik, 2015)`, not `Magma`. Choose mode `ECB`. Now, there is no other modes for `Kuznechik`.
If you've enabled SHA256 for key, choose `SHA2`, then `SHA256` mode and `64` rounds. Hash your key, then copy it to next step.
Choose `GOST Encrypt`, then choose type `GOST R 34.12 (Kuznechik, 2015)`, not `Magma`. Choose mode `ECB`. Now there is no other modes for `Kuznechik`.
> Don't forget IV for GOST
```