alex.kopachov пре 2 година
родитељ
комит
6315ccca51

+ 20 - 21
cli/commands/add/add.c

@@ -102,11 +102,11 @@ void totp_cli_command_add_docopt_options() {
     TOTP_CLI_PRINTF("  " DOCOPT_OPTION(
         TOTP_CLI_COMMAND_ARG_ALGO_PREFIX,
         DOCOPT_ARGUMENT(
-            TOTP_CLI_COMMAND_ARG_ALGO)) "      Token hashing algorithm. Must be one of: " TOTP_TOKEN_ALGO_SHA1_NAME
-                                        ", " TOTP_TOKEN_ALGO_SHA256_NAME
-                                        ", " TOTP_TOKEN_ALGO_SHA512_NAME
-                                        ", " TOTP_TOKEN_ALGO_STEAM_NAME
-                                        " " DOCOPT_DEFAULT(TOTP_TOKEN_ALGO_SHA1_NAME) "\r\n");
+            TOTP_CLI_COMMAND_ARG_ALGO)) "      Token hashing algorithm. Must be one of: " TOKEN_HASH_ALGO_SHA1_NAME
+                                        ", " TOKEN_HASH_ALGO_SHA256_NAME
+                                        ", " TOKEN_HASH_ALGO_SHA512_NAME
+                                        ", " TOKEN_HASH_ALGO_STEAM_NAME
+                                        " " DOCOPT_DEFAULT(TOKEN_HASH_ALGO_SHA1_NAME) "\r\n");
     TOTP_CLI_PRINTF(
         "  " DOCOPT_OPTION(
             TOTP_CLI_COMMAND_ARG_DIGITS_PREFIX,
@@ -114,10 +114,10 @@ void totp_cli_command_add_docopt_options() {
                 TOTP_CLI_COMMAND_ARG_DIGITS)) "    Number of digits to generate, one of: %" PRIu8
                                               ", %" PRIu8 ", %" PRIu8
                                               " " DOCOPT_DEFAULT("%" PRIu8) "\r\n",
-        TotpFiveDigitsCount,
-        TotpSixDigitsCount,
-        TotpEightDigitsCount,
-        TotpSixDigitsCount);
+        TokenDigitsCountFive,
+        TokenDigitsCountSix,
+        TokenDigitsCountEight,
+        TokenDigitsCountSix);
 
     TOTP_CLI_PRINTF("  " DOCOPT_OPTION(
         TOTP_CLI_COMMAND_ARG_SECRET_ENCODING_PREFIX,
@@ -134,26 +134,25 @@ void totp_cli_command_add_docopt_options() {
                 TOTP_CLI_COMMAND_ARG_DURATION)) "  Token lifetime duration in seconds, between: %" PRIu8
                                                 " and %" PRIu8
                                                 " " DOCOPT_DEFAULT("%" PRIu8) "\r\n",
-        TOTP_TOKEN_DURATION_MIN,
-        TOTP_TOKEN_DURATION_MAX,
-        TOTP_TOKEN_DURATION_DEFAULT);
+        TokenDurationMin,
+        TokenDurationMax,
+        TokenDurationDefault);
     TOTP_CLI_PRINTF("  " DOCOPT_SWITCH(
         TOTP_CLI_COMMAND_ARG_UNSECURE_PREFIX) "             Show console user input as-is without masking\r\n");
     TOTP_CLI_PRINTF("  " DOCOPT_OPTION(
         TOTP_CLI_COMMAND_ARG_AUTOMATION_FEATURE_PREFIX,
         DOCOPT_ARGUMENT(
-            TOTP_CLI_COMMAND_ARG_AUTOMATION_FEATURE)) "   Token automation features to be enabled. Must be one of: " TOTP_TOKEN_AUTOMATION_FEATURE_NONE_NAME
-                                                      ", " TOTP_TOKEN_AUTOMATION_FEATURE_ENTER_AT_THE_END_NAME
-                                                      ", " TOTP_TOKEN_AUTOMATION_FEATURE_TAB_AT_THE_END_NAME
+            TOTP_CLI_COMMAND_ARG_AUTOMATION_FEATURE)) "   Token automation features to be enabled. Must be one of: " TOKEN_AUTOMATION_FEATURE_NONE_NAME
+                                                      ", " TOKEN_AUTOMATION_FEATURE_ENTER_AT_THE_END_NAME
+                                                      ", " TOKEN_AUTOMATION_FEATURE_TAB_AT_THE_END_NAME
                                                       " " DOCOPT_DEFAULT(
-                                                          TOTP_TOKEN_AUTOMATION_FEATURE_NONE_NAME) "\r\n");
-    TOTP_CLI_PRINTF("                 # " TOTP_TOKEN_AUTOMATION_FEATURE_NONE_NAME
-                    " - No features\r\n");
-    TOTP_CLI_PRINTF("                 # " TOTP_TOKEN_AUTOMATION_FEATURE_ENTER_AT_THE_END_NAME
+                                                          TOKEN_AUTOMATION_FEATURE_NONE_NAME) "\r\n");
+    TOTP_CLI_PRINTF("                 # " TOKEN_AUTOMATION_FEATURE_NONE_NAME " - No features\r\n");
+    TOTP_CLI_PRINTF("                 # " TOKEN_AUTOMATION_FEATURE_ENTER_AT_THE_END_NAME
                     " - Type <Enter> key at the end of token input automation\r\n");
