Include the protocol parameter of multipart/.. content-type messages into double...
authorKarl-Heinz Zimmer <khz@kde.org>
Wed, 8 May 2002 12:05:17 +0000 (12:05 +0000)
committerKarl-Heinz Zimmer <khz@kde.org>
Wed, 8 May 2002 12:05:17 +0000 (12:05 +0000)
gpgmeplug/gpgme-openpgp.c
gpgmeplug/gpgme-smime.c
gpgmeplug/gpgmeplug.c

index 56908e1..e0bd163 100644 (file)
@@ -3,7 +3,7 @@
 #define GPGMEPLUG_SIGN_INCLUDE_CLEARTEXT true
 #define GPGMEPLUG_SIGN_MAKE_MIME_OBJECT  true
 #define GPGMEPLUG_SIGN_MAKE_MULTI_MIME   true
-#define GPGMEPLUG_SIGN_CTYPE_MAIN        "multipart/signed;protocol=application/pgp-signature;micalg=pgp-sha1"
+#define GPGMEPLUG_SIGN_CTYPE_MAIN        "multipart/signed;protocol=\"application/pgp-signature\";micalg=pgp-sha1"
 #define GPGMEPLUG_SIGN_CDISP_MAIN        ""
 #define GPGMEPLUG_SIGN_CTENC_MAIN        ""
 #define GPGMEPLUG_SIGN_CTYPE_VERSION     ""
@@ -21,7 +21,7 @@
 #define GPGMEPLUG_ENC_INCLUDE_CLEARTEXT  false
 #define GPGMEPLUG_ENC_MAKE_MIME_OBJECT   true
 #define GPGMEPLUG_ENC_MAKE_MULTI_MIME    true
-#define GPGMEPLUG_ENC_CTYPE_MAIN         "multipart/encrypted; protocol=application/pgp-encrypted"
+#define GPGMEPLUG_ENC_CTYPE_MAIN         "multipart/encrypted; protocol=\"application/pgp-encrypted\""
 #define GPGMEPLUG_ENC_CDISP_MAIN         ""
 #define GPGMEPLUG_ENC_CTENC_MAIN         ""
 #define GPGMEPLUG_ENC_CTYPE_VERSION      "application/pgp-encrypted"
index e6c8534..39b53e8 100644 (file)
@@ -3,7 +3,7 @@
 #define GPGMEPLUG_SIGN_INCLUDE_CLEARTEXT true
 #define GPGMEPLUG_SIGN_MAKE_MIME_OBJECT  true
 #define GPGMEPLUG_SIGN_MAKE_MULTI_MIME   true
-#define GPGMEPLUG_SIGN_CTYPE_MAIN        "multipart/signed; protocol=application/pkcs7-signature; micalg=sha1"
+#define GPGMEPLUG_SIGN_CTYPE_MAIN        "multipart/signed; protocol=\"application/pkcs7-signature\"; micalg=sha1"
 #define GPGMEPLUG_SIGN_CDISP_MAIN        ""
 #define GPGMEPLUG_SIGN_CTENC_MAIN        ""
 #define GPGMEPLUG_SIGN_CTYPE_VERSION     ""
index 12cf200..0132a67 100644 (file)
@@ -452,11 +452,31 @@ bool signatureCertificateExpiryNearWarning( void )
 
 int signatureCertificateDaysLeftToExpiry( const char* certificate )
 {
-    /* 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 */
+  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 );
+
+  return daysLeft;
 }