mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
Update error handling to match gpg-error in CVS.
This commit is contained in:
parent
39e6e163d4
commit
a58ce94d8e
16 changed files with 119 additions and 124 deletions
|
@ -128,13 +128,13 @@ dinsig_enum_keypairs (CARD card, int idx,
|
|||
log_error ("failed to parse the certificate at idx %d: %s\n",
|
||||
idx, ksba_strerror (krc));
|
||||
ksba_cert_release (cert);
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
if (card_help_get_keygrip (cert, keygrip))
|
||||
{
|
||||
log_error ("failed to calculate the keygrip at index %d\n", idx);
|
||||
ksba_cert_release (cert);
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
ksba_cert_release (cert);
|
||||
|
||||
|
@ -171,7 +171,7 @@ dinsig_read_cert (CARD card, const char *certidstr,
|
|||
else if (!strcmp (certidstr, "DINSIG-DF01.C200"))
|
||||
sc_format_path ("3F00DF01C200", &path);
|
||||
else
|
||||
return gpg_error (GPG_ERR_INVALID_ID);
|
||||
return gpg_error (GPG_ERR_INV_ID);
|
||||
|
||||
rc = sc_select_file (card->scard, &path, &file);
|
||||
if (rc)
|
||||
|
@ -184,13 +184,13 @@ dinsig_read_cert (CARD card, const char *certidstr,
|
|||
{
|
||||
log_error ("wrong type or structure of certificate EF\n");
|
||||
sc_file_free (file);
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
if (file->size < 20) /* check against a somewhat arbitrary length */
|
||||
{
|
||||
log_error ("certificate EF too short\n");
|
||||
sc_file_free (file);
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
buf = xtrymalloc (file->size);
|
||||
if (!buf)
|
||||
|
@ -206,7 +206,7 @@ dinsig_read_cert (CARD card, const char *certidstr,
|
|||
log_error ("short read on certificate EF\n");
|
||||
sc_file_free (file);
|
||||
xfree (buf);
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
sc_file_free (file);
|
||||
if (rc < 0)
|
||||
|
|
|
@ -70,7 +70,7 @@ init_private_data (CARD card)
|
|||
{
|
||||
log_error ("private keys enumeration failed: %s\n", sc_strerror (rc));
|
||||
xfree (priv);
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
priv->n_prkey_rsa_objs = rc;
|
||||
|
||||
|
@ -82,7 +82,7 @@ init_private_data (CARD card)
|
|||
{
|
||||
log_error ("private keys enumeration failed: %s\n", sc_strerror (rc));
|
||||
xfree (priv);
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
priv->n_cert_objs = rc;
|
||||
|
||||
|
@ -145,7 +145,7 @@ p15_enum_keypairs (CARD card, int idx,
|
|||
{
|
||||
log_info ("failed to read certificate for private key %d: %s\n",
|
||||
idx, sc_strerror (rc));
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
|
||||
cert = ksba_cert_new ();
|
||||
|
@ -162,13 +162,13 @@ p15_enum_keypairs (CARD card, int idx,
|
|||
log_error ("failed to parse the certificate for private key %d: %s\n",
|
||||
idx, ksba_strerror (krc));
|
||||
ksba_cert_release (cert);
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
if (card_help_get_keygrip (cert, keygrip))
|
||||
{
|
||||
log_error ("failed to calculate the keygrip of private key %d\n", idx);
|
||||
ksba_cert_release (cert);
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
ksba_cert_release (cert);
|
||||
|
||||
|
@ -252,14 +252,14 @@ idstr_to_id (const char *idstr, struct sc_pkcs15_id *id)
|
|||
|
||||
/* For now we only support the standard DF */
|
||||
if (strncmp (idstr, "P15-5015.", 9) )
|
||||
return gpg_error (GPG_ERR_INVALID_ID);
|
||||
return gpg_error (GPG_ERR_INV_ID);
|
||||
for (s=idstr+9, n=0; hexdigitp (s); s++, n++)
|
||||
;
|
||||
if (*s || (n&1))
|
||||
return gpg_error (GPG_ERR_INVALID_ID); /*invalid or odd number of digits*/
|
||||
return gpg_error (GPG_ERR_INV_ID); /*invalid or odd number of digits*/
|
||||
n /= 2;
|
||||
if (!n || n > SC_PKCS15_MAX_ID_SIZE)
|
||||
return gpg_error (GPG_ERR_INVALID_ID); /* empty or too large */
|
||||
return gpg_error (GPG_ERR_INV_ID); /* empty or too large */
|
||||
for (s=idstr+9, n=0; *s; s += 2, n++)
|
||||
id->value[n] = xtoi_2 (s);
|
||||
id->len = n;
|
||||
|
@ -279,7 +279,7 @@ p15_read_cert (CARD card, const char *certidstr,
|
|||
int rc;
|
||||
|
||||
if (!card || !certidstr || !cert || !ncert)
|
||||
return gpg_error (GPG_ERR_INVALID_VALUE);
|
||||
return gpg_error (GPG_ERR_INV_VALUE);
|
||||
if (!card->p15card)
|
||||
return gpg_error (GPG_ERR_NO_PKCS15_APP);
|
||||
|
||||
|
@ -300,7 +300,7 @@ p15_read_cert (CARD card, const char *certidstr,
|
|||
{
|
||||
log_info ("failed to read certificate '%s': %s\n",
|
||||
certidstr, sc_strerror (rc));
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
|
||||
*cert = xtrymalloc (certder->data_len);
|
||||
|
@ -411,7 +411,7 @@ p15_sign (CARD card, const char *keyidstr, int hashalgo,
|
|||
if (rc < 0)
|
||||
{
|
||||
log_error ("failed to create signature: %s\n", sc_strerror (rc));
|
||||
rc = gpg_error (GPG_ERR_CARD_ERROR);
|
||||
rc = gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -473,7 +473,7 @@ p15_decipher (CARD card, const char *keyidstr,
|
|||
if (rc < 0)
|
||||
{
|
||||
log_error ("failed to decipher the data: %s\n", sc_strerror (rc));
|
||||
rc = gpg_error (GPG_ERR_CARD_ERROR);
|
||||
rc = gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
31
scd/card.c
31
scd/card.c
|
@ -48,9 +48,9 @@ map_sc_err (int rc)
|
|||
case SC_ERROR_OUT_OF_MEMORY: e = GPG_ERR_ENOMEM; break;
|
||||
case SC_ERROR_CARD_NOT_PRESENT: e = GPG_ERR_CARD_NOT_PRESENT; break;
|
||||
case SC_ERROR_CARD_REMOVED: e = GPG_ERR_CARD_REMOVED; break;
|
||||
case SC_ERROR_INVALID_CARD: e = GPG_ERR_INVALID_CARD; break;
|
||||
case SC_ERROR_INVALID_CARD: e = GPG_ERR_INV_CARD; break;
|
||||
#endif
|
||||
default: e = GPG_ERR_CARD_ERROR; break;
|
||||
default: e = GPG_ERR_CARD; break;
|
||||
}
|
||||
return gpg_make_error (GPG_ERR_SOURCE_UNKNOWN, e);
|
||||
}
|
||||
|
@ -114,7 +114,7 @@ card_open (CARD *rcard)
|
|||
if (card->reader >= card->ctx->reader_count)
|
||||
{
|
||||
log_error ("no card reader available\n");
|
||||
rc = gpg_error (GPG_ERR_CARD_ERROR);
|
||||
rc = gpg_error (GPG_ERR_CARD);
|
||||
goto leave;
|
||||
}
|
||||
card->ctx->error_file = log_get_stream ();
|
||||
|
@ -242,7 +242,7 @@ find_iccsn (const unsigned char *buffer, size_t length, char **serial)
|
|||
|
||||
s = find_simple_tlv (buffer, length, 0x5A, &n);
|
||||
if (!s)
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
length -= s - buffer;
|
||||
if (n > length)
|
||||
{
|
||||
|
@ -257,12 +257,11 @@ find_iccsn (const unsigned char *buffer, size_t length, char **serial)
|
|||
n--;
|
||||
}
|
||||
else
|
||||
return gpg_error (GPG_ERR_CARD_ERROR); /* Bad encoding; does
|
||||
not fit into
|
||||
buffer. */
|
||||
return gpg_error (GPG_ERR_CARD); /* Bad encoding; does
|
||||
not fit into buffer. */
|
||||
}
|
||||
if (!n)
|
||||
return gpg_error (GPG_ERR_CARD_ERROR); /* Well, that is too short. */
|
||||
return gpg_error (GPG_ERR_CARD); /* Well, that is too short. */
|
||||
|
||||
*serial = p = xtrymalloc (2*n+1);
|
||||
if (!*serial)
|
||||
|
@ -332,21 +331,21 @@ card_get_serial_and_stamp (CARD card, char **serial, time_t *stamp)
|
|||
if (rc)
|
||||
{
|
||||
log_error ("sc_select_file failed: %s\n", sc_strerror (rc));
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
if (file->type != SC_FILE_TYPE_WORKING_EF
|
||||
|| file->ef_structure != SC_FILE_EF_TRANSPARENT)
|
||||
{
|
||||
log_error ("wrong type or structure of GDO file\n");
|
||||
sc_file_free (file);
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
|
||||
if (!file->size || file->size >= DIM(buf) )
|
||||
{ /* FIXME: Use a real parser */
|
||||
log_error ("unsupported size of GDO file (%d)\n", file->size);
|
||||
sc_file_free (file);
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
buflen = file->size;
|
||||
|
||||
|
@ -355,16 +354,16 @@ card_get_serial_and_stamp (CARD card, char **serial, time_t *stamp)
|
|||
if (rc < 0)
|
||||
{
|
||||
log_error ("error reading GDO file: %s\n", sc_strerror (rc));
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
if (rc != buflen)
|
||||
{
|
||||
log_error ("short read on GDO file\n");
|
||||
return gpg_error (GPG_ERR_CARD_ERROR);
|
||||
return gpg_error (GPG_ERR_CARD);
|
||||
}
|
||||
|
||||
rc = find_iccsn (buf, buflen, serial);
|
||||
if (gpg_err_code (rc) == GPG_ERR_CARD_ERROR)
|
||||
if (gpg_err_code (rc) == GPG_ERR_CARD)
|
||||
log_error ("invalid structure of GDO file\n");
|
||||
if (!rc && card->p15card && !strcmp (*serial, "D27600000000000000000000"))
|
||||
{ /* This is a German card with a silly serial number. Try to get
|
||||
|
@ -436,7 +435,7 @@ card_enum_keypairs (CARD card, int idx,
|
|||
if (!card || !keygrip)
|
||||
return gpg_error (GPG_ERR_INV_VALUE);
|
||||
if (idx < 0)
|
||||
return gpg_error (GPG_ERR_INVALID_INDEX);
|
||||
return gpg_error (GPG_ERR_INV_INDEX);
|
||||
if (!card->fnc.initialized)
|
||||
return gpg_error (GPG_ERR_CARD_NOT_INITIALIZED);
|
||||
if (!card->fnc.enum_keypairs)
|
||||
|
@ -468,7 +467,7 @@ card_enum_certs (CARD card, int idx, char **certid, int *certtype)
|
|||
if (!card)
|
||||
return gpg_error (GPG_ERR_INV_VALUE);
|
||||
if (idx < 0)
|
||||
return gpg_error (GPG_ERR_INVALID_INDEX);
|
||||
return gpg_error (GPG_ERR_INV_INDEX);
|
||||
if (!card->fnc.initialized)
|
||||
return gpg_error (GPG_ERR_CARD_NOT_INITIALIZED);
|
||||
if (!card->fnc.enum_certs)
|
||||
|
|
|
@ -452,7 +452,7 @@ pin_cb (void *opaque, const char *info, char **retstr)
|
|||
{
|
||||
/* We require that the returned value is an UTF-8 string */
|
||||
xfree (value);
|
||||
return gpg_error (GPG_ERR_INVALID_RESPONSE);
|
||||
return gpg_error (GPG_ERR_INV_RESPONSE);
|
||||
}
|
||||
*retstr = value;
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue