@@ -31,13 +31,13 @@ static bool token_info_set_algo_from_str(TokenInfo* token_info, FuriString* str)
31
31
if (furi_string_cmpi_str (str , TOTP_CONFIG_TOKEN_ALGO_SHA1_NAME ) == 0 ) {
32
32
token_info -> algo = SHA1 ;
33
33
return true;
34
- }
35
-
34
+ }
35
+
36
36
if (furi_string_cmpi_str (str , TOTP_CONFIG_TOKEN_ALGO_SHA256_NAME ) == 0 ) {
37
37
token_info -> algo = SHA256 ;
38
38
return true;
39
- }
40
-
39
+ }
40
+
41
41
if (furi_string_cmpi_str (str , TOTP_CONFIG_TOKEN_ALGO_SHA512_NAME ) == 0 ) {
42
42
token_info -> algo = SHA512 ;
43
43
return true;
@@ -47,11 +47,21 @@ static bool token_info_set_algo_from_str(TokenInfo* token_info, FuriString* str)
47
47
}
48
48
49
49
void totp_cli_command_add_print_help () {
50
- TOTP_CLI_PRINTF ("\t" TOTP_CLI_COMMAND_ADD " " TOTP_CLI_ARG (TOTP_CLI_COMMAND_ADD_ARG_NAME ) " " TOTP_CLI_OPTIONAL_PARAM(TOTP_CLI_COMMAND_ADD_ARG_ALGO_PREFIX " " TOTP_CLI_ARG(TOTP_CLI_COMMAND_ADD_ARG_ALGO)) " " TOTP_CLI_OPTIONAL_PARAM(TOTP_CLI_COMMAND_ADD_ARG_DIGITS_PREFIX " " TOTP_CLI_ARG(TOTP_CLI_COMMAND_ADD_ARG_DIGITS)) " " TOTP_CLI_OPTIONAL_PARAM(TOTP_CLI_COMMAND_ADD_ARG_UNSECURE_PREFIX) " - add new token \r \n ");
50
+ TOTP_CLI_PRINTF ("\t" TOTP_CLI_COMMAND_ADD " " TOTP_CLI_ARG (TOTP_CLI_COMMAND_ADD_ARG_NAME ) " " TOTP_CLI_OPTIONAL_PARAM (
51
+ TOTP_CLI_COMMAND_ADD_ARG_ALGO_PREFIX " " TOTP_CLI_ARG (
52
+ TOTP_CLI_COMMAND_ADD_ARG_ALGO )) " " TOTP_CLI_OPTIONAL_PARAM (TOTP_CLI_COMMAND_ADD_ARG_DIGITS_PREFIX
53
+ " " TOTP_CLI_ARG (
54
+ TOTP_CLI_COMMAND_ADD_ARG_DIGITS )) " " TOTP_CLI_OPTIONAL_PARAM(TOTP_CLI_COMMAND_ADD_ARG_UNSECURE_PREFIX) " - add new token \r \n ");
51
55
TOTP_CLI_PRINTF ("\t\t" TOTP_CLI_ARG (TOTP_CLI_COMMAND_ADD_ARG_NAME ) " - token name\r\n" );
52
- TOTP_CLI_PRINTF ("\t\t" TOTP_CLI_ARG (TOTP_CLI_COMMAND_ADD_ARG_ALGO ) " - " TOTP_CLI_OPTIONAL_PARAM_MARK " token hashing algorithm, could be one of: sha1, sha256, sha512; default: sha1\r\n" );
53
- TOTP_CLI_PRINTF ("\t\t" TOTP_CLI_ARG (TOTP_CLI_COMMAND_ADD_ARG_DIGITS ) " - " TOTP_CLI_OPTIONAL_PARAM_MARK " number of digits to generate, one of: 6, 8; default: 6\r\n" );
54
- TOTP_CLI_PRINTF ("\t\t" TOTP_CLI_COMMAND_ADD_ARG_UNSECURE_PREFIX " - " TOTP_CLI_OPTIONAL_PARAM_MARK " to show console user input as-is without masking; default: show masked\r\n\r\n" );
56
+ TOTP_CLI_PRINTF ("\t\t" TOTP_CLI_ARG (
57
+ TOTP_CLI_COMMAND_ADD_ARG_ALGO ) " - " TOTP_CLI_OPTIONAL_PARAM_MARK
58
+ " token hashing algorithm, could be one of: sha1, sha256, sha512; default: sha1\r\n" );
59
+ TOTP_CLI_PRINTF ("\t\t" TOTP_CLI_ARG (
60
+ TOTP_CLI_COMMAND_ADD_ARG_DIGITS ) " - " TOTP_CLI_OPTIONAL_PARAM_MARK
61
+ " number of digits to generate, one of: 6, 8; default: 6\r\n" );
62
+ TOTP_CLI_PRINTF (
63
+ "\t\t" TOTP_CLI_COMMAND_ADD_ARG_UNSECURE_PREFIX " - " TOTP_CLI_OPTIONAL_PARAM_MARK
64
+ " to show console user input as-is without masking; default: show masked\r\n\r\n" );
55
65
}
56
66
57
67
void totp_cli_command_add_handle (PluginState * plugin_state , FuriString * args , Cli * cli ) {
@@ -61,7 +71,7 @@ void totp_cli_command_add_handle(PluginState* plugin_state, FuriString* args, Cl
61
71
TokenInfo * token_info = token_info_alloc ();
62
72
63
73
// Reading token name
64
- if (!args_read_probably_quoted_string_and_trim (args , temp_str )) {
74
+ if (!args_read_probably_quoted_string_and_trim (args , temp_str )) {
65
75
totp_cli_print_invalid_arguments ();
66
76
furi_string_free (temp_str );
67
77
token_info_free (token_info );
@@ -74,30 +84,39 @@ void totp_cli_command_add_handle(PluginState* plugin_state, FuriString* args, Cl
74
84
75
85
// Read optional arguments
76
86
bool mask_user_input = true;
77
- while (args_read_string_and_trim (args , temp_str )) {
87
+ while (args_read_string_and_trim (args , temp_str )) {
78
88
bool parsed = false;
79
- if (furi_string_cmpi_str (temp_str , TOTP_CLI_COMMAND_ADD_ARG_ALGO_PREFIX ) == 0 ) {
80
- if (!args_read_string_and_trim (args , temp_str )) {
81
- TOTP_CLI_PRINTF ("Missed value for argument \"" TOTP_CLI_COMMAND_ADD_ARG_ALGO_PREFIX "\"\r\n" );
82
- } else if (!token_info_set_algo_from_str (token_info , temp_str )) {
83
- TOTP_CLI_PRINTF ("\"%s\" is incorrect value for argument \"" TOTP_CLI_COMMAND_ADD_ARG_ALGO_PREFIX "\"\r\n" , furi_string_get_cstr (temp_str ));
89
+ if (furi_string_cmpi_str (temp_str , TOTP_CLI_COMMAND_ADD_ARG_ALGO_PREFIX ) == 0 ) {
90
+ if (!args_read_string_and_trim (args , temp_str )) {
91
+ TOTP_CLI_PRINTF ("Missed value for argument \"" TOTP_CLI_COMMAND_ADD_ARG_ALGO_PREFIX
92
+ "\"\r\n" );
93
+ } else if (!token_info_set_algo_from_str (token_info , temp_str )) {
94
+ TOTP_CLI_PRINTF (
95
+ "\"%s\" is incorrect value for argument \"" TOTP_CLI_COMMAND_ADD_ARG_ALGO_PREFIX
96
+ "\"\r\n" ,
97
+ furi_string_get_cstr (temp_str ));
84
98
} else {
85
99
parsed = true;
86
100
}
87
- } else if (furi_string_cmpi_str (temp_str , TOTP_CLI_COMMAND_ADD_ARG_DIGITS_PREFIX ) == 0 ) {
88
- if (!args_read_string_and_trim (args , temp_str )) {
89
- TOTP_CLI_PRINTF ("Missed value for argument \"" TOTP_CLI_COMMAND_ADD_ARG_DIGITS_PREFIX "\"\r\n" );
90
- } else if (!token_info_set_digits_from_str (token_info , temp_str )) {
91
- TOTP_CLI_PRINTF ("\"%s\" is incorrect value for argument \"" TOTP_CLI_COMMAND_ADD_ARG_DIGITS_PREFIX "\"\r\n" , furi_string_get_cstr (temp_str ));
101
+ } else if (furi_string_cmpi_str (temp_str , TOTP_CLI_COMMAND_ADD_ARG_DIGITS_PREFIX ) == 0 ) {
102
+ if (!args_read_string_and_trim (args , temp_str )) {
103
+ TOTP_CLI_PRINTF (
104
+ "Missed value for argument \"" TOTP_CLI_COMMAND_ADD_ARG_DIGITS_PREFIX
105
+ "\"\r\n" );
106
+ } else if (!token_info_set_digits_from_str (token_info , temp_str )) {
107
+ TOTP_CLI_PRINTF (
108
+ "\"%s\" is incorrect value for argument \"" TOTP_CLI_COMMAND_ADD_ARG_DIGITS_PREFIX
109
+ "\"\r\n" ,
110
+ furi_string_get_cstr (temp_str ));
92
111
} else {
93
112
parsed = true;
94
113
}
95
- } else if (furi_string_cmpi_str (temp_str , TOTP_CLI_COMMAND_ADD_ARG_UNSECURE_PREFIX ) == 0 ) {
114
+ } else if (furi_string_cmpi_str (temp_str , TOTP_CLI_COMMAND_ADD_ARG_UNSECURE_PREFIX ) == 0 ) {
96
115
mask_user_input = false;
97
116
parsed = true;
98
117
}
99
118
100
- if (!parsed ) {
119
+ if (!parsed ) {
101
120
totp_cli_print_invalid_arguments ();
102
121
furi_string_free (temp_str );
103
122
token_info_free (token_info );
@@ -111,7 +130,7 @@ void totp_cli_command_add_handle(PluginState* plugin_state, FuriString* args, Cl
111
130
112
131
uint8_t c ;
113
132
while (cli_read (cli , & c , 1 ) == 1 ) {
114
- if (c == CliSymbolAsciiEsc ) {
133
+ if (c == CliSymbolAsciiEsc ) {
115
134
uint8_t c2 ;
116
135
cli_read_timeout (cli , & c2 , 1 , 0 );
117
136
cli_read_timeout (cli , & c2 , 1 , 0 );
@@ -121,36 +140,35 @@ void totp_cli_command_add_handle(PluginState* plugin_state, FuriString* args, Cl
121
140
token_info_free (token_info );
122
141
return ;
123
142
} else if ((c >= '0' && c <= '9' ) || (c >= 'a' && c <= 'z' ) || (c >= 'A' && c <= 'Z' )) {
124
- if (mask_user_input ) {
143
+ if (mask_user_input ) {
125
144
putc ('*' , stdout );
126
145
} else {
127
146
putc (c , stdout );
128
147
}
129
148
fflush (stdout );
130
149
furi_string_push_back (temp_str , c );
131
- } else if (c == CliSymbolAsciiBackspace || c == CliSymbolAsciiDel ) {
150
+ } else if (c == CliSymbolAsciiBackspace || c == CliSymbolAsciiDel ) {
132
151
size_t temp_str_size = furi_string_size (temp_str );
133
- if (temp_str_size > 0 ) {
152
+ if (temp_str_size > 0 ) {
134
153
TOTP_CLI_PRINTF ("\b \b" );
135
154
fflush (stdout );
136
155
furi_string_left (temp_str , temp_str_size - 1 );
137
156
}
138
- }
139
- else if (c == CliSymbolAsciiCR ) {
157
+ } else if (c == CliSymbolAsciiCR ) {
140
158
cli_nl ();
141
159
break ;
142
160
}
143
161
}
144
162
145
163
temp_cstr = furi_string_get_cstr (temp_str );
146
164
147
- if (!totp_cli_ensure_authenticated (plugin_state , cli )) {
165
+ if (!totp_cli_ensure_authenticated (plugin_state , cli )) {
148
166
furi_string_free (temp_str );
149
167
token_info_free (token_info );
150
168
return ;
151
169
}
152
170
153
- if (!token_info_set_secret (token_info , temp_cstr , strlen (temp_cstr ), plugin_state -> iv )) {
171
+ if (!token_info_set_secret (token_info , temp_cstr , strlen (temp_cstr ), plugin_state -> iv )) {
154
172
TOTP_CLI_PRINTF ("Token secret seems to be invalid and can not be parsed\r\n" );
155
173
furi_string_free (temp_str );
156
174
token_info_free (token_info );
@@ -161,7 +179,7 @@ void totp_cli_command_add_handle(PluginState* plugin_state, FuriString* args, Cl
161
179
furi_string_free (temp_str );
162
180
163
181
bool load_generate_token_scene = false;
164
- if (plugin_state -> current_scene == TotpSceneGenerateToken ) {
182
+ if (plugin_state -> current_scene == TotpSceneGenerateToken ) {
165
183
totp_scene_director_activate_scene (plugin_state , TotpSceneNone , NULL );
166
184
load_generate_token_scene = true;
167
185
}
@@ -174,7 +192,7 @@ void totp_cli_command_add_handle(PluginState* plugin_state, FuriString* args, Cl
174
192
plugin_state -> tokens_count ++ ;
175
193
totp_config_file_save_new_token (token_info );
176
194
177
- if (load_generate_token_scene ) {
195
+ if (load_generate_token_scene ) {
178
196
totp_scene_director_activate_scene (plugin_state , TotpSceneGenerateToken , NULL );
179
197
}
180
198
0 commit comments