mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
scd: Allow standard keyref scheme for app-openpgp.
* scd/app-openpgp.c (do_change_pin): Allow prefixing the CHVNO with "OPENPGP." * tools/card-call-scd.c (scd_change_pin): Change API to use strings. * tools/gpg-card-tool.c (cmd_passwd): Adjust for change. (cmd_unblock): Ditto. -- The generic keyref allows for better error detection in case a keyref is send to a wrong card. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
1c0fa3e6f7
commit
3231ecdafd
6 changed files with 26 additions and 17 deletions
|
@ -2583,6 +2583,8 @@ do_writecert (app_t app, ctrl_t ctrl,
|
|||
- 2 1 Verify CHV2 and set a new CHV1 and CHV2.
|
||||
- 2 2 Verify Reset Code and set a new PW1.
|
||||
- 3 any Verify CHV3/PW3 and set a new CHV3/PW3.
|
||||
|
||||
The CHVNO can be prefixed with "OPENPGP.".
|
||||
*/
|
||||
static gpg_error_t
|
||||
do_change_pin (app_t app, ctrl_t ctrl, const char *chvnostr,
|
||||
|
@ -2591,7 +2593,7 @@ do_change_pin (app_t app, ctrl_t ctrl, const char *chvnostr,
|
|||
void *pincb_arg)
|
||||
{
|
||||
int rc = 0;
|
||||
int chvno = atoi (chvnostr);
|
||||
int chvno;
|
||||
char *resetcode = NULL;
|
||||
char *oldpinvalue = NULL;
|
||||
char *pinvalue = NULL;
|
||||
|
@ -2605,6 +2607,17 @@ do_change_pin (app_t app, ctrl_t ctrl, const char *chvnostr,
|
|||
|
||||
(void)ctrl;
|
||||
|
||||
if (digitp (chvnostr))
|
||||
chvno = atoi (chvnostr);
|
||||
else if (!ascii_strcasecmp (chvnostr, "OPENPGP.1"))
|
||||
chvno = 1;
|
||||
else if (!ascii_strcasecmp (chvnostr, "OPENPGP.2"))
|
||||
chvno = 2;
|
||||
else if (!ascii_strcasecmp (chvnostr, "OPENPGP.3"))
|
||||
chvno = 3;
|
||||
else
|
||||
return gpg_error (GPG_ERR_INV_ID);
|
||||
|
||||
memset (&pininfo, 0, sizeof pininfo);
|
||||
pininfo.fixedlen = -1;
|
||||
pininfo.minlen = minlen;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue