doc/
2003-06-06 Marcus Brinkmann <marcus@g10code.de> * gpgme.texi (Crypto Operations): Rename gpgme_invalid_user_id_t to gpgme_invalid_key_t. gpgme/ 2003-06-06 Marcus Brinkmann <marcus@g10code.de> * op-support.c (_gpgme_parse_inv_userid): Rename to _gpgme_parse_inv_recp and change to new datatype. * ops.h (_gpgme_parse_inv_key): Fix prototype. * gpgme.h (struct _gpgme_invalid_user_id): Rename to __gpgme_invalid_key. Rename field ID to KEY. (gpgme_invalid_user_id_t): Rename to gpgme_invalid_key_t. (struct _gpgme_op_encrypt_result): Here, too. (struct _gpgme_op_sign_result): Likewise. * encrypt.c (struct op_data): Likewise. (release_op_data): Likewise. * sign.c (struct op_data): Likewise. (release_op_data): Likewise.
This commit is contained in:
parent
0b08f4b85f
commit
a8fe22ca6b
4
NEWS
4
NEWS
@ -198,7 +198,7 @@ Noteworthy changes in version 0.4.1 (unreleased)
|
||||
|
||||
* The new gpgme_op_sign_result function provides detailed information
|
||||
about the result of a signing operation in gpgme_sign_result_t,
|
||||
gpgme_invalid_user_id_t and gpgme_new_signature_t objects.
|
||||
gpgme_invalid_key_t and gpgme_new_signature_t objects.
|
||||
|
||||
* The new gpgme_op_encrypt_result function provides detailed
|
||||
information about the result of an encryption operation in
|
||||
@ -352,7 +352,7 @@ gpgme_import_status_t NEW
|
||||
gpgme_import_result_t NEW
|
||||
gpgme_pubkey_algo_t NEW
|
||||
gpgme_hash_algo_t NEW
|
||||
gpgme_invalid_user_id_t NEW
|
||||
gpgme_invalid_key_t NEW
|
||||
gpgme_new_signature_t NEW
|
||||
gpgme_sign_result_t NEW
|
||||
gpgme_op_sign_result NEW
|
||||
|
1
TODO
1
TODO
@ -1,7 +1,6 @@
|
||||
Hey Emacs, this is -*- outline -*- mode!
|
||||
|
||||
* Before release:
|
||||
** Change gpgme_invalid_user_id_t to gpgme_invalid_key_t.
|
||||
** gpgme-config must include info about libgpg-error.
|
||||
|
||||
* ABI's to break:
|
||||
|
@ -1,3 +1,8 @@
|
||||
2003-06-06 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* gpgme.texi (Crypto Operations): Rename gpgme_invalid_user_id_t
|
||||
to gpgme_invalid_key_t.
|
||||
|
||||
2003-06-06 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* gpgme.texi: Change error codes to GPG_ERR_* variants.
|
||||
|
@ -3252,24 +3252,24 @@ The function @code{gpgme_trust_item_release} is an alias for
|
||||
@cindex cryptographic operation
|
||||
|
||||
Sometimes, the result of a crypto operation returns a list of invalid
|
||||
user IDs encountered in processing the request. The following
|
||||
structure is used to hold information about such an user ID.
|
||||
keys encountered in processing the request. The following structure
|
||||
is used to hold information about such a key.
|
||||
|
||||
@deftp {Data type} {gpgme_invalid_user_id_t}
|
||||
@deftp {Data type} {gpgme_invalid_key_t}
|
||||
This is a pointer to a structure used to store a part of the result of
|
||||
a crypto operation which takes user IDs as one input parameter. The
|
||||
structure contains the following members:
|
||||
|
||||
@table @code
|
||||
@item gpgme_invalid_user_id_t next
|
||||
This is a pointer to the next invalid user ID structure in the linked
|
||||
@item gpgme_invalid_key_t next
|
||||
This is a pointer to the next invalid key structure in the linked
|
||||
list, or @code{NULL} if this is the last element.
|
||||
|
||||
@item char *id
|
||||
The invalid user ID encountered.
|
||||
@item char *fpr
|
||||
The fingerprint or key ID of the invalid key encountered.
|
||||
|
||||
@item gpgme_error_t reason
|
||||
An error code describing the reason why the user ID was found invalid.
|
||||
An error code describing the reason why the key was found invalid.
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@ -3946,8 +3946,8 @@ signature, you can retrieve the pointer to the result with
|
||||
members:
|
||||
|
||||
@table @code
|
||||
@item gpgme_invalid_user_id_t invalid_signers
|
||||
A linked list with information about all invalid user IDs for which a
|
||||
@item gpgme_invalid_key_t invalid_signers
|
||||
A linked list with information about all invalid keys for which a
|
||||
signature could not be created.
|
||||
|
||||
@item gpgme_new_signature_t signatures
|
||||
@ -4053,8 +4053,8 @@ data, you can retrieve the pointer to the result with
|
||||
members:
|
||||
|
||||
@table @code
|
||||
@item gpgme_invalid_user_id_t invalid_recipients
|
||||
A linked list with information about all invalid user IDs for which
|
||||
@item gpgme_invalid_key_t invalid_recipients
|
||||
A linked list with information about all invalid keys for which
|
||||
the data could not be encrypted.
|
||||
@end table
|
||||
@end deftp
|
||||
|
@ -1,5 +1,18 @@
|
||||
2003-06-06 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* op-support.c (_gpgme_parse_inv_userid): Rename to
|
||||
_gpgme_parse_inv_recp and change to new datatype.
|
||||
* ops.h (_gpgme_parse_inv_key): Fix prototype.
|
||||
* gpgme.h (struct _gpgme_invalid_user_id): Rename to
|
||||
__gpgme_invalid_key. Rename field ID to KEY.
|
||||
(gpgme_invalid_user_id_t): Rename to gpgme_invalid_key_t.
|
||||
(struct _gpgme_op_encrypt_result): Here, too.
|
||||
(struct _gpgme_op_sign_result): Likewise.
|
||||
* encrypt.c (struct op_data): Likewise.
|
||||
(release_op_data): Likewise.
|
||||
* sign.c (struct op_data): Likewise.
|
||||
(release_op_data): Likewise.
|
||||
|
||||
* posix-io.c (_gpgme_io_read): Save errno across debug calls.
|
||||
(_gpgme_io_write): Likewise.
|
||||
(_gpgme_io_pipe): Likewise.
|
||||
|
@ -37,7 +37,7 @@ typedef struct
|
||||
/* A pointer to the next pointer of the last invalid recipient in
|
||||
the list. This makes appending new invalid recipients painless
|
||||
while preserving the order. */
|
||||
gpgme_invalid_user_id_t *lastp;
|
||||
gpgme_invalid_key_t *lastp;
|
||||
} *op_data_t;
|
||||
|
||||
|
||||
@ -45,12 +45,13 @@ static void
|
||||
release_op_data (void *hook)
|
||||
{
|
||||
op_data_t opd = (op_data_t) hook;
|
||||
gpgme_invalid_user_id_t invalid_recipient = opd->result.invalid_recipients;
|
||||
gpgme_invalid_key_t invalid_recipient = opd->result.invalid_recipients;
|
||||
|
||||
while (invalid_recipient)
|
||||
{
|
||||
gpgme_invalid_user_id_t next = invalid_recipient->next;
|
||||
free (invalid_recipient->id);
|
||||
gpgme_invalid_key_t next = invalid_recipient->next;
|
||||
if (invalid_recipient->fpr)
|
||||
free (invalid_recipient->fpr);
|
||||
invalid_recipient = next;
|
||||
}
|
||||
}
|
||||
@ -95,7 +96,7 @@ _gpgme_encrypt_status_handler (void *priv, gpgme_status_code_t code,
|
||||
break;
|
||||
|
||||
case GPGME_STATUS_INV_RECP:
|
||||
err = _gpgme_parse_inv_userid (args, opd->lastp);
|
||||
err = _gpgme_parse_inv_recp (args, opd->lastp);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
|
@ -142,11 +142,11 @@ int gpgme_err_code_to_errno (gpgme_err_code_t code);
|
||||
|
||||
/* Return an error value with the error source SOURCE and the system
|
||||
error ERR. */
|
||||
gpgme_error_t gpgme_err_make_from_errno (gpg_err_source_t source, int err);
|
||||
gpgme_error_t gpgme_err_make_from_errno (gpgme_err_source_t source, int err);
|
||||
|
||||
|
||||
/* Return an error value with the system error ERR. */
|
||||
gpgme_err_code_t gpg_error_from_errno (int err);
|
||||
gpgme_err_code_t gpgme_error_from_errno (int err);
|
||||
|
||||
|
||||
/* The possible encoding mode of gpgme_data_t objects. */
|
||||
@ -968,20 +968,20 @@ unsigned long gpgme_key_sig_get_ulong_attr (gpgme_key_t key, int uid_idx,
|
||||
|
||||
/* Crypto Operations. */
|
||||
|
||||
struct _gpgme_invalid_user_id
|
||||
struct _gpgme_invalid_key
|
||||
{
|
||||
struct _gpgme_invalid_user_id *next;
|
||||
char *id;
|
||||
struct _gpgme_invalid_key *next;
|
||||
char *fpr;
|
||||
gpgme_error_t reason;
|
||||
};
|
||||
typedef struct _gpgme_invalid_user_id *gpgme_invalid_user_id_t;
|
||||
typedef struct _gpgme_invalid_key *gpgme_invalid_key_t;
|
||||
|
||||
|
||||
/* Encryption. */
|
||||
struct _gpgme_op_encrypt_result
|
||||
{
|
||||
/* The list of invalid recipients. */
|
||||
gpgme_invalid_user_id_t invalid_recipients;
|
||||
gpgme_invalid_key_t invalid_recipients;
|
||||
};
|
||||
typedef struct _gpgme_op_encrypt_result *gpgme_encrypt_result_t;
|
||||
|
||||
@ -1059,7 +1059,7 @@ typedef struct _gpgme_new_signature *gpgme_new_signature_t;
|
||||
struct _gpgme_op_sign_result
|
||||
{
|
||||
/* The list of invalid signers. */
|
||||
gpgme_invalid_user_id_t invalid_signers;
|
||||
gpgme_invalid_key_t invalid_signers;
|
||||
gpgme_new_signature_t signatures;
|
||||
};
|
||||
typedef struct _gpgme_op_sign_result *gpgme_sign_result_t;
|
||||
@ -1466,7 +1466,6 @@ typedef gpgme_data_write_cb_t GpgmeDataWriteCb _GPGME_DEPRECATED;
|
||||
typedef gpgme_data_seek_cb_t GpgmeDataSeekCb _GPGME_DEPRECATED;
|
||||
typedef gpgme_data_release_cb_t GpgmeDataReleaseCb _GPGME_DEPRECATED;
|
||||
#define GpgmeDataCbs gpgme_data_cbs
|
||||
typedef gpgme_invalid_user_id_t GpgmeInvalidUserID _GPGME_DEPRECATED;
|
||||
typedef gpgme_encrypt_result_t GpgmeEncryptResult _GPGME_DEPRECATED;
|
||||
typedef gpgme_sig_notation_t GpgmeSigNotation _GPGME_DEPRECATED;
|
||||
typedef gpgme_signature_t GpgmeSignature _GPGME_DEPRECATED;
|
||||
|
@ -113,22 +113,22 @@ _gpgme_op_reset (gpgme_ctx_t ctx, int type)
|
||||
|
||||
|
||||
gpgme_error_t
|
||||
_gpgme_parse_inv_userid (char *args, gpgme_invalid_user_id_t *userid)
|
||||
_gpgme_parse_inv_recp (char *args, gpgme_invalid_key_t *key)
|
||||
{
|
||||
gpgme_invalid_user_id_t inv_userid;
|
||||
gpgme_invalid_key_t inv_key;
|
||||
char *tail;
|
||||
long int reason;
|
||||
|
||||
inv_userid = malloc (sizeof (*inv_userid));
|
||||
if (!inv_userid)
|
||||
inv_key = malloc (sizeof (*inv_key));
|
||||
if (!inv_key)
|
||||
return gpg_error_from_errno (errno);
|
||||
inv_userid->next = NULL;
|
||||
inv_key->next = NULL;
|
||||
errno = 0;
|
||||
reason = strtol (args, &tail, 0);
|
||||
if (errno || args == tail || *tail != ' ')
|
||||
{
|
||||
/* The crypto backend does not behave. */
|
||||
free (inv_userid);
|
||||
free (inv_key);
|
||||
return gpg_error (GPG_ERR_INV_ENGINE);
|
||||
}
|
||||
|
||||
@ -136,48 +136,47 @@ _gpgme_parse_inv_userid (char *args, gpgme_invalid_user_id_t *userid)
|
||||
{
|
||||
default:
|
||||
case 0:
|
||||
inv_userid->reason = gpg_error (GPG_ERR_GENERAL);
|
||||
inv_key->reason = gpg_error (GPG_ERR_GENERAL);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
inv_userid->reason = gpg_error (GPG_ERR_NO_PUBKEY);
|
||||
inv_key->reason = gpg_error (GPG_ERR_NO_PUBKEY);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
/* FIXME: Ambiguous specification. */
|
||||
inv_userid->reason = gpg_error (GPG_ERR_AMBIGUOUS_NAME);
|
||||
inv_key->reason = gpg_error (GPG_ERR_AMBIGUOUS_NAME);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
inv_userid->reason = gpg_error (GPG_ERR_WRONG_KEY_USAGE);
|
||||
inv_key->reason = gpg_error (GPG_ERR_WRONG_KEY_USAGE);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
inv_userid->reason = gpg_error (GPG_ERR_CERT_REVOKED);
|
||||
inv_key->reason = gpg_error (GPG_ERR_CERT_REVOKED);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
inv_userid->reason = gpg_error (GPG_ERR_CERT_EXPIRED);
|
||||
inv_key->reason = gpg_error (GPG_ERR_CERT_EXPIRED);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
inv_userid->reason = gpg_error (GPG_ERR_NO_CRL_KNOWN);
|
||||
inv_key->reason = gpg_error (GPG_ERR_NO_CRL_KNOWN);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
inv_userid->reason = gpg_error (GPG_ERR_CRL_TOO_OLD);
|
||||
inv_key->reason = gpg_error (GPG_ERR_CRL_TOO_OLD);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
inv_userid->reason = gpg_error (GPG_ERR_NO_POLICY_MATCH);
|
||||
inv_key->reason = gpg_error (GPG_ERR_NO_POLICY_MATCH);
|
||||
break;
|
||||
|
||||
case 9:
|
||||
inv_userid->reason = gpg_error (GPG_ERR_NO_SECKEY);
|
||||
inv_key->reason = gpg_error (GPG_ERR_NO_SECKEY);
|
||||
break;
|
||||
|
||||
case 10:
|
||||
inv_userid->reason = gpg_error (GPG_ERR_PUBKEY_NOT_TRUSTED);
|
||||
inv_key->reason = gpg_error (GPG_ERR_PUBKEY_NOT_TRUSTED);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -185,17 +184,17 @@ _gpgme_parse_inv_userid (char *args, gpgme_invalid_user_id_t *userid)
|
||||
tail++;
|
||||
if (*tail)
|
||||
{
|
||||
inv_userid->id = strdup (tail);
|
||||
if (!inv_userid->id)
|
||||
inv_key->fpr = strdup (tail);
|
||||
if (!inv_key->fpr)
|
||||
{
|
||||
int saved_errno = errno;
|
||||
free (inv_userid);
|
||||
free (inv_key);
|
||||
return gpg_error_from_errno (saved_errno);
|
||||
}
|
||||
}
|
||||
else
|
||||
inv_userid->id = NULL;
|
||||
inv_key->fpr = NULL;
|
||||
|
||||
*userid = inv_userid;
|
||||
*key = inv_key;
|
||||
return 0;
|
||||
}
|
||||
|
@ -49,10 +49,9 @@ gpgme_error_t _gpgme_op_data_lookup (gpgme_ctx_t ctx, ctx_op_data_id_t type,
|
||||
/* Prepare a new operation on CTX. */
|
||||
gpgme_error_t _gpgme_op_reset (gpgme_ctx_t ctx, int synchronous);
|
||||
|
||||
/* Parse the invalid user ID status line in ARGS and return the result
|
||||
in USERID. */
|
||||
gpgme_error_t _gpgme_parse_inv_userid (char *args,
|
||||
gpgme_invalid_user_id_t *userid);
|
||||
/* Parse the INV_RECP status line in ARGS and return the result in
|
||||
KEY. */
|
||||
gpgme_error_t _gpgme_parse_inv_recp (char *args, gpgme_invalid_key_t *key);
|
||||
|
||||
|
||||
/* From verify.c. */
|
||||
|
13
gpgme/sign.c
13
gpgme/sign.c
@ -37,7 +37,7 @@ typedef struct
|
||||
/* A pointer to the next pointer of the last invalid signer in
|
||||
the list. This makes appending new invalid signers painless
|
||||
while preserving the order. */
|
||||
gpgme_invalid_user_id_t *last_signer_p;
|
||||
gpgme_invalid_key_t *last_signer_p;
|
||||
|
||||
/* Likewise for signature information. */
|
||||
gpgme_new_signature_t *last_sig_p;
|
||||
@ -48,13 +48,14 @@ static void
|
||||
release_op_data (void *hook)
|
||||
{
|
||||
op_data_t opd = (op_data_t) hook;
|
||||
gpgme_invalid_user_id_t invalid_signer = opd->result.invalid_signers;
|
||||
gpgme_invalid_key_t invalid_signer = opd->result.invalid_signers;
|
||||
gpgme_new_signature_t sig = opd->result.signatures;
|
||||
|
||||
while (invalid_signer)
|
||||
{
|
||||
gpgme_invalid_user_id_t next = invalid_signer->next;
|
||||
free (invalid_signer->id);
|
||||
gpgme_invalid_key_t next = invalid_signer->next;
|
||||
if (invalid_signer->fpr)
|
||||
free (invalid_signer->fpr);
|
||||
free (invalid_signer);
|
||||
invalid_signer = next;
|
||||
}
|
||||
@ -213,7 +214,7 @@ _gpgme_sign_status_handler (void *priv, gpgme_status_code_t code, char *args)
|
||||
break;
|
||||
|
||||
case GPGME_STATUS_INV_RECP:
|
||||
err = _gpgme_parse_inv_userid (args, opd->last_signer_p);
|
||||
err = _gpgme_parse_inv_recp (args, opd->last_signer_p);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
@ -222,7 +223,7 @@ _gpgme_sign_status_handler (void *priv, gpgme_status_code_t code, char *args)
|
||||
|
||||
case GPGME_STATUS_EOF:
|
||||
if (opd->result.invalid_signers)
|
||||
return gpg_error (GPG_ERR_INV_USER_ID);
|
||||
return gpg_error (GPG_ERR_UNUSABLE_SECKEY);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -34,7 +34,7 @@ check_result (gpgme_sign_result_t result, gpgme_sig_mode_t type)
|
||||
if (result->invalid_signers)
|
||||
{
|
||||
fprintf (stderr, "Invalid signer found: %s\n",
|
||||
result->invalid_signers->id);
|
||||
result->invalid_signers->fpr);
|
||||
exit (1);
|
||||
}
|
||||
if (!result->signatures || result->signatures->next)
|
||||
@ -117,7 +117,7 @@ main (int argc, char **argv)
|
||||
if (result->invalid_recipients)
|
||||
{
|
||||
fprintf (stderr, "Invalid recipient encountered: %s\n",
|
||||
result->invalid_recipients->id);
|
||||
result->invalid_recipients->fpr);
|
||||
exit (1);
|
||||
}
|
||||
sign_result = gpgme_op_sign_result (ctx);
|
||||
|
@ -64,7 +64,7 @@ main (int argc, char *argv[])
|
||||
if (result->invalid_recipients)
|
||||
{
|
||||
fprintf (stderr, "Invalid recipient encountered: %s\n",
|
||||
result->invalid_recipients->id);
|
||||
result->invalid_recipients->fpr);
|
||||
exit (1);
|
||||
}
|
||||
print_data (out);
|
||||
|
@ -34,7 +34,7 @@ check_result (gpgme_sign_result_t result, gpgme_sig_mode_t type)
|
||||
if (result->invalid_signers)
|
||||
{
|
||||
fprintf (stderr, "Invalid signer found: %s\n",
|
||||
result->invalid_signers->id);
|
||||
result->invalid_signers->fpr);
|
||||
exit (1);
|
||||
}
|
||||
if (!result->signatures || result->signatures->next)
|
||||
|
@ -36,7 +36,7 @@ check_result (gpgme_sign_result_t result, gpgme_sig_mode_t type)
|
||||
if (result->invalid_signers)
|
||||
{
|
||||
fprintf (stderr, "Invalid signer found: %s\n",
|
||||
result->invalid_signers->id);
|
||||
result->invalid_signers->fpr);
|
||||
exit (1);
|
||||
}
|
||||
if (!result->signatures || !result->signatures->next
|
||||
|
@ -46,11 +46,11 @@ print_data (gpgme_data_t dh)
|
||||
|
||||
ret = gpgme_data_seek (dh, 0, SEEK_SET);
|
||||
if (ret)
|
||||
fail_if_err (gpgme_error_from_errno (errno));
|
||||
fail_if_err (gpgme_err_code_from_errno (errno));
|
||||
while ((ret = gpgme_data_read (dh, buf, BUF_SIZE)) > 0)
|
||||
fwrite (buf, ret, 1, stdout);
|
||||
if (ret < 0)
|
||||
fail_if_err (gpgme_error_from_errno (errno));
|
||||
fail_if_err (gpgme_err_code_from_errno (errno));
|
||||
}
|
||||
|
||||
|
||||
|
@ -59,7 +59,7 @@ main (int argc, char **argv)
|
||||
if (result->invalid_recipients)
|
||||
{
|
||||
fprintf (stderr, "Invalid recipient encountered: %s\n",
|
||||
result->invalid_recipients->id);
|
||||
result->invalid_recipients->fpr);
|
||||
exit (1);
|
||||
}
|
||||
print_data (out);
|
||||
|
@ -32,7 +32,7 @@ check_result (gpgme_sign_result_t result, gpgme_sig_mode_t type)
|
||||
if (result->invalid_signers)
|
||||
{
|
||||
fprintf (stderr, "Invalid signer found: %s\n",
|
||||
result->invalid_signers->id);
|
||||
result->invalid_signers->fpr);
|
||||
exit (1);
|
||||
}
|
||||
if (!result->signatures || result->signatures->next)
|
||||
|
Loading…
Reference in New Issue
Block a user