done adding passwords, some refactor
This commit is contained in:
1 parent
9ec31d0b52
commit
8082991993
7 files changed
+194
-218
No files matched your search
@@ -8,8 +8,8 @@ void red_print_chars(uint8_t *c) {
|
||||
dprintf("\n");
|
||||
};
|
||||
|
||||
void red_print_int(uint8_t *c) {
|
||||
for (uint8_t i = 0; i < 32; i++) {
|
||||
void red_print_int(uint8_t *c, uint8_t len) {
|
||||
for (uint8_t i = 0; i < len; i++) {
|
||||
dprintf("%d", c[i]);
|
||||
}
|
||||
dprintf("\n");
|
||||
@@ -35,6 +35,51 @@ void red_send_chars_pass(uint8_t *out) {
|
||||
}
|
||||
};
|
||||
|
||||
uint8_t *red_init_array(uint8_t len, uint8_t val) {
|
||||
uint8_t *arr = (uint8_t *)malloc(sizeof(uint8_t) * len);
|
||||
for (uint8_t i = 0; i < len; i++) {
|
||||
arr[i] = val;
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
||||
uint8_t **red_init_array_2d(uint8_t len_row, uint8_t len_col, uint8_t val) {
|
||||
uint8_t **arr = (uint8_t **)malloc(sizeof(uint8_t *) * len_row);
|
||||
for (uint8_t i = 0; i < len_row; i++) {
|
||||
arr[i] = (uint8_t *)malloc(sizeof(uint8_t) * len_col);
|
||||
for (uint8_t j = 0; j < len_col; j++) {
|
||||
arr[i][j] = val;
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
||||
// count printable symbols of ASCII in string with safety check of max length
|
||||
uint8_t red_strlen_printable(uint8_t *str_printable, uint8_t max_len) {
|
||||
uint8_t result = 0;
|
||||
while (result < max_len && *str_printable != '\0') {
|
||||
result++;
|
||||
str_printable++;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
#ifdef USE_SHA256_KEY
|
||||
// hashing string to 32byte with sha256
|
||||
uint8_t *hashing_string(uint8_t *str_to_hash) {
|
||||
SHA256_CTX ctx;
|
||||
sha256_init(&ctx);
|
||||
sha256_update(&ctx, str_to_hash, red_strlen_printable(str_to_hash, MAX_KEY_LEN));
|
||||
// BYTE result_key[SHA256_BLOCK_SIZE];
|
||||
BYTE *result_key = red_init_array(SHA256_BLOCK_SIZE, 0x00);
|
||||
sha256_final(&ctx, result_key);
|
||||
# ifdef USE_RED_CRY_DEBUG
|
||||
red_print_hex(result_key);
|
||||
# endif
|
||||
return result_key;
|
||||
}
|
||||
#endif
|
||||
|
||||
// EEPROM utils
|
||||
|
||||
void red_write_to_storage(void) {
|
||||
|
||||
Reference in new issue
Block a user