-    TOTP_CLI_PRINTF("                 # " TOTP_TOKEN_AUTOMATION_FEATURE_TAB_AT_THE_END_NAME
+    TOTP_CLI_PRINTF("                 # " TOKEN_AUTOMATION_FEATURE_TAB_AT_THE_END_NAME
                     " - Type <Tab> key at the end of token input automation\r\n");
-    TOTP_CLI_PRINTF("                 # " TOTP_TOKEN_AUTOMATION_FEATURE_TYPE_SLOWER_NAME
+    TOTP_CLI_PRINTF("                 # " TOKEN_AUTOMATION_FEATURE_TYPE_SLOWER_NAME
                     " - Type slower\r\n");
 }
 

+ 10 - 10
services/config/migrations/common_migration.c

@@ -75,13 +75,13 @@ bool totp_config_migrate_to_latest(
                     fff_backup_data_file, TOTP_CONFIG_KEY_TOKEN_ALGO, temp_str);
 
                 if(current_version < 5) {
-                    uint32_t algo_as_uint32t = SHA1;
-                    if(furi_string_cmpi_str(temp_str, TOTP_TOKEN_ALGO_SHA256_NAME) == 0) {
-                        algo_as_uint32t = SHA256;
-                    } else if(furi_string_cmpi_str(temp_str, TOTP_TOKEN_ALGO_SHA512_NAME) == 0) {
-                        algo_as_uint32t = SHA512;
-                    } else if(furi_string_cmpi_str(temp_str, TOTP_TOKEN_ALGO_STEAM_NAME) == 0) {
-                        algo_as_uint32t = STEAM;
+                    uint32_t algo_as_uint32t = TokenHashAlgoDefault;
+                    if(furi_string_cmpi_str(temp_str, TOKEN_HASH_ALGO_SHA256_NAME) == 0) {
+                        algo_as_uint32t = TokenHashAlgoSha256;
+                    } else if(furi_string_cmpi_str(temp_str, TOKEN_HASH_ALGO_SHA512_NAME) == 0) {
+                        algo_as_uint32t = TokenHashAlgoSha512;
+                    } else if(furi_string_cmpi_str(temp_str, TOKEN_HASH_ALGO_STEAM_NAME) == 0) {
+                        algo_as_uint32t = TokenHashAlgoSteam;
                     }
 
                     flipper_format_write_uint32(
@@ -95,10 +95,10 @@ bool totp_config_migrate_to_latest(
                     fff_backup_data_file, TOTP_CONFIG_KEY_TOKEN_DIGITS, temp_str);
                 flipper_format_write_string(fff_data_file, TOTP_CONFIG_KEY_TOKEN_DIGITS, temp_str);
             } else {
-                const uint32_t default_algo = SHA1;
+                const uint32_t default_algo = TokenHashAlgoDefault;
                 flipper_format_write_uint32(
                     fff_data_file, TOTP_CONFIG_KEY_TOKEN_ALGO, &default_algo, 1);
-                const uint32_t default_digits = TotpSixDigitsCount;
+                const uint32_t default_digits = TokenDigitsCountSix;
                 flipper_format_write_uint32(
                     fff_data_file, TOTP_CONFIG_KEY_TOKEN_DIGITS, &default_digits, 1);
             }
@@ -109,7 +109,7 @@ bool totp_config_migrate_to_latest(
                 flipper_format_write_string(
                     fff_data_file, TOTP_CONFIG_KEY_TOKEN_DURATION, temp_str);
             } else {
-                const uint32_t default_duration = TOTP_TOKEN_DURATION_DEFAULT;
+                const uint32_t default_duration = TokenDurationDefault;
                 flipper_format_write_uint32(
                     fff_data_file, TOTP_CONFIG_KEY_TOKEN_DURATION, &default_duration, 1);
             }

+ 3 - 3
services/config/token_info_iterator.c

@@ -496,19 +496,19 @@ bool totp_token_info_iterator_go_to(TokenInfoIteratorContext* context, size_t to
     if(!flipper_format_read_uint32(
            context->config_file, TOTP_CONFIG_KEY_TOKEN_ALGO, &temp_data32, 1) ||
        !token_info_set_algo_from_int(tokenInfo, temp_data32)) {
-        tokenInfo->algo = SHA1;
+        tokenInfo->algo = TokenHashAlgoDefault;
     }
 
     if(!flipper_format_read_uint32(
            context->config_file, TOTP_CONFIG_KEY_TOKEN_DIGITS, &temp_data32, 1) ||
        !token_info_set_digits_from_int(tokenInfo, temp_data32)) {
-        tokenInfo->digits = TotpSixDigitsCount;
+        tokenInfo->digits = TokenDigitsCountSix;
     }
 
     if(!flipper_format_read_uint32(
            context->config_file, TOTP_CONFIG_KEY_TOKEN_DURATION, &temp_data32, 1) ||
        !token_info_set_duration_from_int(tokenInfo, temp_data32)) {
-        tokenInfo->duration = TOTP_TOKEN_DURATION_DEFAULT;
+        tokenInfo->duration = TokenDurationDefault;
     }
 
     if(flipper_format_read_uint32(

+ 36 - 36
types/token_info.c

@@ -69,13 +69,13 @@ bool token_info_set_secret(
 bool token_info_set_digits_from_int(TokenInfo* token_info, uint8_t digits) {
     switch(digits) {
     case 5:
-        token_info->digits = TotpFiveDigitsCount;
+        token_info->digits = TokenDigitsCountFive;
         return true;
     case 6:
-        token_info->digits = TotpSixDigitsCount;
+        token_info->digits = TokenDigitsCountSix;
         return true;
     case 8:
-        token_info->digits = TotpEightDigitsCount;
+        token_info->digits = TokenDigitsCountEight;
         return true;
     default:
         break;
@@ -87,7 +87,7 @@ bool token_info_set_digits_from_int(TokenInfo* token_info, uint8_t digits) {
 bool token_info_set_duration_from_int(TokenInfo* token_info, uint8_t duration) {
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wtype-limits"
-    if(duration >= TOTP_TOKEN_DURATION_MIN && duration <= TOTP_TOKEN_DURATION_MAX) { //-V560
+    if(duration >= TokenDurationMin && duration <= TokenDurationMax) { //-V560
         token_info->duration = duration;
         return true;
     }
@@ -97,23 +97,23 @@ bool token_info_set_duration_from_int(TokenInfo* token_info, uint8_t duration) {
 }
 
 bool token_info_set_algo_from_str(TokenInfo* token_info, const FuriString* str) {
-    if(furi_string_cmpi_str(str, TOTP_TOKEN_ALGO_SHA1_NAME) == 0) {
-        token_info->algo = SHA1;
+    if(furi_string_cmpi_str(str, TOKEN_HASH_ALGO_SHA1_NAME) == 0) {
+        token_info->algo = TokenHashAlgoSha1;
         return true;
     }
 
-    if(furi_string_cmpi_str(str, TOTP_TOKEN_ALGO_SHA256_NAME) == 0) {
-        token_info->algo = SHA256;
+    if(furi_string_cmpi_str(str, TOKEN_HASH_ALGO_SHA256_NAME) == 0) {
+        token_info->algo = TokenHashAlgoSha256;
         return true;
     }
 
-    if(furi_string_cmpi_str(str, TOTP_TOKEN_ALGO_SHA512_NAME) == 0) {
-        token_info->algo = SHA512;
+    if(furi_string_cmpi_str(str, TOKEN_HASH_ALGO_SHA512_NAME) == 0) {
+        token_info->algo = TokenHashAlgoSha512;
         return true;
     }
 
-    if(furi_string_cmpi_str(str, TOTP_TOKEN_ALGO_STEAM_NAME) == 0) {
-        token_info->algo = STEAM;
+    if(furi_string_cmpi_str(str, TOKEN_HASH_ALGO_STEAM_NAME) == 0) {
+        token_info->algo = TokenHashAlgoSteam;
         return true;
     }
 
@@ -122,17 +122,17 @@ bool token_info_set_algo_from_str(TokenInfo* token_info, const FuriString* str)
 
 bool token_info_set_algo_from_int(TokenInfo* token_info, uint8_t algo_code) {
     switch(algo_code) {
-    case SHA1:
-        token_info->algo = SHA1;
+    case TokenHashAlgoSha1:
+        token_info->algo = TokenHashAlgoSha1;
         break;
-    case SHA256:
-        token_info->algo = SHA256;
+    case TokenHashAlgoSha256:
+        token_info->algo = TokenHashAlgoSha256;
         break;
-    case SHA512:
-        token_info->algo = SHA512;
+    case TokenHashAlgoSha512:
+        token_info->algo = TokenHashAlgoSha512;
         break;
-    case STEAM:
-        token_info->algo = STEAM;
+    case TokenHashAlgoSteam:
+        token_info->algo = TokenHashAlgoSteam;
         break;
     default:
         return false;
@@ -141,16 +141,16 @@ bool token_info_set_algo_from_int(TokenInfo* token_info, uint8_t algo_code) {
     return true;
 }
 
-char* token_info_get_algo_as_cstr(const TokenInfo* token_info) {
+const char* token_info_get_algo_as_cstr(const TokenInfo* token_info) {
     switch(token_info->algo) {
-    case SHA1:
-        return TOTP_TOKEN_ALGO_SHA1_NAME;
-    case SHA256:
-        return TOTP_TOKEN_ALGO_SHA256_NAME;
-    case SHA512:
-        return TOTP_TOKEN_ALGO_SHA512_NAME;
-    case STEAM:
-        return TOTP_TOKEN_ALGO_STEAM_NAME;
+    case TokenHashAlgoSha1:
+        return TOKEN_HASH_ALGO_SHA1_NAME;
+    case TokenHashAlgoSha256:
+        return TOKEN_HASH_ALGO_SHA256_NAME;
+    case TokenHashAlgoSha512:
+        return TOKEN_HASH_ALGO_SHA512_NAME;
+    case TokenHashAlgoSteam:
+        return TOKEN_HASH_ALGO_STEAM_NAME;
     default:
         break;
     }
@@ -159,22 +159,22 @@ char* token_info_get_algo_as_cstr(const TokenInfo* token_info) {
 }
 
 bool token_info_set_automation_feature_from_str(TokenInfo* token_info, const FuriString* str) {
-    if(furi_string_cmpi_str(str, TOTP_TOKEN_AUTOMATION_FEATURE_ENTER_AT_THE_END_NAME) == 0) {
+    if(furi_string_cmpi_str(str, TOKEN_AUTOMATION_FEATURE_ENTER_AT_THE_END_NAME) == 0) {
         token_info->automation_features |= TokenAutomationFeatureEnterAtTheEnd;
         return true;
     }
 
-    if(furi_string_cmpi_str(str, TOTP_TOKEN_AUTOMATION_FEATURE_TAB_AT_THE_END_NAME) == 0) {
+    if(furi_string_cmpi_str(str, TOKEN_AUTOMATION_FEATURE_TAB_AT_THE_END_NAME) == 0) {
         token_info->automation_features |= TokenAutomationFeatureTabAtTheEnd;
         return true;
     }
 
-    if(furi_string_cmpi_str(str, TOTP_TOKEN_AUTOMATION_FEATURE_TYPE_SLOWER_NAME) == 0) {
+    if(furi_string_cmpi_str(str, TOKEN_AUTOMATION_FEATURE_TYPE_SLOWER_NAME) == 0) {
         token_info->automation_features |= TokenAutomationFeatureTypeSlower;
         return true;
     }
 
-    if(furi_string_cmpi_str(str, TOTP_TOKEN_AUTOMATION_FEATURE_NONE_NAME) == 0) {
+    if(furi_string_cmpi_str(str, TOKEN_AUTOMATION_FEATURE_NONE_NAME) == 0) {
         token_info->automation_features = TokenAutomationFeatureNone;
         return true;
     }
@@ -198,9 +198,9 @@ TokenInfo* token_info_clone(const TokenInfo* src) {
 
 void token_info_set_defaults(TokenInfo* token_info) {
     furi_check(token_info != NULL);
-    token_info->algo = SHA1;
-    token_info->digits = TotpSixDigitsCount;
-    token_info->duration = TOTP_TOKEN_DURATION_DEFAULT;
+    token_info->algo = TokenHashAlgoDefault;
+    token_info->digits = TokenDigitsCountDefault;
+    token_info->duration = TokenDurationDefault;
     token_info->automation_features = TokenAutomationFeatureNone;
     furi_string_reset(token_info->name);
 }

+ 53 - 25
types/token_info.h

@@ -4,27 +4,20 @@
 #include <stdbool.h>
 #include <furi/core/string.h>
 
-#define TOTP_TOKEN_DURATION_DEFAULT (30)
-#define TOTP_TOKEN_DURATION_MIN (15)
-#define TOTP_TOKEN_DURATION_MAX UINT8_MAX
-
-#define TOTP_TOKEN_ALGO_SHA1_NAME "sha1"
-#define TOTP_TOKEN_ALGO_STEAM_NAME "steam"
-#define TOTP_TOKEN_ALGO_SHA256_NAME "sha256"
-#define TOTP_TOKEN_ALGO_SHA512_NAME "sha512"
-
+#define TOKEN_HASH_ALGO_SHA1_NAME "sha1"
+#define TOKEN_HASH_ALGO_STEAM_NAME "steam"
+#define TOKEN_HASH_ALGO_SHA256_NAME "sha256"
+#define TOKEN_HASH_ALGO_SHA512_NAME "sha512"
 #define PLAIN_TOKEN_ENCODING_BASE32_NAME "base32"
 #define PLAIN_TOKEN_ENCODING_BASE64_NAME "base64"
-
-#define TOTP_TOKEN_AUTOMATION_FEATURE_NONE_NAME "none"
-#define TOTP_TOKEN_AUTOMATION_FEATURE_ENTER_AT_THE_END_NAME "enter"
-#define TOTP_TOKEN_AUTOMATION_FEATURE_TAB_AT_THE_END_NAME "tab"
-#define TOTP_TOKEN_AUTOMATION_FEATURE_TYPE_SLOWER_NAME "slower"
-
-#define TOTP_TOKEN_DIGITS_MAX_COUNT (8)
+#define TOKEN_AUTOMATION_FEATURE_NONE_NAME "none"
+#define TOKEN_AUTOMATION_FEATURE_ENTER_AT_THE_END_NAME "enter"
+#define TOKEN_AUTOMATION_FEATURE_TAB_AT_THE_END_NAME "tab"
+#define TOKEN_AUTOMATION_FEATURE_TYPE_SLOWER_NAME "slower"
 
 typedef uint8_t TokenHashAlgo;
 typedef uint8_t TokenDigitsCount;
+typedef uint8_t TokenDuration;
 typedef uint8_t TokenAutomationFeature;
 typedef uint8_t PlainTokenSecretEncoding;
 
@@ -35,22 +28,27 @@ enum TokenHashAlgos {
     /**
      * @brief SHA1 hashing algorithm
      */
-    SHA1 = 0,
+    TokenHashAlgoSha1 = 0,
 
     /**
      * @brief SHA256 hashing algorithm
      */
-    SHA256 = 1,
+    TokenHashAlgoSha256 = 1,
 
     /**
      * @brief SHA512 hashing algorithm
      */
-    SHA512 = 2,
+    TokenHashAlgoSha512 = 2,
 
     /**
      * @brief Algorithm used by Steam (Valve)
      */
-    STEAM = 3
+    TokenHashAlgoSteam = 3,
+
+    /**
+     * @brief Default token hashing algorithm
+     */
+    TokenHashAlgoDefault = TokenHashAlgoSha1
 };
 
 /**
@@ -60,17 +58,47 @@ enum TokenDigitsCounts {
     /**
      * @brief 5 digits
      */
-    TotpFiveDigitsCount = 5,
+    TokenDigitsCountFive = 5,
 
     /**
      * @brief 6 digits
      */
-    TotpSixDigitsCount = 6,
+    TokenDigitsCountSix = 6,
 
     /**
      * @brief 8 digits
      */
-    TotpEightDigitsCount = 8
+    TokenDigitsCountEight = 8,
+
+    /**
+     * @brief Default digits count
+     */
+    TokenDigitsCountDefault = TokenDigitsCountSix,
+
+    /**
+     * @brief Maximum digits count
+     */
+    TokenDigitsCountMax = TokenDigitsCountEight
+};
+
+/**
+ * @brief Token durations
+ */
+enum TokenDurations {
+    /**
+     * @brief Default token duration
+     */
+    TokenDurationDefault = 30,
+
+    /**
+     * @brief Minimum token duration
+     */
+    TokenDurationMin = 15,
+
+    /**
+     * @brief Maximum token duration
+     */
+    TokenDurationMax = UINT8_MAX
 };
 
 /**
@@ -146,7 +174,7 @@ typedef struct {
     /**
      * @brief Desired TOTP token duration in seconds
      */
-    uint8_t duration;
+    TokenDuration duration;
 
     /**
      * @brief Token input automation features
@@ -219,7 +247,7 @@ bool token_info_set_algo_from_int(TokenInfo* token_info, uint8_t algo_code);
  * @param token_info instance which token hahsing algorithm name should be returned
  * @return token hashing algorithm name as C-string
  */
-char* token_info_get_algo_as_cstr(const TokenInfo* token_info);
+const char* token_info_get_algo_as_cstr(const TokenInfo* token_info);
 
 /**
  * @brief Sets token automation feature from \c str value

+ 14 - 6
ui/scenes/add_new_token/totp_scene_add_new_token.c

@@ -13,9 +13,9 @@
 char* TOKEN_ALGO_LIST[] = {"SHA1", "SHA256", "SHA512", "Steam"};
 char* TOKEN_DIGITS_TEXT_LIST[] = {"5 digits", "6 digits", "8 digits"};
 TokenDigitsCount TOKEN_DIGITS_VALUE_LIST[] = {
-    TotpFiveDigitsCount,
-    TotpSixDigitsCount,
-    TotpEightDigitsCount};
+    TokenDigitsCountFive,
+    TokenDigitsCountSix,
+    TokenDigitsCountEight};
 
 typedef enum {
     TokenNameTextBox,
@@ -106,7 +106,7 @@ void totp_scene_add_new_token_activate(PluginState* plugin_state) {
 
     scene_state->digits_count_index = 1;
 
-    scene_state->duration = TOTP_TOKEN_DURATION_DEFAULT;
+    scene_state->duration = TokenDurationDefault;
     scene_state->duration_text = furi_string_alloc();
     update_duration_text(scene_state);
 }
@@ -208,7 +208,11 @@ bool totp_scene_add_new_token_handle_event(
         case InputKeyRight:
             if(scene_state->selected_control == TokenAlgoSelect) {
                 totp_roll_value_uint8_t(
-                    &scene_state->algo, 1, SHA1, STEAM, RollOverflowBehaviorRoll);
+                    &scene_state->algo,
+                    1,
+                    TokenHashAlgoSha1,
+                    TokenHashAlgoSteam,
+                    RollOverflowBehaviorRoll);
             } else if(scene_state->selected_control == TokenLengthSelect) {
                 totp_roll_value_uint8_t(
                     &scene_state->digits_count_index, 1, 0, 2, RollOverflowBehaviorRoll);
@@ -221,7 +225,11 @@ bool totp_scene_add_new_token_handle_event(
         case InputKeyLeft:
             if(scene_state->selected_control == TokenAlgoSelect) {
                 totp_roll_value_uint8_t(
-                    &scene_state->algo, -1, SHA1, STEAM, RollOverflowBehaviorRoll);
+                    &scene_state->algo,
+                    -1,
+                    TokenHashAlgoSha1,
+                    TokenHashAlgoSteam,
+                    RollOverflowBehaviorRoll);
             } else if(scene_state->selected_control == TokenLengthSelect) {
                 totp_roll_value_uint8_t(
                     &scene_state->digits_count_index, -1, 0, 2, RollOverflowBehaviorRoll);

+ 3 - 5
ui/scenes/generate_token/totp_scene_generate_token.c

@@ -31,7 +31,7 @@ typedef struct {
 } UiPrecalculatedDimensions;
 
 typedef struct {
-    char last_code[TOTP_TOKEN_DIGITS_MAX_COUNT + 1];
+    char last_code[TokenDigitsCountMax + 1];
     TotpUsbTypeCodeWorkerContext* usb_type_code_worker_context;
     NotificationMessage const** notification_sequence_new_token;
     NotificationMessage const** notification_sequence_automation;
@@ -210,9 +210,7 @@ void totp_scene_generate_token_activate(PluginState* plugin_state) {
     scene_state->last_code_update_sync = furi_mutex_alloc(FuriMutexTypeNormal);
     if(plugin_state->automation_method & AutomationMethodBadUsb) {
         scene_state->usb_type_code_worker_context = totp_usb_type_code_worker_start(
-            scene_state->last_code,
-            TOTP_TOKEN_DIGITS_MAX_COUNT + 1,
-            scene_state->last_code_update_sync);
+            scene_state->last_code, TokenDigitsCountMax + 1, scene_state->last_code_update_sync);
     }
 
 #ifdef TOTP_BADBT_TYPE_ENABLED
@@ -224,7 +222,7 @@ void totp_scene_generate_token_activate(PluginState* plugin_state) {
         totp_bt_type_code_worker_start(
             plugin_state->bt_type_code_worker_context,
             scene_state->last_code,
-            TOTP_TOKEN_DIGITS_MAX_COUNT + 1,
+            TokenDigitsCountMax + 1,
             scene_state->last_code_update_sync);
     }
 #endif

+ 6 - 6
workers/generate_totp_code/generate_totp_code.c

@@ -21,7 +21,7 @@ struct TotpGenerateCodeWorkerContext {
     void* on_code_lifetime_changed_handler_context;
 };
 
-static const char* STEAM_ALGO_ALPHABET = "23456789BCDFGHJKMNPQRTVWXY";
+static const char STEAM_ALGO_ALPHABET[] = "23456789BCDFGHJKMNPQRTVWXY";
 
 static void
     int_token_to_str(uint64_t i_token_code, char* str, TokenDigitsCount len, TokenHashAlgo algo) {
@@ -30,7 +30,7 @@ static void
     if(i_token_code == OTP_ERROR) {
         memset(str, '-', len);
     } else {
-        if(algo == STEAM) {
+        if(algo == TokenHashAlgoSteam) {
             char* s = str;
             for(uint8_t i = 0; i < len; i++, s++) {
                 *s = STEAM_ALGO_ALPHABET[i_token_code % 26];
@@ -48,12 +48,12 @@ static void
 
 static TOTP_ALGO get_totp_algo_impl(TokenHashAlgo algo) {
     switch(algo) {
-    case SHA1:
-    case STEAM:
+    case TokenHashAlgoSha1:
+    case TokenHashAlgoSteam:
         return TOTP_ALGO_SHA1;
-    case SHA256:
+    case TokenHashAlgoSha256:
         return TOTP_ALGO_SHA256;
-    case SHA512:
+    case TokenHashAlgoSha512:
         return TOTP_ALGO_SHA512;
     default:
         break;