aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-cipher-context.h
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2003-10-30 12:58:33 +0800
committerMichael Zucci <zucchi@src.gnome.org>2003-10-30 12:58:33 +0800
commit52759f2d4018b8ff0ce173aa1237b08783f1424c (patch)
treec6b392bea311df4d965b3e234cb769d6bf78e7e0 /camel/camel-cipher-context.h
parent4c9e3c871c301e92711b91f0df0aca2521567db1 (diff)
downloadgsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.tar
gsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.tar.gz
gsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.tar.bz2
gsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.tar.lz
gsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.tar.xz
gsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.tar.zst
gsoc2013-evolution-52759f2d4018b8ff0ce173aa1237b08783f1424c.zip
Added a note about api inconsistencies.
2003-10-30 Not Zed <NotZed@Ximian.com> * camel-cipher-context.h: Added a note about api inconsistencies. 2003-10-30 Not Zed <NotZed@Ximian.com> * camel-multipart-encrypted.c (camel_multipart_encrypted_decrypt): fix for cipher_decrypt changes. * camel-gpg-context.c, camel-cipher-context.c: moved all the init code to the end to save having to keep forward declarations around. (camel_cipher_decrypt): changed to take mimepart input and return a mimepart. (gpg_decrypt): fix for changed args. 2003-10-29 Not Zed <NotZed@Ximian.com> * camel-smime-context.[ch]: replaced entirely with a new implementation which inherits from camel-cipher-context, and add to build. * camel-multipart-encrypted.c (camel_multipart_encrypted_encrypt): fix for cipher_encrypt api changes. (camel_multipart_encrypted_decrypt): use g_ascii_strcasecmp. * camel-gpg-context.c (gpg_encrypt): Fix to handle input/output as parts not streams * camel-cipher-context.c (camel_cipher_encrypt): change to take mimeparts rather than streams as input/output. And remove the 'sign' argument, it is implied if userid is supplied. 2003-10-28 Not Zed <NotZed@Ximian.com> * tests/smime/pgp.c (main): fix for ciphercontext api changes. * camel-multipart-signed.c (camel_multipart_signed_verify): pass in the part to cipher_verify directly. (camel_multipart_signed_sign): let the cipher context setup the part details. * camel-gpg-context.c (gpg_sign): put the signature stream into a mimepart, with appropriate headers/encoding. (swrite): write out a mimepart rather than a stream. (gpg_verify): handle changed args. * camel-cipher-context.c (camel_cipher_sign): write the signature to a mimepart rather than a simple stream. (camel_cipher_verify): take the signature as a mimepart not a stream. 2003-10-22 Not Zed <NotZed@Ximian.com> * camel-utf8.c (camel_ucs2_utf8, camel_utf8_ucs2): helpers for ucs2 stuff. ucs2 is 16 bit truncated unicode. svn path=/trunk/; revision=23127
Diffstat (limited to 'camel/camel-cipher-context.h')
-rw-r--r--camel/camel-cipher-context.h50
1 files changed, 22 insertions, 28 deletions
diff --git a/camel/camel-cipher-context.h b/camel/camel-cipher-context.h
index 45444c26a0..5d9218b83e 100644
--- a/camel/camel-cipher-context.h
+++ b/camel/camel-cipher-context.h
@@ -24,9 +24,11 @@
#define CAMEL_CIPHER_CONTEXT_H
#include <camel/camel-session.h>
-#include <camel/camel-stream.h>
#include <camel/camel-exception.h>
+struct _CamelStream;
+struct _CamelMimePart;
+
#ifdef __cplusplus
extern "C" {
#pragma }
@@ -69,24 +71,23 @@ typedef struct _CamelCipherContextClass {
const char * (*hash_to_id)(CamelCipherContext *context, CamelCipherHash hash);
int (*sign) (CamelCipherContext *context, const char *userid, CamelCipherHash hash,
- CamelStream *istream, CamelStream *ostream, CamelException *ex);
+ struct _CamelStream *istream, struct _CamelMimePart *sigpart, CamelException *ex);
CamelCipherValidity * (*verify) (CamelCipherContext *context, CamelCipherHash hash,
- CamelStream *istream, CamelStream *sigstream,
+ struct _CamelStream *istream, struct _CamelMimePart *sigpart,
CamelException *ex);
- int (*encrypt) (CamelCipherContext *context, gboolean sign, const char *userid,
- GPtrArray *recipients, CamelStream *istream, CamelStream *ostream,
+ int (*encrypt) (CamelCipherContext *context, const char *userid,
+ GPtrArray *recipients, struct _CamelMimePart *ipart, struct _CamelMimePart *opart,
CamelException *ex);
- int (*decrypt) (CamelCipherContext *context, CamelStream *istream, CamelStream *ostream,
- CamelException *ex);
+ struct _CamelMimePart *(*decrypt) (CamelCipherContext *context, struct _CamelMimePart *ipart, CamelException *ex);
- int (*import_keys) (CamelCipherContext *context, CamelStream *istream,
+ int (*import_keys) (CamelCipherContext *context, struct _CamelStream *istream,
CamelException *ex);
int (*export_keys) (CamelCipherContext *context, GPtrArray *keys,
- CamelStream *ostream, CamelException *ex);
+ struct _CamelStream *ostream, CamelException *ex);
} CamelCipherContextClass;
CamelType camel_cipher_context_get_type (void);
@@ -99,43 +100,36 @@ void camel_cipher_context_construct (CamelCipherContext *context
CamelCipherHash camel_cipher_id_to_hash (CamelCipherContext *context, const char *id);
const char * camel_cipher_hash_to_id (CamelCipherContext *context, CamelCipherHash hash);
+/* FIXME:
+ There are some inconsistencies here, the api's should probably handle CamelMimePart's as input/outputs,
+ Something that might generate a multipart/signed should do it as part of that processing, internally
+ to the cipher, etc etc. */
+
/* cipher routines */
int camel_cipher_sign (CamelCipherContext *context, const char *userid, CamelCipherHash hash,
- CamelStream *istream, CamelStream *ostream, CamelException *ex);
-
+ struct _CamelStream *istream, struct _CamelMimePart *sigpart, CamelException *ex);
CamelCipherValidity *camel_cipher_verify (CamelCipherContext *context, CamelCipherHash hash,
- CamelStream *istream, CamelStream *sigstream,
+ struct _CamelStream *istream, struct _CamelMimePart *sigpart,
CamelException *ex);
-
-int camel_cipher_encrypt (CamelCipherContext *context, gboolean sign, const char *userid,
- GPtrArray *recipients, CamelStream *istream, CamelStream *ostream,
- CamelException *ex);
-
-int camel_cipher_decrypt (CamelCipherContext *context, CamelStream *istream, CamelStream *ostream,
+int camel_cipher_encrypt (CamelCipherContext *context, const char *userid,
+ GPtrArray *recipients, struct _CamelMimePart *ipart, struct _CamelMimePart *opart,
CamelException *ex);
+struct _CamelMimePart *camel_cipher_decrypt (CamelCipherContext *context, struct _CamelMimePart *ipart, CamelException *ex);
/* key/certificate routines */
-int camel_cipher_import_keys (CamelCipherContext *context, CamelStream *istream,
+int camel_cipher_import_keys (CamelCipherContext *context, struct _CamelStream *istream,
CamelException *ex);
-
int camel_cipher_export_keys (CamelCipherContext *context, GPtrArray *keys,
- CamelStream *ostream, CamelException *ex);
+ struct _CamelStream *ostream, CamelException *ex);
/* CamelCipherValidity utility functions */
CamelCipherValidity *camel_cipher_validity_new (void);
-
void camel_cipher_validity_init (CamelCipherValidity *validity);
-
gboolean camel_cipher_validity_get_valid (CamelCipherValidity *validity);
-
void camel_cipher_validity_set_valid (CamelCipherValidity *validity, gboolean valid);
-
char *camel_cipher_validity_get_description (CamelCipherValidity *validity);
-
void camel_cipher_validity_set_description (CamelCipherValidity *validity, const char *description);
-
void camel_cipher_validity_clear (CamelCipherValidity *validity);
-
void camel_cipher_validity_free (CamelCipherValidity *validity);
#ifdef __cplusplus