diff options
| author | Karl-Heinz Zimmer <[email protected]> | 2002-06-19 10:22:49 +0000 | 
|---|---|---|
| committer | Karl-Heinz Zimmer <[email protected]> | 2002-06-19 10:22:49 +0000 | 
| commit | 6798c68f2f1e3c64008ef3eec98fd3fab9bf4004 (patch) | |
| tree | f0f7d98d6b8e809d1b62abc4714362d5ed304092 /gpgmeplug/gpgmeplug.c | |
| parent | 2002-06-14 Marcus Brinkmann <[email protected]> (diff) | |
| download | gpgme-6798c68f2f1e3c64008ef3eec98fd3fab9bf4004.tar.gz gpgme-6798c68f2f1e3c64008ef3eec98fd3fab9bf4004.zip  | |
Use gpgme_get_sig_ulong_attr(.., GPGME_ATTR_SIG_SUMMARY ) function to return extended signature status information from the CryptPlug to the calling process after trying to verify a signature.
Diffstat (limited to '')
| -rw-r--r-- | gpgmeplug/gpgmeplug.c | 24 | 
1 files changed, 24 insertions, 0 deletions
diff --git a/gpgmeplug/gpgmeplug.c b/gpgmeplug/gpgmeplug.c index eabcf35b..217cca12 100644 --- a/gpgmeplug/gpgmeplug.c +++ b/gpgmeplug/gpgmeplug.c @@ -1179,6 +1179,8 @@ bool checkMessageSignature( char** cleartext,  {    GpgmeCtx ctx;    GpgmeSigStat status; +  unsigned long sumGPGME; +  SigStatusFlags sumPlug;    GpgmeData datapart, sigpart;    char* rClear = 0;    size_t clearLen; @@ -1268,6 +1270,28 @@ bool checkMessageSignature( char** cleartext,                  ctime_val, sizeof( struct tm ) );        } +      /* the extended signature verification status */ +      sumGPGME = gpgme_get_sig_ulong_attr( ctx, +                                           sig_idx, +                                           GPGME_ATTR_SIG_SUMMARY, +                                           0 ); +      // translate GPGME status flags to common CryptPlug status flags +      sumPlug = 0; +      if( sumGPGME & GPGME_SIGSUM_VALID       ) sumPlug |= SigStat_VALID      ; +      if( sumGPGME & GPGME_SIGSUM_GREEN       ) sumPlug |= SigStat_GREEN      ; +      if( sumGPGME & GPGME_SIGSUM_RED         ) sumPlug |= SigStat_RED        ; +      if( sumGPGME & GPGME_SIGSUM_KEY_REVOKED ) sumPlug |= SigStat_KEY_REVOKED; +      if( sumGPGME & GPGME_SIGSUM_KEY_EXPIRED ) sumPlug |= SigStat_KEY_EXPIRED; +      if( sumGPGME & GPGME_SIGSUM_SIG_EXPIRED ) sumPlug |= SigStat_SIG_EXPIRED; +      if( sumGPGME & GPGME_SIGSUM_KEY_MISSING ) sumPlug |= SigStat_KEY_MISSING; +      if( sumGPGME & GPGME_SIGSUM_CRL_MISSING ) sumPlug |= SigStat_CRL_MISSING; +      if( sumGPGME & GPGME_SIGSUM_CRL_TOO_OLD ) sumPlug |= SigStat_CRL_TOO_OLD; +      if( sumGPGME & GPGME_SIGSUM_BAD_POLICY  ) sumPlug |= SigStat_BAD_POLICY ; +      if( sumGPGME & GPGME_SIGSUM_SYS_ERROR   ) sumPlug |= SigStat_SYS_ERROR  ; +      if( !sumPlug ) +        sumPlug = SigStat_NUMERICAL_CODE | sumGPGME; +      sigmeta->extended_info[sig_idx].sigStatusFlags = sumPlug; +        sigmeta->extended_info[sig_idx].validity = GPGME_VALIDITY_UNKNOWN;        err = gpgme_get_sig_key (ctx, sig_idx, &key);  | 
