diff options
Diffstat (limited to 'src/conversion.c')
| -rw-r--r-- | src/conversion.c | 21 | 
1 files changed, 21 insertions, 0 deletions
| diff --git a/src/conversion.c b/src/conversion.c index b47d6deb..d04a6bef 100644 --- a/src/conversion.c +++ b/src/conversion.c @@ -412,3 +412,24 @@ _gpgme_parse_timestamp (const char *timestamp, char **endp)    else      return (time_t)strtoul (timestamp, endp, 10);  } + + +/* The GPG backend uses OpenPGP algorithm numbers which we need to map +   to our algorithm numbers.  This function MUST not change ERRNO. */ +int +_gpgme_map_pk_algo (int algo, gpgme_protocol_t protocol) +{ +  if (protocol == GPGME_PROTOCOL_OPENPGP) +    { +      switch (algo) +        { +        case 1: case 2: case 3: case 16: case 17: break; +        case 18: algo = GPGME_PK_ECDH; break; +        case 19: algo = GPGME_PK_ECDSA; break; +        case 20: break; +        default: algo = 0; break; /* Unknown.  */ +        } +    } + +  return algo; +} | 
