0.9.6claws32
[claws.git] / src / privacy.c
index dbd6bed..13fbaf8 100644 (file)
@@ -59,17 +59,48 @@ gboolean privacy_mimeinfo_is_signed(MimeInfo *mimeinfo)
                PrivacySystem *system = (PrivacySystem *) cur->data;
 
                if(system->is_signed != NULL && system->is_signed(mimeinfo))
-                       return TRUE;                    
+                       return TRUE;
        }
 
        return FALSE;
 }
 
-const gchar *privacy_get_signer(MimeInfo *mimeinfo)
+gint privacy_mimeinfo_check_signature(MimeInfo *mimeinfo)
 {
-       g_return_val_if_fail(mimeinfo != NULL, NULL);
+       PrivacySystem *system;
+
+       g_return_val_if_fail(mimeinfo != NULL, -1);
+
+       if (mimeinfo->privacy == NULL)
+               privacy_mimeinfo_is_signed(mimeinfo);
+       
+       if (mimeinfo->privacy == NULL)
+               return -1;
+       
+       system = mimeinfo->privacy->system;
+       if (system->check_signature == NULL)
+               return -1;
+       
+       return system->check_signature(mimeinfo);
+}
 
-       return "Dummy";
+SignatureStatus privacy_mimeinfo_get_sig_status(MimeInfo *mimeinfo)
+{
+       PrivacySystem *system;
+
+       g_return_val_if_fail(mimeinfo != NULL, -1);
+
+       if (mimeinfo->privacy == NULL)
+               privacy_mimeinfo_is_signed(mimeinfo);
+       
+       if (mimeinfo->privacy == NULL)
+               return SIGNATURE_UNCHECKED;
+       
+       system = mimeinfo->privacy->system;
+       if (system->get_sig_status == NULL)
+               return SIGNATURE_UNCHECKED;
+       
+       return system->get_sig_status(mimeinfo);
 }
 
 gboolean privacy_mimeinfo_is_encrypted(MimeInfo *mimeinfo)