![]() |
![]() |
![]() |
Camel Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties |
struct CamelCipherContext; struct CamelCipherValidity; struct 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_context_id_to_hash (CamelCipherContext *context
,const
); constgchar *idgchar * camel_cipher_context_hash_to_id (CamelCipherContext *context
,CamelCipherHash hash
);gboolean camel_cipher_context_sign_sync (CamelCipherContext *context
,const
,gchar *useridCamelCipherHash hash
,CamelMimePart *ipart
,CamelMimePart *opart
,,
GCancellable *cancellable);
GError **errorvoid camel_cipher_context_sign (CamelCipherContext *context
,const
,gchar *useridCamelCipherHash hash
,CamelMimePart *ipart
,CamelMimePart *opart
,,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback);
gpointer user_datagboolean camel_cipher_context_sign_finish (CamelCipherContext *context
,,
GAsyncResult *result); CamelCipherValidity * camel_cipher_context_verify_sync (
GError **errorCamelCipherContext *context
,CamelMimePart *ipart
,,
GCancellable *cancellable);
GError **errorvoid camel_cipher_context_verify (CamelCipherContext *context
,CamelMimePart *ipart
,,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback); CamelCipherValidity * camel_cipher_context_verify_finish (
gpointer user_dataCamelCipherContext *context
,,
GAsyncResult *result);
GError **errorgboolean camel_cipher_context_encrypt_sync (CamelCipherContext *context
,const
,gchar *userid,
GPtrArray *recipientsCamelMimePart *ipart
,CamelMimePart *opart
,,
GCancellable *cancellable);
GError **errorvoid camel_cipher_context_encrypt (CamelCipherContext *context
,const
,gchar *userid,
GPtrArray *recipientsCamelMimePart *ipart
,CamelMimePart *opart
,,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback);
gpointer user_datagboolean camel_cipher_context_encrypt_finish (CamelCipherContext *context
,,
GAsyncResult *result); CamelCipherValidity * camel_cipher_context_decrypt_sync (
GError **errorCamelCipherContext *context
,CamelMimePart *ipart
,CamelMimePart *opart
,,
GCancellable *cancellable);
GError **errorvoid camel_cipher_context_decrypt (CamelCipherContext *context
,CamelMimePart *ipart
,CamelMimePart *opart
,,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback); CamelCipherValidity * camel_cipher_context_decrypt_finish (
gpointer user_dataCamelCipherContext *context
,,
GAsyncResult *result);
GError **errorgboolean camel_cipher_context_import_keys_sync (CamelCipherContext *context
,CamelStream *istream
,,
GCancellable *cancellable);
GError **errorvoid camel_cipher_context_import_keys (CamelCipherContext *context
,CamelStream *istream
,,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback);
gpointer user_datagboolean camel_cipher_context_import_keys_finish (CamelCipherContext *context
,,
GAsyncResult *result);
GError **errorgboolean camel_cipher_context_export_keys_sync (CamelCipherContext *context
,,
GPtrArray *keysCamelStream *ostream
,,
GCancellable *cancellable);
GError **errorvoid camel_cipher_context_export_keys (CamelCipherContext *context
,,
GPtrArray *keysCamelStream *ostream
,,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback);
gpointer user_datagboolean camel_cipher_context_export_keys_finish (CamelCipherContext *context
,,
GAsyncResult *result); CamelCipherValidity * camel_cipher_validity_new (
GError **errorvoid
);void camel_cipher_validity_init (CamelCipherValidity *validity
);gboolean camel_cipher_validity_get_valid (CamelCipherValidity *validity
);void camel_cipher_validity_set_valid (CamelCipherValidity *validity
,);
gboolean validgchar * camel_cipher_validity_get_description (CamelCipherValidity *validity
);void camel_cipher_validity_set_description (CamelCipherValidity *validity
,const
);gchar *descriptionvoid 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 *nameconst
);gchar *emailvoid camel_cipher_validity_add_certinfo_ex (CamelCipherValidity *vin
,camel_cipher_validity_mode_t mode
,const
,gchar *nameconst
,gchar *email,
gpointer cert_data,
void (*cert_data_free) (gpointer cert_data));
gpointer (*cert_data_clone) (gpointer 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 flagsCamelStream *ostream
,,
GCancellable *cancellable);
GError **error
GObject +----CamelObject +----CamelCipherContext +----CamelGpgContext +----CamelSMIMEContext
struct CamelCipherValidity { 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; };
struct CamelCipherCertInfo { 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 */ };
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 |
Since 2.32
CamelCipherHash camel_cipher_context_id_to_hash (CamelCipherContext *context
,const
);gchar *id
constgchar * camel_cipher_context_hash_to_id (CamelCipherContext *context
,CamelCipherHash hash
);
gboolean camel_cipher_context_sign_sync (CamelCipherContext *context
,const
,gchar *useridCamelCipherHash hash
,CamelMimePart *ipart
,CamelMimePart *opart
,,
GCancellable *cancellable);
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.
|
a CamelCipherContext |
|
a private key to use to sign the stream |
|
preferred Message-Integrity-Check hash algorithm |
|
input CamelMimePart |
|
output CamelMimePart |
|
optional NULL |
|
return location for a NULL |
Returns : |
TRUE FALSE |
Since 3.0
void camel_cipher_context_sign (CamelCipherContext *context
,const
,gchar *useridCamelCipherHash hash
,CamelMimePart *ipart
,CamelMimePart *opart
,,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback);
gpointer user_data
Asynchronously 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.
When the operation is finished, callback
will be called. You can then
call camel_cipher_context_sign_finish()
to get the result of the operation.
|
a CamelCipherContext |
|
a private key to use to sign the stream |
|
preferred Message-Integrity-Check hash algorithm |
|
input CamelMimePart |
|
output CamelMimePart |
|
the I/O priority of the request |
|
optional NULL |
|
a |
|
data to pass to the callback function |
Since 3.0
gboolean camel_cipher_context_sign_finish (CamelCipherContext *context
,,
GAsyncResult *result);
GError **error
Finishes the operation started with camel_cipher_context_sign()
.
|
a CamelCipherContext |
|
a |
|
return location for a NULL |
Returns : |
TRUE FALSE |
Since 3.0
CamelCipherValidity * camel_cipher_context_verify_sync (CamelCipherContext *context
,CamelMimePart *ipart
,,
GCancellable *cancellable);
GError **error
Verifies the signature.
|
a CamelCipherContext |
|
the CamelMimePart to verify |
|
optional NULL |
|
return location for a NULL |
Returns : |
a CamelCipherValidity structure containing information
about the integrity of the input stream, or NULL |
void camel_cipher_context_verify (CamelCipherContext *context
,CamelMimePart *ipart
,,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback);
gpointer user_data
Asynchronously verifies the signature.
When the operation is finished, callback
will be called. You can
then call camel_cipher_context_verify_finish()
to get the result of
the operation.
|
a CamelCipherContext |
|
the CamelMimePart to verify |
|
the I/O priority of the request |
|
optional NULL |
|
a |
|
data to pass to the callback function |
Since 3.0
CamelCipherValidity * camel_cipher_context_verify_finish (CamelCipherContext *context
,,
GAsyncResult *result);
GError **error
Finishes the operation started with camel_cipher_context_verify()
.
|
a CamelCipherContext |
|
a |
|
return location for a NULL |
Returns : |
a CamelCipherValidity structure containing information
about the integrity of the input stream, or NULL |
Since 3.0
gboolean camel_cipher_context_encrypt_sync (CamelCipherContext *context
,const
,gchar *userid,
GPtrArray *recipientsCamelMimePart *ipart
,CamelMimePart *opart
,,
GCancellable *cancellable);
GError **error
Encrypts (and optionally signs) the clear-text ipart
and writes the
resulting cipher-text to opart
.
|
a CamelCipherContext |
|
key ID (or email address) to use when signing, or NULL |
|
an array of recipient key IDs and/or email addresses |
|
clear-text CamelMimePart |
|
cipher-text CamelMimePart |
|
optional NULL |
|
return location for a NULL |
Returns : |
TRUE FALSE |
Since 3.0
void camel_cipher_context_encrypt (CamelCipherContext *context
,const
,gchar *userid,
GPtrArray *recipientsCamelMimePart *ipart
,CamelMimePart *opart
,,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback);
gpointer user_data
Asynchronously encrypts (and optionally signs) the clear-text ipart
and
writes the resulting cipher-text to opart
.
When the operation is finished, callback
will be called. You can
then call camel_cipher_context_encrypt_finish()
to get the result of
the operation.
|
a CamelCipherContext |
|
key id (or email address) to use when signing, or NULL |
|
an array of recipient key IDs and/or email addresses |
|
clear-text CamelMimePart |
|
cipher-text CamelMimePart |
|
the I/O priority of the request |
|
optional NULL |
|
a |
|
data to pass to the callback function |
Since 3.0
gboolean camel_cipher_context_encrypt_finish (CamelCipherContext *context
,,
GAsyncResult *result);
GError **error
Finishes the operation started with camel_cipher_context_encrypt()
.
|
a CamelCipherContext |
|
a |
|
return location for a NULL |
Returns : |
TRUE FALSE |
Since 3.0
CamelCipherValidity * camel_cipher_context_decrypt_sync (CamelCipherContext *context
,CamelMimePart *ipart
,CamelMimePart *opart
,,
GCancellable *cancellable);
GError **error
Decrypts ipart
into opart
.
|
a CamelCipherContext |
|
cipher-text CamelMimePart |
|
clear-text CamelMimePart |
|
optional NULL |
|
return location for a NULL |
Returns : |
a validity/encryption status, or NULL |
Since 3.0
void camel_cipher_context_decrypt (CamelCipherContext *context
,CamelMimePart *ipart
,CamelMimePart *opart
,,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback);
gpointer user_data
Asynchronously decrypts ipart
into opart
.
When the operation is finished, callback
will be called. You can
then call camel_cipher_context_decrypt_finish()
to get the result of
the operation.
|
a CamelCipherContext |
|
cipher-text CamelMimePart |
|
clear-text CamelMimePart |
|
the I/O priority of the request |
|
optional NULL |
|
a |
|
data to pass to the callback function |
Since 3.0
CamelCipherValidity * camel_cipher_context_decrypt_finish (CamelCipherContext *context
,,
GAsyncResult *result);
GError **error
Finishes the operation started with camel_cipher_context_decrypt()
.
|
a CamelCipherContext |
|
a |
|
return location for a NULL |
Returns : |
a validity/encryption status, or NULL |
Since 3.0
gboolean camel_cipher_context_import_keys_sync (CamelCipherContext *context
,CamelStream *istream
,,
GCancellable *cancellable);
GError **error
Imports a stream of keys/certificates contained within istream
into the key/certificate database controlled by context
.
|
a CamelCipherContext |
|
an input stream containing keys |
|
optional NULL |
|
return location for a NULL |
Returns : |
TRUE FALSE |
Since 3.0
void camel_cipher_context_import_keys (CamelCipherContext *context
,CamelStream *istream
,,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback);
gpointer user_data
Asynchronously imports a stream of keys/certificates contained within
istream
into the key/certificate database controlled by context
.
When the operation is finished, callback
will be called. You can
then call camel_cipher_context_import_keys_finish()
to get the result
of the operation.
|
a CamelCipherContext |
|
an input stream containing keys |
|
the I/O priority of the request |
|
optional NULL |
|
a |
|
data to pass to the callback function |
Since 3.0
gboolean camel_cipher_context_import_keys_finish (CamelCipherContext *context
,,
GAsyncResult *result);
GError **error
Finishes the operation started with camel_cipher_context_import_keys()
.
|
a CamelCipherContext |
|
a |
|
return location for a NULL |
Returns : |
TRUE FALSE |
Since 3.0
gboolean camel_cipher_context_export_keys_sync (CamelCipherContext *context
,,
GPtrArray *keysCamelStream *ostream
,,
GCancellable *cancellable);
GError **error
Exports the keys/certificates in keys
to the stream ostream
from
the key/certificate database controlled by context
.
|
a CamelCipherContext |
|
an array of key IDs |
|
an output stream |
|
optional NULL |
|
return location for a NULL |
Returns : |
TRUE FALSE |
Since 3.0
void camel_cipher_context_export_keys (CamelCipherContext *context
,,
GPtrArray *keysCamelStream *ostream
,,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback);
gpointer user_data
Asynchronously exports the keys/certificates in keys
to the stream
ostream
from the key/certificate database controlled by context
.
When the operation is finished, callback
will be called. You can then
call camel_cipher_context_export_keys_finish()
to get the result of the
operation.
|
a CamelCipherContext |
|
an array of key IDs |
|
an output stream |
|
the I/O priority of the request |
|
optional NULL |
|
a |
|
data to pass to the callback function |
Since 3.0
gboolean camel_cipher_context_export_keys_finish (CamelCipherContext *context
,,
GAsyncResult *result);
GError **error
Finishes the operation started with camel_cipher_context_export_keys()
.
|
a CamelCipherContext |
|
a |
|
return location for a NULL |
Returns : |
TRUE FALSE |
Since 3.0
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
CamelCipherValidity * camel_cipher_validity_clone (CamelCipherValidity *vin
);
void camel_cipher_validity_add_certinfo (CamelCipherValidity *vin
,camel_cipher_validity_mode_t mode
,const
,gchar *nameconst
);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 *nameconst
,gchar *email,
gpointer cert_data,
void (*cert_data_free) (gpointer cert_data));
gpointer (*cert_data_clone) (gpointer cert_data)
Add a cert info to the signer or encrypter info, with extended data set.
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.
gint camel_cipher_canonical_to_stream (CamelMimePart *part
,,
guint32 flagsCamelStream *ostream
,,
GCancellable *cancellable);
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. |
|
optional NULL |
|
return location for a NULL |
Returns : |
-1 on error; |