done adding passwords, some refactor

This commit is contained in:
redlineo committed 2025-04-01 14:12:24 +00:00
1 parent 9ec31d0b52
commit 8082991993
7 files changed
+194 -218

No files matched your search

+47 -2
View File
@@ -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) {