aboutsummaryrefslogtreecommitdiffstats
path: root/scd/app-openpgp.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2003-12-23 10:25:24 +0000
committerWerner Koch <[email protected]>2003-12-23 10:25:24 +0000
commit28db0fabb4edf65ad1c5bec061c19c9922be9b23 (patch)
treece1e0fa19304aeda49e3e7f4dbf0f7f99c549cdb /scd/app-openpgp.c
parent(map_assuan_err): Prepared for a new error code. (diff)
downloadgnupg-28db0fabb4edf65ad1c5bec061c19c9922be9b23.tar.gz
gnupg-28db0fabb4edf65ad1c5bec061c19c9922be9b23.zip
* apdu.c (apdu_send_le): Send a get_response with the indicated
length and not the 64 bytes we used for testing. * app-openpgp.c (verify_chv2, verify_chv3, do_sign): Check the minimum length of the passphrase, so that we don't need to decrement the retry counter.
Diffstat (limited to 'scd/app-openpgp.c')
-rw-r--r--scd/app-openpgp.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c
index 6b4a2f7ef..8f9a303fe 100644
--- a/scd/app-openpgp.c
+++ b/scd/app-openpgp.c
@@ -534,6 +534,13 @@ verify_chv2 (APP app,
return rc;
}
+ if (strlen (pinvalue) < 6)
+ {
+ log_error ("prassphrase (CHV2) is too short; minimum length is 6\n");
+ xfree (pinvalue);
+ return gpg_error (GPG_ERR_BAD_PIN);
+ }
+
rc = iso7816_verify (app->slot, 0x82, pinvalue, strlen (pinvalue));
if (rc)
{
@@ -586,6 +593,13 @@ verify_chv3 (APP app,
return rc;
}
+ if (strlen (pinvalue) < 6)
+ {
+ log_error ("prassphrase (CHV3) is too short; minimum length is 6\n");
+ xfree (pinvalue);
+ return gpg_error (GPG_ERR_BAD_PIN);
+ }
+
rc = iso7816_verify (app->slot, 0x83, pinvalue, strlen (pinvalue));
xfree (pinvalue);
if (rc)
@@ -1041,6 +1055,13 @@ do_sign (APP app, const char *keyidstr, int hashalgo,
return rc;
}
+ if (strlen (pinvalue) < 6)
+ {
+ log_error ("prassphrase (CHV1) is too short; minimum length is 6\n");
+ xfree (pinvalue);
+ return gpg_error (GPG_ERR_BAD_PIN);
+ }
+
rc = iso7816_verify (app->slot, 0x81, pinvalue, strlen (pinvalue));
if (rc)
{