2008-12-15 [colin] 3.6.1cvs78
[claws.git] / src / privacy.h
index 08bebf49a5efdee7f32672b275699e84136bbfd8..55b008b7013a97dc3756fbf90654e674a87b0b55 100644 (file)
@@ -1,10 +1,10 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2003 Hiroyuki Yamamoto & the Sylpheed-Claws team
+ * Copyright (C) 1999-2007 Hiroyuki Yamamoto & the Claws Mail team
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
@@ -13,8 +13,8 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * 
  */
 
 #ifndef PRIVACY_H
@@ -27,8 +27,10 @@ typedef enum {
        SIGNATURE_UNCHECKED,
        SIGNATURE_OK,
        SIGNATURE_WARN,
+       SIGNATURE_KEY_EXPIRED,
        SIGNATURE_INVALID,
-       SIGNATURE_CHECK_FAILED
+       SIGNATURE_CHECK_FAILED,
+       SIGNATURE_CHECK_TIMEOUT
 } SignatureStatus;
 
 #include <glib.h>
@@ -41,6 +43,7 @@ void privacy_unregister_system                        (PrivacySystem *system);
 
 void privacy_free_privacydata                  (PrivacyData *);
 
+void privacy_msginfo_get_signed_state          (MsgInfo *);
 gboolean privacy_mimeinfo_is_signed            (MimeInfo *);
 gint privacy_mimeinfo_check_signature          (MimeInfo *);
 SignatureStatus privacy_mimeinfo_get_sig_status        (MimeInfo *);
@@ -57,13 +60,20 @@ gboolean privacy_system_can_encrypt         (const gchar *);
 
 gboolean privacy_sign                          (const gchar  *system,
                                                 MimeInfo     *mimeinfo,
-                                                PrefsAccount *account);
+                                                PrefsAccount *account,
+                                                const gchar *from_addr);
 gchar *privacy_get_encrypt_data                        (const gchar  *system,
                                                 GSList       *recp_names);
+const gchar *privacy_get_encrypt_warning       (const gchar  *system);
 gboolean privacy_encrypt                       (const gchar  *system,
                                                 MimeInfo     *mimeinfo,
                                                 const gchar  *encdata);
 
+void privacy_set_error                         (const gchar *format, ...) G_GNUC_PRINTF(1, 2);
+void privacy_reset_error                               (void);
+gboolean privacy_peek_error                            (void);
+const gchar *privacy_get_error                 (void);
+
 struct _PrivacySystem {
        /** Identifier for the PrivacySystem that can use in config files */
        gchar            *id;
@@ -83,16 +93,22 @@ struct _PrivacySystem {
 
        gboolean           can_sign;
        gboolean         (*sign)                (MimeInfo *mimeinfo,
-                                                PrefsAccount *account);
+                                                PrefsAccount *account, 
+                                                const gchar *from_addr);
 
        gboolean           can_encrypt;
        gchar           *(*get_encrypt_data)    (GSList *recp_names);
        gboolean         (*encrypt)             (MimeInfo *mimeinfo,
                                                 const gchar *encrypt_data);
+       const gchar     *(*get_encrypt_warning) (void);
+       void             (*inhibit_encrypt_warning)     (gboolean inhibit);
 };
 
 struct _PrivacyData {
        PrivacySystem   *system;
 };
 
+void privacy_inhibit_encrypt_warning           (const gchar *id,
+                                                gboolean inhibit);
+
 #endif /* PRIVACY_H */