|
|
- From 0fdbf868976172486af210accafbab163452ff78 Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Nguy=E1=BB=85n=20H=E1=BB=93ng=20Qu=C3=A2n?=
- <ng.hong.quan@gmail.com>
- Date: Sun, 3 Nov 2013 11:26:25 +0800
- Subject: [PATCH 21/26] OpenPGP: Don't reimplement gnuk_delete_key in
- openpgp-tool.
-
- ---
- src/tools/openpgp-tool.c | 64 ++++++------------------------------------------
- 1 file changed, 8 insertions(+), 56 deletions(-)
-
- Index: opensc-20150513/src/tools/openpgp-tool.c
- ===================================================================
- --- opensc-20150513.orig/src/tools/openpgp-tool.c
- +++ opensc-20150513/src/tools/openpgp-tool.c
- @@ -468,38 +468,6 @@ int do_verify(sc_card_t *card, char *typ
- }
-
- /**
- - * Delete key, for Gnuk.
- - **/
- -int delete_key_gnuk(sc_card_t *card, u8 key_id)
- -{
- - sc_context_t *ctx = card->ctx;
- - int r = SC_SUCCESS;
- - u8 *data = NULL;
- -
- - /* Delete fingerprint */
- - fprintf(stdout, "Delete fingerprints");
- - r |= sc_put_data(card, 0xC6 + key_id, NULL, 0);
- - /* Delete creation time */
- - fprintf(stdout, "Delete creation time");
- - r |= sc_put_data(card, 0xCD + key_id, NULL, 0);
- -
- - /* Rewrite Extended Header List */
- - fprintf(stdout, "Rewrite Extended Header List");
- -
- - if (key_id == 1)
- - data = "\x4D\x02\xB6";
- - else if (key_id == 2)
- - data = "\x4D\x02\xB8";
- - else if (key_id == 3)
- - data = "\x4D\x02\xA4";
- - else
- - return SC_ERROR_INVALID_ARGUMENTS;
- -
- - r |= sc_put_data(card, 0x4D, data, strlen(data) + 1);
- - return r;
- -}
- -
- -/**
- * Delete key, for OpenPGP card.
- * This function is not complete and is reserved for future version (> 2) of OpenPGP card.
- **/
- @@ -547,32 +515,13 @@ int delete_key_openpgp(sc_card_t *card,
- }
- /* TODO: Rewrite Extended Header List.
- * Not support by OpenGPG v2 yet */
- - LOG_FUNC_RETURN(ctx, r);
- -}
- -
- -int delete_key(sc_card_t *card, u8 key_id)
- -{
- - sc_context_t *ctx = card->ctx;
- - int r;
- -
- - LOG_FUNC_CALLED(ctx);
- - /* Check key ID */
- - if (key_id < 1 || key_id > 3) {
- - fprintf(stderr, "Invalid key ID %d", key_id);
- - LOG_FUNC_RETURN(ctx, SC_ERROR_INVALID_ARGUMENTS);
- - }
- -
- - if (card->type == SC_CARD_TYPE_OPENPGP_GNUK)
- - r = delete_key_gnuk(card, key_id);
- - else
- - r = delete_key_openpgp(card, key_id);
- -
- - LOG_FUNC_RETURN(ctx, r);
- + return r;
- }
-
- int do_delete_key(sc_card_t *card, u8 key_id)
- {
- sc_context_t *ctx = card->ctx;
- + sc_path_t path;
- int r = SC_SUCCESS;
-
- /* Currently, only Gnuk supports deleting keys */
- @@ -586,13 +535,16 @@ int do_delete_key(sc_card_t *card, u8 ke
- return SC_ERROR_INVALID_ARGUMENTS;
- }
- if (key_id == 1 || key_id == 'a') {
- - r |= delete_key(card, 1);
- + sc_format_path("B601", &path);
- + r |= sc_delete_file(card, &path);
- }
- if (key_id == 2 || key_id == 'a') {
- - r |= delete_key(card, 2);
- + sc_format_path("B801", &path);
- + r |= sc_delete_file(card, &path);
- }
- if (key_id == 3 || key_id == 'a') {
- - r |= delete_key(card, 3);
- + sc_format_path("A401", &path);
- + r |= sc_delete_file(card, &path);
- }
- return r;
- }
|