Check if new keys being set are the correct length, since longer or shorter keys yield inconsistant results

This commit is contained in:
Daniel Barnes
2014-10-27 20:12:14 -06:00
committed by Klas Lindfors
parent d1308434aa
commit 61b0284c6d
+11 -7
View File
@@ -1169,14 +1169,18 @@ int main(int argc, char *argv[]) {
break; break;
case action_arg_setMINUS_mgmMINUS_key: case action_arg_setMINUS_mgmMINUS_key:
if(args_info.new_key_arg) { if(args_info.new_key_arg) {
unsigned char new_key[KEY_LEN]; if(strlen(args_info.new_key_arg) == (KEY_LEN * 2)){
size_t new_key_len = sizeof(new_key); unsigned char new_key[KEY_LEN];
if(ykpiv_hex_decode(args_info.new_key_arg, strlen(args_info.new_key_arg), new_key, &new_key_len) != YKPIV_OK) { size_t new_key_len = sizeof(new_key);
ret = EXIT_FAILURE; if(ykpiv_hex_decode(args_info.new_key_arg, strlen(args_info.new_key_arg), new_key, &new_key_len) != YKPIV_OK) {
} else if(ykpiv_set_mgmkey(state, new_key) != YKPIV_OK) { ret = EXIT_FAILURE;
ret = EXIT_FAILURE; } else if(ykpiv_set_mgmkey(state, new_key) != YKPIV_OK) {
ret = EXIT_FAILURE;
} else {
printf("Successfully set new management key.\n");
}
} else { } else {
printf("Successfully set new management key.\n"); ret = EXIT_FAILURE;
} }
} else { } else {
fprintf(stderr, "The set-mgm-key action needs the new-key (-n) argument.\n"); fprintf(stderr, "The set-mgm-key action needs the new-key (-n) argument.\n");