| Camel Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Properties | ||||
CamelCipherContext; CamelCipherValidity; CamelCipherCertInfo; enum CamelCipherHash; enum camel_cipher_validity_sign_t; enum camel_cipher_validity_encrypt_t; enum camel_cipher_validity_mode_t; CamelCipherContext * camel_cipher_context_new (CamelSession *session); CamelSession * camel_cipher_context_get_session (CamelCipherContext *context); CamelCipherHash camel_cipher_id_to_hash (CamelCipherContext *context,const gchar *id); const gchar * camel_cipher_hash_to_id (CamelCipherContext *context,CamelCipherHash hash); gint camel_cipher_sign (CamelCipherContext *context,const gchar *userid,CamelCipherHash hash,CamelMimePart *ipart,CamelMimePart *opart,GError **error); CamelCipherValidity * camel_cipher_verify (CamelCipherContext *context,CamelMimePart *ipart,GError **error); gint camel_cipher_encrypt (CamelCipherContext *context,const gchar *userid,GPtrArray *recipients,CamelMimePart *ipart,CamelMimePart *opart,GError **error); CamelCipherValidity * camel_cipher_decrypt (CamelCipherContext *context,CamelMimePart *ipart,CamelMimePart *opart,GError **error); gint camel_cipher_import_keys (CamelCipherContext *context,CamelStream *istream,GError **error); gint camel_cipher_export_keys (CamelCipherContext *context,GPtrArray *keys,CamelStream *ostream,GError **error); 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); gchar * camel_cipher_validity_get_description (CamelCipherValidity *validity); void camel_cipher_validity_set_description (CamelCipherValidity *validity,const gchar *description); void camel_cipher_validity_clear (CamelCipherValidity *validity); CamelCipherValidity * camel_cipher_validity_clone (CamelCipherValidity *vin); void camel_cipher_validity_add_certinfo (CamelCipherValidity *vin,camel_cipher_validity_mode_t mode,const gchar *name,const gchar *email); void camel_cipher_validity_add_certinfo_ex (CamelCipherValidity *vin,camel_cipher_validity_mode_t mode,const gchar *name,const gchar *email,gpointer cert_data,void (cert_data_freegpointer cert_data) (),gpointer (cert_data_clonegpointer cert_data) ()); void camel_cipher_validity_envelope (CamelCipherValidity *parent,CamelCipherValidity *valid); void camel_cipher_validity_free (CamelCipherValidity *validity); gint camel_cipher_canonical_to_stream (CamelMimePart *part,guint32 flags,CamelStream *ostream,GError **error);
GObject +----CamelObject +----CamelCipherContext +----CamelGpgContext +----CamelSMIMEContext
typedef struct {
struct _CamelCipherValidity *next;
struct _CamelCipherValidity *prev;
CamelDList children;
struct {
enum _camel_cipher_validity_sign_t status;
gchar *description;
CamelDList signers; /* CamelCipherCertInfo's */
} sign;
struct {
enum _camel_cipher_validity_encrypt_t status;
gchar *description;
CamelDList encrypters; /* CamelCipherCertInfo's */
} encrypt;
} CamelCipherValidity;
typedef struct {
struct _CamelCipherCertInfo *next;
struct _CamelCipherCertInfo *prev;
gchar *name; /* common name */
gchar *email;
gpointer cert_data; /* custom certificate data; can be NULL */
void (*cert_data_free) (gpointer cert_data); /* called to free cert_data; can be NULL only if cert_data is NULL */
gpointer (*cert_data_clone) (gpointer cert_data); /* called to clone cert_data; can be NULL only if cert_data is NULL */
} CamelCipherCertInfo;
typedef enum {
CAMEL_CIPHER_HASH_DEFAULT,
CAMEL_CIPHER_HASH_MD2,
CAMEL_CIPHER_HASH_MD5,
CAMEL_CIPHER_HASH_SHA1,
CAMEL_CIPHER_HASH_SHA256,
CAMEL_CIPHER_HASH_SHA384,
CAMEL_CIPHER_HASH_SHA512,
CAMEL_CIPHER_HASH_RIPEMD160,
CAMEL_CIPHER_HASH_TIGER192,
CAMEL_CIPHER_HASH_HAVAL5160
} CamelCipherHash;
typedef enum _camel_cipher_validity_sign_t {
CAMEL_CIPHER_VALIDITY_SIGN_NONE,
CAMEL_CIPHER_VALIDITY_SIGN_GOOD,
CAMEL_CIPHER_VALIDITY_SIGN_BAD,
CAMEL_CIPHER_VALIDITY_SIGN_UNKNOWN,
CAMEL_CIPHER_VALIDITY_SIGN_NEED_PUBLIC_KEY
} camel_cipher_validity_sign_t;
typedef enum _camel_cipher_validity_encrypt_t {
CAMEL_CIPHER_VALIDITY_ENCRYPT_NONE,
CAMEL_CIPHER_VALIDITY_ENCRYPT_WEAK,
CAMEL_CIPHER_VALIDITY_ENCRYPT_ENCRYPTED, /* encrypted, unknown strenght */
CAMEL_CIPHER_VALIDITY_ENCRYPT_STRONG
} camel_cipher_validity_encrypt_t;
typedef enum _camel_cipher_validity_mode_t {
CAMEL_CIPHER_VALIDITY_SIGN,
CAMEL_CIPHER_VALIDITY_ENCRYPT
} camel_cipher_validity_mode_t;
CamelCipherContext * camel_cipher_context_new (CamelSession *session);
This creates a new CamelCipherContext object which is used to sign, verify, encrypt and decrypt streams.
|
a CamelSession |
Returns : |
the new CamelCipherContext |
CamelSession * camel_cipher_context_get_session (CamelCipherContext *context);
|
a CamelCipherContext |
Returns : |
Since 2.32
CamelCipherHash camel_cipher_id_to_hash (CamelCipherContext *context,const gchar *id);
|
|
|
|
Returns : |
const gchar * camel_cipher_hash_to_id (CamelCipherContext *context,CamelCipherHash hash);
|
|
|
|
Returns : |
gint camel_cipher_sign (CamelCipherContext *context,const gchar *userid,CamelCipherHash hash,CamelMimePart *ipart,CamelMimePart *opart,GError **error);
Converts the (unsigned) part ipart into a new self-contained mime part opart.
This may be a multipart/signed part, or a simple part for enveloped types.
CamelCipherValidity * camel_cipher_verify (CamelCipherContext *context,CamelMimePart *ipart,GError **error);
Verifies the signature. If istream is a clearsigned stream,
you should pass NULL as the sigstream parameter. Otherwise
sigstream is assumed to be the signature stream and is used to
verify the integirity of the istream.
gint camel_cipher_encrypt (CamelCipherContext *context,const gchar *userid,GPtrArray *recipients,CamelMimePart *ipart,CamelMimePart *opart,GError **error);
Encrypts (and optionally signs) the cleartext input stream and writes the resulting ciphertext to the output stream.
|
Cipher Context |
|
key id (or email address) to use when signing, or NULL to not sign. |
|
an array of recipient key ids and/or email addresses |
|
cleartext input stream |
|
ciphertext output stream |
|
return location for a GError, or NULL
|
Returns : |
0 for success or -1 for failure. |
CamelCipherValidity * camel_cipher_decrypt (CamelCipherContext *context,CamelMimePart *ipart,CamelMimePart *opart,GError **error);
Decrypts ipart into opart.
gint camel_cipher_import_keys (CamelCipherContext *context,CamelStream *istream,GError **error);
Imports a stream of keys/certificates contained within istream
into the key/certificate database controlled by ctx.
gint camel_cipher_export_keys (CamelCipherContext *context,GPtrArray *keys,CamelStream *ostream,GError **error);
Exports the keys/certificates in keys to the stream ostream from
the key/certificate database controlled by ctx.
void camel_cipher_validity_init (CamelCipherValidity *validity);
|
gboolean camel_cipher_validity_get_valid (CamelCipherValidity *validity);
|
|
Returns : |
void camel_cipher_validity_set_valid (CamelCipherValidity *validity,gboolean valid);
|
|
|
gchar * camel_cipher_validity_get_description
(CamelCipherValidity *validity);
|
|
Returns : |
void camel_cipher_validity_set_description (CamelCipherValidity *validity,const gchar *description);
|
|
|
void camel_cipher_validity_clear (CamelCipherValidity *validity);
|
CamelCipherValidity * camel_cipher_validity_clone (CamelCipherValidity *vin);
|
|
Returns : |
void camel_cipher_validity_add_certinfo (CamelCipherValidity *vin,camel_cipher_validity_mode_t mode,const gchar *name,const gchar *email);
Add a cert info to the signer or encrypter info.
void camel_cipher_validity_add_certinfo_ex (CamelCipherValidity *vin,camel_cipher_validity_mode_t mode,const gchar *name,const gchar *email,gpointer cert_data,void (cert_data_freegpointer cert_data) (),gpointer (cert_data_clonegpointer cert_data) ());
Add a cert info to the signer or encrypter info, with extended data set.
|
|
|
|
|
|
|
|
|
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
gpointer cert_data:
|
Since 2.30
void camel_cipher_validity_envelope (CamelCipherValidity *parent,CamelCipherValidity *valid);
Calculate a conglomerate validity based on wrapping one secure part inside another one.
void camel_cipher_validity_free (CamelCipherValidity *validity);
|
gint camel_cipher_canonical_to_stream (CamelMimePart *part,guint32 flags,CamelStream *ostream,GError **error);
Writes a part to a stream in a canonicalised format, suitable for signing/encrypting.
The transfer encoding paramaters for the part may be changed by this function.