Bugfix: enable function receiverCertificateDaysLeftToExpiry().

This commit is contained in:
Karl-Heinz Zimmer 2002-06-26 15:16:32 +00:00
parent 06cd423a8b
commit 71266fd6ea

View File

@ -278,8 +278,8 @@ bool hasFeature( Feature flag )
case Feature_WarnEncryptEmailNotInCertificate: return true; case Feature_WarnEncryptEmailNotInCertificate: return true;
case Feature_StoreMessagesEncrypted: return true; case Feature_StoreMessagesEncrypted: return true;
case Feature_CheckCertificatePath: return true; case Feature_CheckCertificatePath: return true;
case Feature_CertificateDirectoryService: return true; case Feature_CertificateDirectoryService: return false;
case Feature_CRLDirectoryService: return true; case Feature_CRLDirectoryService: return false;
/* undefined or not yet implemented: */ /* undefined or not yet implemented: */
case Feature_undef: return false; case Feature_undef: return false;
default: return false; default: return false;
@ -787,6 +787,38 @@ bool receiverCertificateExpiryNearWarning()
int receiverCertificateDaysLeftToExpiry( const char* certificate ) int receiverCertificateDaysLeftToExpiry( const char* certificate )
{ {
GpgmeCtx ctx;
GpgmeError err;
GpgmeKey rKey;
time_t daysLeft = 0;
gpgme_new( &ctx );
gpgme_set_protocol( ctx, GPGMEPLUG_PROTOCOL );
err = gpgme_op_keylist_start( ctx, certificate, 0 );
if ( GPGME_No_Error == err ) {
err = gpgme_op_keylist_next( ctx, &rKey );
gpgme_op_keylist_end( ctx );
if ( GPGME_No_Error == err ) {
time_t expire_time = gpgme_key_get_ulong_attr(
rKey,GPGME_ATTR_EXPIRE, NULL, 0 );
time_t cur_time = time (NULL);
daysLeft = expire_time - cur_time;
// convert seconds into days
daysLeft /= 43200;
gpgme_key_release( rKey );
}
}
gpgme_release( ctx );
/*
fprintf( stderr, "gpgmeplug receiverCertificateDaysLeftToExpiry returned %d\n", daysLeft );
*/
return daysLeft;
/* PENDING(g10) /* PENDING(g10)
Please return the number of days that are left until the Please return the number of days that are left until the
certificate specified in the parameter certificate expires. certificate specified in the parameter certificate expires.