diff options
| author | Werner Koch <[email protected]> | 2014-05-08 12:03:14 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2014-05-08 12:11:58 +0000 | 
| commit | d5fb92cdaed21eea2f1a921e4f11df72635a8462 (patch) | |
| tree | 9c219a9cfa334c021853091a0717f8135733a06a /src/verify.c | |
| parent | Add GPGME_ENCRYPT_NO_COMPRESS flag. (diff) | |
| download | gpgme-d5fb92cdaed21eea2f1a921e4f11df72635a8462.tar.gz gpgme-d5fb92cdaed21eea2f1a921e4f11df72635a8462.zip | |
Map public key algos returned by gpg to gpgme values.
* src/conversion.c (_gpgme_map_pk_algo): New.
* src/decrypt.c (parse_enc_to): Add arg PROTOCOL and map pubkey algo.
(_gpgme_decrypt_status_handler): Map pubkey algo.
* src/keylist.c (keylist_colon_handler): Map pubkey algo.
* src/sign.c (parse_sig_created): Add arg PROTOCOL and map pubkey
algo.
* src/verify.c (parse_new_sig): Ditto.
(parse_valid_sig): Ditto.
* src/gpgme.h.in (GPGME_PK_ECC): New.
(GPGME_MD_SHA224): New.
* src/gpgme.c (gpgme_pubkey_algo_name): Add GPGME_PK_ECC case.
(gpgme_hash_algo_name): Add GPGME_MD_SHA224.
--
This affects only the not yet released ECC code of GnuPG 2.1.
Diffstat (limited to 'src/verify.c')
| -rw-r--r-- | src/verify.c | 14 | 
1 files changed, 8 insertions, 6 deletions
| diff --git a/src/verify.c b/src/verify.c index c32241ae..37b2bd46 100644 --- a/src/verify.c +++ b/src/verify.c @@ -264,7 +264,8 @@ prepare_new_sig (op_data_t opd)  }  static gpgme_error_t -parse_new_sig (op_data_t opd, gpgme_status_code_t code, char *args) +parse_new_sig (op_data_t opd, gpgme_status_code_t code, char *args, +               gpgme_protocol_t protocol)  {    gpgme_signature_t sig;    char *end = strchr (args, ' '); @@ -318,7 +319,7 @@ parse_new_sig (op_data_t opd, gpgme_status_code_t code, char *args)        if (!end)  	goto parse_err_sig_fail;        gpg_err_set_errno (0); -      sig->pubkey_algo = strtol (end, &tail, 0); +      sig->pubkey_algo = _gpgme_map_pk_algo (strtol (end, &tail, 0), protocol);        if (errno || end == tail || *tail != ' ')  	goto parse_err_sig_fail;        end = tail; @@ -393,7 +394,7 @@ parse_new_sig (op_data_t opd, gpgme_status_code_t code, char *args)  static gpgme_error_t -parse_valid_sig (gpgme_signature_t sig, char *args) +parse_valid_sig (gpgme_signature_t sig, char *args, gpgme_protocol_t protocol)  {    char *end = strchr (args, ' ');    if (end) @@ -443,7 +444,8 @@ parse_valid_sig (gpgme_signature_t sig, char *args)  	    {  	      /* Parse the pubkey algo.  */  	      gpg_err_set_errno (0); -	      sig->pubkey_algo = strtol (end, &tail, 0); +	      sig->pubkey_algo = _gpgme_map_pk_algo (strtol (end, &tail, 0), +                                                     protocol);  	      if (errno || end == tail || *tail != ' ')  		return trace_gpg_error (GPG_ERR_INV_ENGINE);  	      end = tail; @@ -703,11 +705,11 @@ _gpgme_verify_status_handler (void *priv, gpgme_status_code_t code, char *args)        if (sig && !opd->did_prepare_new_sig)  	calc_sig_summary (sig);        opd->only_newsig_seen = 0; -      return parse_new_sig (opd, code, args); +      return parse_new_sig (opd, code, args, ctx->protocol);      case GPGME_STATUS_VALIDSIG:        opd->only_newsig_seen = 0; -      return sig ? parse_valid_sig (sig, args) +      return sig ? parse_valid_sig (sig, args, ctx->protocol)  	: trace_gpg_error (GPG_ERR_INV_ENGINE);      case GPGME_STATUS_NODATA: | 
