return error properly on hex decode
This commit is contained in:
@@ -466,6 +466,8 @@ ykpiv_rc ykpiv_hex_decode(const char *hex_in, size_t in_len,
|
|||||||
int index = 0;
|
int index = 0;
|
||||||
if(ind_ptr) {
|
if(ind_ptr) {
|
||||||
index = ind_ptr - hex_translate;
|
index = ind_ptr - hex_translate;
|
||||||
|
} else {
|
||||||
|
return YKPIV_PARSE_ERROR;
|
||||||
}
|
}
|
||||||
if(first) {
|
if(first) {
|
||||||
*hex_out = index << 4;
|
*hex_out = index << 4;
|
||||||
|
|||||||
@@ -1201,6 +1201,7 @@ int main(int argc, char *argv[]) {
|
|||||||
unsigned char key[KEY_LEN];
|
unsigned char key[KEY_LEN];
|
||||||
size_t key_len = sizeof(key);
|
size_t key_len = sizeof(key);
|
||||||
if(ykpiv_hex_decode(args_info.key_arg, strlen(args_info.key_arg), key, &key_len) != YKPIV_OK) {
|
if(ykpiv_hex_decode(args_info.key_arg, strlen(args_info.key_arg), key, &key_len) != YKPIV_OK) {
|
||||||
|
fprintf(stderr, "Failed decoding key!\n");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1245,6 +1246,7 @@ int main(int argc, char *argv[]) {
|
|||||||
unsigned char new_key[KEY_LEN];
|
unsigned char new_key[KEY_LEN];
|
||||||
size_t new_key_len = sizeof(new_key);
|
size_t new_key_len = sizeof(new_key);
|
||||||
if(ykpiv_hex_decode(args_info.new_key_arg, strlen(args_info.new_key_arg), new_key, &new_key_len) != YKPIV_OK) {
|
if(ykpiv_hex_decode(args_info.new_key_arg, strlen(args_info.new_key_arg), new_key, &new_key_len) != YKPIV_OK) {
|
||||||
|
fprintf(stderr, "Failed decoding new key!\n");
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
} else if(ykpiv_set_mgmkey(state, new_key) != YKPIV_OK) {
|
} else if(ykpiv_set_mgmkey(state, new_key) != YKPIV_OK) {
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
|
|||||||
Reference in New Issue
Block a user