typedef unsigned long SigStatusFlags;
+#define CRYPTPLUG_CERT_DOES_NEVER_EXPIRE 365000
+
*/
bool signatureCertificateExpiryNearWarning( void );
- /*! \ingroup groupConfigSign
- \brief Returns the number of days that are left until the
- specified certificate expires.
- \param certificate the certificate to check
- */
- int signatureCertificateDaysLeftToExpiry( const char* certificate );
+/*! \ingroup groupConfigSign
+ \brief Returns the number of days that are left until the
+ specified certificate expires.
+
+ Negative values show how many days ago the certificate DID expire,
+ a zero value means the certificate expires today,
+ special value CRYPTPLUG_CERT_DOES_NEVER_EXPIRE means there is
+ no expire date stored in this certificate.
+
+ \param certificate the certificate to check
+*/
+int signatureCertificateDaysLeftToExpiry( const char* certificate );
/*! \ingroup groupConfigSign
\brief Specifies the number of days which a signature certificate must
*/
bool caCertificateExpiryNearWarning( void );
- /*! \ingroup groupConfigSign
- \brief Returns the number of days that are left until the
- CA certificate of the specified certificate expires.
- \param certificate the certificate to check
- */
- int caCertificateDaysLeftToExpiry( const char* certificate );
+/*! \ingroup groupConfigSign
+ \brief Returns the number of days that are left until the
+ CA certificate of the specified certificate expires.
+
+ Negative values show how many days ago the certificate DID expire,
+ a zero value means the certificate expires today,
+ special value CRYPTPLUG_CERT_DOES_NEVER_EXPIRE means there is
+ no expire date stored in this certificate.
+
+ \param certificate the certificate to check
+*/
+int caCertificateDaysLeftToExpiry( const char* certificate );
/*! \ingroup groupConfigSign
\brief Specifies the number of days which a CA certificate must
*/
bool rootCertificateExpiryNearWarning( void );
- /*! \ingroup groupConfigSign
- \brief Returns the number of days that are left until the
- root certificate of the specified certificate expires.
- \param certificate the certificate to check
- */
- int rootCertificateDaysLeftToExpiry( const char* certificate );
+/*! \ingroup groupConfigSign
+ \brief Returns the number of days that are left until the
+ root certificate of the specified certificate expires.
+
+ Negative values show how many days ago the certificate DID expire,
+ a zero value means the certificate expires today,
+ special value CRYPTPLUG_CERT_DOES_NEVER_EXPIRE means there is
+ no expire date stored in this certificate.
+
+ \param certificate the certificate to check
+*/
+int rootCertificateDaysLeftToExpiry( const char* certificate );
/*! \ingroup groupConfigSign
\brief Specifies the number of days which a root certificate must
/*! \ingroup groupConfigCrypt
\brief Returns the number of days until the specified receiver
certificate expires.
+
+ Negative values show how many days ago the certificate DID expire,
+ a zero value means the certificate expires today,
+ special value CRYPTPLUG_CERT_DOES_NEVER_EXPIRE means there is
+ no expire date stored in this certificate.
*/
int receiverCertificateDaysLeftToExpiry( const char* certificate );
/*! \ingroup groupConfigCrypt
\brief Returns the number of days until the first certificate in
the chain of the receiver certificate expires.
+
+ Negative values show how many days ago the certificate DID expire,
+ a zero value means the certificate expires today,
+ special value CRYPTPLUG_CERT_DOES_NEVER_EXPIRE means there is
+ no expire date stored in this certificate.
*/
int certificateInChainDaysLeftToExpiry( const char* certificate );
GpgmeCtx ctx;
GpgmeError err;
GpgmeKey rKey;
- time_t daysLeft = 0;
+ int daysLeft = CRYPTPLUG_CERT_DOES_NEVER_EXPIRE;
gpgme_new( &ctx );
gpgme_set_protocol( ctx, GPGMEPLUG_PROTOCOL );
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 );
+ rKey, GPGME_ATTR_EXPIRE, NULL, 0 );
time_t cur_time = time (NULL);
- daysLeft = days_from_seconds(expire_time - cur_time);
+ if( cur_time > expire_time ) {
+ daysLeft = days_from_seconds(cur_time - expire_time);
+ daysLeft *= -1;
+ }
+ else
+ daysLeft = days_from_seconds(expire_time - cur_time);
gpgme_key_release( rKey );
}
}
GpgmeCtx ctx;
GpgmeError err;
GpgmeKey rKey;
- time_t daysLeft = 0;
+ int daysLeft = CRYPTPLUG_CERT_DOES_NEVER_EXPIRE;
gpgme_new( &ctx );
gpgme_set_protocol( ctx, GPGMEPLUG_PROTOCOL );
time_t expire_time = gpgme_key_get_ulong_attr(
rKey,GPGME_ATTR_EXPIRE, NULL, 0 );
time_t cur_time = time (NULL);
- daysLeft = days_from_seconds(expire_time - cur_time);
+ if( cur_time > expire_time ) {
+ daysLeft = days_from_seconds(cur_time - expire_time);
+ daysLeft *= -1;
+ }
+ else
+ daysLeft = days_from_seconds(expire_time - cur_time);
gpgme_key_release( rKey );
}
}
*/
return daysLeft;
-
-
-
- /* PENDING(g10)
- Please return the number of days that are left until the
- certificate specified in the parameter certificate expires.
- */
- return 10; /* dummy that triggers a warning in the MUA */
}
}
if( count < 1 ) {
/* we didn't import anything?!? */
- fprintf( stderr, "gpgme_op_import_ext did not import any certificate\n", err );
+ fprintf( stderr, "gpgme_op_import_ext did not import any certificate\n" );
gpgme_data_release( keydata );
gpgme_release( ctx );
return -1; /* FIXME */