135 |
CARD_Fpr, |
CARD_Fpr, |
136 |
CARD_FprTime |
CARD_FprTime |
137 |
}; |
}; |
138 |
enum rectype_t rectype = (rectype_t)0; |
enum rectype_t rectype = CARD_None; |
139 |
char *p, *pend; |
char *p, *pend; |
140 |
int field = 0; |
int field = 0; |
141 |
|
|
315 |
{ |
{ |
316 |
static int wait_card=0; |
static int wait_card=0; |
317 |
GpgCardEdit *ce = (GpgCardEdit *)opaque; |
GpgCardEdit *ce = (GpgCardEdit *)opaque; |
318 |
const char *s=""; |
const char *s = ""; |
319 |
DWORD n; |
DWORD n; |
320 |
|
|
321 |
|
if (!ce) |
322 |
|
return gpg_error (GPG_ERR_INV_VALUE); |
323 |
|
|
324 |
if (code == GPGME_STATUS_CARDCTRL) { |
if (code == GPGME_STATUS_CARDCTRL) { |
325 |
if (!strcmp (key, "5")) |
if (!strcmp (key, "5")) |
328 |
wait_card = 1; |
wait_card = 1; |
329 |
} |
} |
330 |
if (wait_card && !strcmp (key, "cardctrl.insert_card.okay")) { |
if (wait_card && !strcmp (key, "cardctrl.insert_card.okay")) { |
331 |
|
/* :TODO: show card ID */ |
332 |
n = MessageBox (NULL, _("Please insert the card and click OK or Cancel to abort."), |
n = MessageBox (NULL, _("Please insert the card and click OK or Cancel to abort."), |
333 |
_("GPG Card Status"), MB_ICONQUESTION|MB_OKCANCEL); |
_("GPG Card Status"), MB_ICONQUESTION|MB_OKCANCEL); |
334 |
if (n == IDCANCEL) { |
if (n == IDCANCEL) { |
335 |
|
s = "c\n"; |
336 |
ce->setResult (GPG_CARDRES_CANCEL); |
ce->setResult (GPG_CARDRES_CANCEL); |
337 |
WriteFile ((HANDLE)fd, "c\n", 2, &n, NULL); |
WriteFile ((HANDLE)fd, s, strlen (s), &n, NULL); |
338 |
wait_card = 0; |
wait_card = 0; |
339 |
} |
} |
340 |
} |
} |
394 |
this->pin = _pin; |
this->pin = _pin; |
395 |
} |
} |
396 |
|
|
397 |
|
|
398 |
/* Set the admin PIN for the object to @admin_pin. */ |
/* Set the admin PIN for the object to @admin_pin. */ |
399 |
void |
void |
400 |
GpgCardEdit::setAdminPIN (const char *_admin_pin) |
GpgCardEdit::setAdminPIN (const char *_admin_pin) |
437 |
{ |
{ |
438 |
gpgme_data_t out = NULL; |
gpgme_data_t out = NULL; |
439 |
gpgme_error_t err; |
gpgme_error_t err; |
440 |
gpg_card_t card=NULL; |
gpg_card_t card = NULL; |
441 |
char buf[200]; |
char buf[200]; |
442 |
|
|
443 |
if (!r_card) |
if (!r_card) |
444 |
return gpg_error (GPG_ERR_INV_ARG); |
return gpg_error (GPG_ERR_INV_ARG); |
445 |
|
*r_card = NULL; |
446 |
|
|
447 |
err = gpg_card_new (&card); |
err = gpg_card_new (&card); |
448 |
if (err) |
if (err) |
488 |
@valid: how long is the key valid in days. |
@valid: how long is the key valid in days. |
489 |
Return value: 0 on success. */ |
Return value: 0 on success. */ |
490 |
gpgme_error_t |
gpgme_error_t |
491 |
GpgCardEdit::genKey (int flags, const char *name, |
GpgCardEdit::genKey (int flags, |
492 |
const char *email, const char *comment, long valid, |
const char *name, const char *email, const char *comment, |
493 |
char **r_key_fpr) |
long valid, char **r_key_fpr) |
494 |
{ |
{ |
495 |
gpgme_error_t err; |
gpgme_error_t err; |
496 |
|
|
559 |
} |
} |
560 |
|
|
561 |
|
|
562 |
|
/* Update the given and the surname on the card. */ |
563 |
gpgme_error_t |
gpgme_error_t |
564 |
GpgCardEdit::updateName (const char *given, const char *sur) |
GpgCardEdit::updateName (const char *given, const char *sur) |
565 |
{ |
{ |
575 |
err = gpg_card_edit (ctx, this); |
err = gpg_card_edit (ctx, this); |
576 |
return err; |
return err; |
577 |
} |
} |
578 |
|
|
579 |
|
/* Update the given URL on the card. */ |
580 |
gpgme_error_t |
gpgme_error_t |
581 |
GpgCardEdit::updateURL (const char *_url) |
GpgCardEdit::updateURL (const char *_url) |
582 |
{ |
{ |
608 |
return err; |
return err; |
609 |
} |
} |
610 |
|
|
611 |
|
|
612 |
gpgme_error_t |
gpgme_error_t |
613 |
GpgCardEdit::updateSex (char sex) |
GpgCardEdit::updateSex (char sex) |
614 |
{ |
{ |