![]() |
![]() |
![]() |
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.
|
Cipher Context |
|
private key to use to sign the stream |
|
preferred Message-Integrity-Check hash algorithm |
|
Input part. |
|
output part. |
|
return location for a GError, or NULL
|
Returns : |
0 for success or -1 for failure. |
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
.
|
Cipher Context |
|
part to verify |
|
return location for a GError, or NULL
|
Returns : |
a CamelCipherValidity structure containing information
about the integrity of the input stream or NULL on failure to
execute at all.
|
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
.
|
|
|
|
|
|
|
return location for a GError, or NULL
|
Returns : |
A validity/encryption status. |
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
.
|
Cipher Context |
|
input stream (containing keys) |
|
return location for a GError, or NULL
|
Returns : |
0 on success or -1 on fail. |
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
.
|
Cipher Context |
|
an array of key ids |
|
output stream |
|
return location for a GError, or NULL
|
Returns : |
0 on success or -1 on fail. |
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:
|
|
|
|
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.
|
Part to write. |
|
flags for the canonicalisation filter (CamelMimeFilterCanon) |
|
stream to write canonicalised output to. |
|
return location for a GError, or NULL
|
Returns : |
-1 on error; |