add menu, work only exit
This commit is contained in:
1 parent
103bed5f4d
commit
4a6afc4d11
3 files changed
+25
-9
No files matched your search
+20
-6
@@ -24,6 +24,10 @@ uint8_t count_char_key = 0;
|
|||||||
|
|
||||||
uint8_t crypto_mode = 0;
|
uint8_t crypto_mode = 0;
|
||||||
|
|
||||||
|
uint8_t decrypted_mode = 0;
|
||||||
|
|
||||||
|
uint8_t red_menu_mode = 0;
|
||||||
|
|
||||||
void decrypt_pass_kuzn(const uint8_t encrypted_passwords[STORAGE_SIZE][STORAGE_PASS_LEN]) {
|
void decrypt_pass_kuzn(const uint8_t encrypted_passwords[STORAGE_SIZE][STORAGE_PASS_LEN]) {
|
||||||
kuz_key_t key;
|
kuz_key_t key;
|
||||||
w128_t x;
|
w128_t x;
|
||||||
@@ -88,12 +92,6 @@ void decrypt_pass_kuzn(const uint8_t encrypted_passwords[STORAGE_SIZE][STORAGE_P
|
|||||||
// print_chars_w128(&x);
|
// print_chars_w128(&x);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
void send_chars_pass(uint8_t *out) {
|
|
||||||
for (uint8_t i = 0; i < STORAGE_PASS_LEN && out[i] != 0; i++) {
|
|
||||||
send_char((char)out[i]);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
uint8_t crypto_process_record_user(uint16_t keycode, keyrecord_t *record, const uint8_t encrypted_passwords[STORAGE_SIZE][STORAGE_PASS_LEN]) {
|
uint8_t crypto_process_record_user(uint16_t keycode, keyrecord_t *record, const uint8_t encrypted_passwords[STORAGE_SIZE][STORAGE_PASS_LEN]) {
|
||||||
if (crypto_mode) {
|
if (crypto_mode) {
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
@@ -105,12 +103,21 @@ uint8_t crypto_process_record_user(uint16_t keycode, keyrecord_t *record, const
|
|||||||
crypto_mode = 0;
|
crypto_mode = 0;
|
||||||
count_char_key = 0;
|
count_char_key = 0;
|
||||||
decrypt_pass_kuzn(encrypted_passwords);
|
decrypt_pass_kuzn(encrypted_passwords);
|
||||||
|
decrypted_mode = 1;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
// reading key
|
// reading key
|
||||||
return kc_to_ascii(keycode, record, readed_key, &count_char_key);
|
return kc_to_ascii(keycode, record, readed_key, &count_char_key);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} else if (decrypted_mode && red_menu_mode) {
|
||||||
|
uint8_t key_return = draw_red_menu(keycode, record);
|
||||||
|
if (key_return == 2){
|
||||||
|
red_menu_mode = 0;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return key_return;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
case RED_PASS1:
|
case RED_PASS1:
|
||||||
@@ -165,6 +172,13 @@ uint8_t crypto_process_record_user(uint16_t keycode, keyrecord_t *record, const
|
|||||||
// dprintf("%d", keycode);
|
// dprintf("%d", keycode);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case RED_MENU:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (decrypted_mode == 1) {
|
||||||
|
red_menu_mode = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
+4
-3
@@ -9,6 +9,7 @@
|
|||||||
// includes of red_crypto
|
// includes of red_crypto
|
||||||
# include "kc_to_ascii.h"
|
# include "kc_to_ascii.h"
|
||||||
# include "utils.h"
|
# include "utils.h"
|
||||||
|
# include "red_menu.h"
|
||||||
|
|
||||||
// #ifdef USE_RED_KUZNECHIK_128
|
// #ifdef USE_RED_KUZNECHIK_128
|
||||||
// #include "kuznechik_128bit.h"
|
// #include "kuznechik_128bit.h"
|
||||||
@@ -41,6 +42,7 @@
|
|||||||
# define STORAGE_PASS_LEN 64
|
# define STORAGE_PASS_LEN 64
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
|
||||||
// example for encrypted 64 byte password
|
// example for encrypted 64 byte password
|
||||||
// const uint8_t red_enc_pass[STORAGE_SIZE][STORAGE_PASS_LEN] = {
|
// const uint8_t red_enc_pass[STORAGE_SIZE][STORAGE_PASS_LEN] = {
|
||||||
// {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
// {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
@@ -51,6 +53,7 @@
|
|||||||
|
|
||||||
enum red_crypto_keys {
|
enum red_crypto_keys {
|
||||||
RED_CRY_M = SAFE_RANGE + 0x80, // added safe range offset
|
RED_CRY_M = SAFE_RANGE + 0x80, // added safe range offset
|
||||||
|
RED_MENU,
|
||||||
RED_RNG,
|
RED_RNG,
|
||||||
RED_TEST,
|
RED_TEST,
|
||||||
RED_PASS1,
|
RED_PASS1,
|
||||||
@@ -62,9 +65,7 @@ enum red_crypto_keys {
|
|||||||
RED_PASS7,
|
RED_PASS7,
|
||||||
RED_PASS8,
|
RED_PASS8,
|
||||||
RED_PASS9,
|
RED_PASS9,
|
||||||
RED_PASS10,
|
RED_PASS10
|
||||||
RED_PASS11,
|
|
||||||
RED_PASS12
|
|
||||||
};
|
};
|
||||||
|
|
||||||
uint8_t crypto_process_record_user(uint16_t keycode, keyrecord_t *record, const uint8_t encrypted_passwords[STORAGE_SIZE][STORAGE_PASS_LEN]);
|
uint8_t crypto_process_record_user(uint16_t keycode, keyrecord_t *record, const uint8_t encrypted_passwords[STORAGE_SIZE][STORAGE_PASS_LEN]);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ SRC += red_crypto/aes.c
|
|||||||
SRC += red_crypto/kuznechik_8bit.c
|
SRC += red_crypto/kuznechik_8bit.c
|
||||||
SRC += red_crypto/kc_to_ascii.c
|
SRC += red_crypto/kc_to_ascii.c
|
||||||
SRC += red_crypto/utils.c
|
SRC += red_crypto/utils.c
|
||||||
|
SRC += red_crypto/red_menu.c
|
||||||
|
|
||||||
# SRC += red_crypto/kuznechik_128bit.c # you can't include this, because you may not have ARMv8 and upper, check this
|
# SRC += red_crypto/kuznechik_128bit.c # you can't include this, because you may not have ARMv8 and upper, check this
|
||||||
# TODO: do something like this:
|
# TODO: do something like this:
|
||||||
|
|||||||
Reference in new issue
Block a user