|  |  |  | GMime 2.6 Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
gboolean (*GMimePasswordRequestFunc) (GMimeCryptoContext *ctx,const char *user_id,const char *prompt_ctx,gboolean reprompt,GMimeStream *response,GError **err); enum GMimeCryptoHash; GMimeCryptoContext; void g_mime_crypto_context_set_request_password (GMimeCryptoContext *ctx,GMimePasswordRequestFunc request_passwd); const char * g_mime_crypto_context_get_signature_protocol (GMimeCryptoContext *ctx); const char * g_mime_crypto_context_get_encryption_protocol (GMimeCryptoContext *ctx); const char * g_mime_crypto_context_get_key_exchange_protocol (GMimeCryptoContext *ctx); GMimeCryptoHash g_mime_crypto_context_hash_id (GMimeCryptoContext *ctx,const char *hash); const char * g_mime_crypto_context_hash_name (GMimeCryptoContext *ctx,GMimeCryptoHash hash); int g_mime_crypto_context_sign (GMimeCryptoContext *ctx,const char *userid,GMimeCryptoHash hash,GMimeStream *istream,GMimeStream *ostream,GError **err); GMimeSignatureValidity * g_mime_crypto_context_verify (GMimeCryptoContext *ctx,GMimeCryptoHash hash,GMimeStream *istream,GMimeStream *sigstream,GError **err); int g_mime_crypto_context_encrypt (GMimeCryptoContext *ctx,gboolean sign,const char *userid,GMimeCryptoHash hash,GPtrArray *recipients,GMimeStream *istream,GMimeStream *ostream,GError **err); GMimeDecryptionResult * g_mime_crypto_context_decrypt (GMimeCryptoContext *ctx,GMimeStream *istream,GMimeStream *ostream,GError **err); int g_mime_crypto_context_import_keys (GMimeCryptoContext *ctx,GMimeStream *istream,GError **err); int g_mime_crypto_context_export_keys (GMimeCryptoContext *ctx,GPtrArray *keys,GMimeStream *ostream,GError **err); enum GMimeCryptoPubKeyAlgo; enum GMimeSignerStatus; enum GMimeSignerTrust; enum GMimeSignerError; GMimeSigner; GMimeSigner * g_mime_signer_new (GMimeSignerStatus status); void g_mime_signer_free (GMimeSigner *signer); const GMimeSigner * g_mime_signer_next (const GMimeSigner *signer); GMimeSignerStatus g_mime_signer_get_status (const GMimeSigner *signer); void g_mime_signer_set_status (GMimeSigner *signer,GMimeSignerStatus status); GMimeSignerError g_mime_signer_get_errors (const GMimeSigner *signer); void g_mime_signer_set_errors (GMimeSigner *signer,GMimeSignerError error); GMimeSignerTrust g_mime_signer_get_trust (const GMimeSigner *signer); void g_mime_signer_set_trust (GMimeSigner *signer,GMimeSignerTrust trust); GMimeCryptoHash g_mime_signer_get_hash_algo (const GMimeSigner *signer); void g_mime_signer_set_hash_algo (GMimeSigner *signer,GMimeCryptoHash hash); GMimeCryptoPubKeyAlgo g_mime_signer_get_pubkey_algo (const GMimeSigner *signer); void g_mime_signer_set_pubkey_algo (GMimeSigner *signer,GMimeCryptoPubKeyAlgo pubkey_algo); const char * g_mime_signer_get_issuer_serial (const GMimeSigner *signer); void g_mime_signer_set_issuer_serial (GMimeSigner *signer,const char *issuer_serial); const char * g_mime_signer_get_issuer_name (const GMimeSigner *signer); void g_mime_signer_set_issuer_name (GMimeSigner *signer,const char *issuer_name); const char * g_mime_signer_get_fingerprint (const GMimeSigner *signer); void g_mime_signer_set_fingerprint (GMimeSigner *signer,const char *fingerprint); int g_mime_signer_get_sig_class (const GMimeSigner *signer); void g_mime_signer_set_sig_class (GMimeSigner *signer,int sig_class); int g_mime_signer_get_sig_version (const GMimeSigner *signer); void g_mime_signer_set_sig_version (GMimeSigner *signer,int version); time_t g_mime_signer_get_sig_created (const GMimeSigner *signer); void g_mime_signer_set_sig_created (GMimeSigner *signer,time_t created); time_t g_mime_signer_get_sig_expires (const GMimeSigner *signer); void g_mime_signer_set_sig_expires (GMimeSigner *signer,time_t expires); time_t g_mime_signer_get_key_created (const GMimeSigner *signer); void g_mime_signer_set_key_created (GMimeSigner *signer,time_t created); time_t g_mime_signer_get_key_expires (const GMimeSigner *signer); void g_mime_signer_set_key_expires (GMimeSigner *signer,time_t expires); const char * g_mime_signer_get_key_id (const GMimeSigner *signer); void g_mime_signer_set_key_id (GMimeSigner *signer,const char *key_id); const char * g_mime_signer_get_email (const GMimeSigner *signer); void g_mime_signer_set_email (GMimeSigner *signer,const char *email); const char * g_mime_signer_get_name (const GMimeSigner *signer); void g_mime_signer_set_name (GMimeSigner *signer,const char *name); GMimeSignatureValidity; GMimeSignatureValidity * g_mime_signature_validity_new (void); void g_mime_signature_validity_free (GMimeSignatureValidity *validity); void g_mime_signature_validity_set_details (GMimeSignatureValidity *validity,const char *details); const char * g_mime_signature_validity_get_details (const GMimeSignatureValidity *validity); void g_mime_signature_validity_add_signer (GMimeSignatureValidity *validity,GMimeSigner *signer); const GMimeSigner * g_mime_signature_validity_get_signers (const GMimeSignatureValidity *validity); GMimeCryptoRecipient; GMimeCryptoRecipient * g_mime_crypto_recipient_new (void); void g_mime_crypto_recipient_free (GMimeCryptoRecipient *recipient); const GMimeCryptoRecipient * g_mime_crypto_recipient_next (const GMimeCryptoRecipient *recipient); void g_mime_crypto_recipient_set_key_id (GMimeCryptoRecipient *recipient,const char *key_id); const char * g_mime_crypto_recipient_get_key_id (const GMimeCryptoRecipient *recipient); void g_mime_crypto_recipient_set_pubkey_algo (GMimeCryptoRecipient *recipient,GMimeCryptoPubKeyAlgo pubkey_algo); GMimeCryptoPubKeyAlgo g_mime_crypto_recipient_get_pubkey_algo (const GMimeCryptoRecipient *recipient); enum GMimeCryptoCipherAlgo; GMimeDecryptionResult; GMimeDecryptionResult * g_mime_decryption_result_new (void); void g_mime_decryption_result_free (GMimeDecryptionResult *result); void g_mime_decryption_result_set_validity (GMimeDecryptionResult *result,GMimeSignatureValidity *validity); const GMimeSignatureValidity * g_mime_decryption_result_get_validity (const GMimeDecryptionResult *result); void g_mime_decryption_result_add_recipient (GMimeDecryptionResult *result,GMimeCryptoRecipient *recipient); const GMimeCryptoRecipient * g_mime_decryption_result_get_recipients (const GMimeDecryptionResult *result); void g_mime_decryption_result_set_cipher (GMimeDecryptionResult *result,GMimeCryptoCipherAlgo cipher); GMimeCryptoCipherAlgo g_mime_decryption_result_get_cipher (const GMimeDecryptionResult *result); void g_mime_decryption_result_set_mdc (GMimeDecryptionResult *result,GMimeCryptoHash mdc); GMimeCryptoHash g_mime_decryption_result_get_mdc (const GMimeDecryptionResult *result);
A GMimeCryptoContext is used for encrypting, decrypting, signing and verifying cryptographic signatures.
gboolean (*GMimePasswordRequestFunc) (GMimeCryptoContext *ctx,const char *user_id,const char *prompt_ctx,gboolean reprompt,GMimeStream *response,GError **err);
A password request callback allowing a GMimeCryptoContext to prompt the user for a password for a given key.
| 
 | the GMimeCryptoContext making the request | 
| 
 | the user_id of the password being requested | 
| 
 | a string containing some helpful context for the prompt | 
| 
 | TRUEif this password request is a reprompt due to a previously bad password response | 
| 
 | a stream for the application to write the password to (followed by a newline '\n' character) | 
| 
 | a GError for the callback to set if an error occurs | 
| Returns : | TRUEon success orFALSEon error. | 
typedef enum {
	GMIME_CRYPTO_HASH_DEFAULT     = 0,
	GMIME_CRYPTO_HASH_MD5         = 1,
	GMIME_CRYPTO_HASH_SHA1        = 2,
	GMIME_CRYPTO_HASH_RIPEMD160   = 3,
	GMIME_CRYPTO_HASH_MD2         = 5,
	GMIME_CRYPTO_HASH_TIGER192    = 6,
	GMIME_CRYPTO_HASH_HAVAL5160   = 7,
	GMIME_CRYPTO_HASH_SHA256      = 8,
	GMIME_CRYPTO_HASH_SHA384      = 9,
	GMIME_CRYPTO_HASH_SHA512      = 10,
	GMIME_CRYPTO_HASH_SHA224      = 11,
	GMIME_CRYPTO_HASH_MD4         = 301,
} GMimeCryptoHash;
A hash algorithm.
| The default hash algorithm. | |
| The MD5 hash algorithm. | |
| The SHA-1 hash algorithm. | |
| The RIPEMD-160 hash algorithm. | |
| The MD2 hash algorithm. | |
| The TIGER-192 hash algorithm. | |
| The HAVAL-5-160 hash algorithm. | |
| The SHA-256 hash algorithm. | |
| The SHA-384 hash algorithm. | |
| The SHA-512 hash algorithm. | |
| The SHA-224 hash algorithm. | |
| The MD4 hash algorithm. | 
typedef struct {
	GObject parent_object;
	
	GMimePasswordRequestFunc request_passwd;
} GMimeCryptoContext;
A crypto context for use with MIME.
| GObject  | parent GObject | 
| GMimePasswordRequestFunc  | a callback for requesting a password | 
void g_mime_crypto_context_set_request_password (GMimeCryptoContext *ctx,GMimePasswordRequestFunc request_passwd);
Sets the function used by the ctx for requesting a password from
the user.
| 
 | a GMimeCryptoContext | 
| 
 | a callback function for requesting a password | 
const char *        g_mime_crypto_context_get_signature_protocol
                                                        (GMimeCryptoContext *ctx);
Gets the signature protocol for the crypto context.
| 
 | a GMimeCryptoContext | 
| Returns : | the signature protocol or NULLif not supported. | 
const char *        g_mime_crypto_context_get_encryption_protocol
                                                        (GMimeCryptoContext *ctx);
Gets the encryption protocol for the crypto context.
| 
 | a GMimeCryptoContext | 
| Returns : | the encryption protocol or NULLif not supported. | 
const char *        g_mime_crypto_context_get_key_exchange_protocol
                                                        (GMimeCryptoContext *ctx);
Gets the key exchange protocol for the crypto context.
| 
 | a GMimeCryptoContext | 
| Returns : | the key exchange protocol or NULLif not supported. | 
GMimeCryptoHash g_mime_crypto_context_hash_id (GMimeCryptoContext *ctx,const char *hash);
Gets the hash id based on the hash name hash.
| 
 | a GMimeCryptoContext | 
| 
 | hash name | 
| Returns : | the equivalent hash id or GMIME_CRYPTO_HASH_DEFAULT on fail. | 
const char * g_mime_crypto_context_hash_name (GMimeCryptoContext *ctx,GMimeCryptoHash hash);
Gets the hash name based on the hash id hash.
| 
 | a GMimeCryptoContext | 
| 
 | hash id | 
| Returns : | the equivalent hash name or NULLon fail. | 
int g_mime_crypto_context_sign (GMimeCryptoContext *ctx,const char *userid,GMimeCryptoHash hash,GMimeStream *istream,GMimeStream *ostream,GError **err);
Signs the input stream and writes the resulting signature to the output stream.
| 
 | a GMimeCryptoContext | 
| 
 | private key to use to sign the stream | 
| 
 | digest algorithm to use | 
| 
 | input stream | 
| 
 | output stream | 
| 
 | a GError | 
| Returns : | the GMimeCryptoHash used on success (useful if hashis
specified as GMIME_CRYPTO_HASH_DEFAULT) or-1on fail. | 
GMimeSignatureValidity * g_mime_crypto_context_verify (GMimeCryptoContext *ctx,GMimeCryptoHash hash,GMimeStream *istream,GMimeStream *sigstream,GError **err);
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.
| 
 | a GMimeCryptoContext | 
| 
 | digest algorithm used, if known | 
| 
 | input stream | 
| 
 | optional detached-signature stream | 
| 
 | a GError | 
| Returns : | a GMimeSignatureValidity structure containing information
about the integrity of the input stream or NULLon failure to
execute at all. | 
int g_mime_crypto_context_encrypt (GMimeCryptoContext *ctx,gboolean sign,const char *userid,GMimeCryptoHash hash,GPtrArray *recipients,GMimeStream *istream,GMimeStream *ostream,GError **err);
Encrypts (and optionally signs) the cleartext input stream and writes the resulting ciphertext to the output stream.
| 
 | a GMimeCryptoContext | 
| 
 | sign as well as encrypt | 
| 
 | key id (or email address) to use when signing (assuming signisTRUE) | 
| 
 | digest algorithm to use when signing | 
| 
 | an array of recipient key ids and/or email addresses | 
| 
 | cleartext input stream | 
| 
 | ciphertext output stream | 
| 
 | a GError | 
| Returns : | 0on success or-1on fail. | 
GMimeDecryptionResult * g_mime_crypto_context_decrypt (GMimeCryptoContext *ctx,GMimeStream *istream,GMimeStream *ostream,GError **err);
Decrypts the ciphertext input stream and writes the resulting cleartext to the output stream.
If the encrypted input stream was also signed, the returned
GMimeDecryptionResult will have a non-NULL GMimeSignatureValidity which
will contain a list of signers, each with a GMimeSignerStatus (among other
details about each signer).
On success, the returned GMimeDecryptionResult will contain a list of recipient keys that the original encrypted stream was encrypted to.
| 
 | a GMimeCryptoContext | 
| 
 | input/ciphertext stream | 
| 
 | output/cleartext stream | 
| 
 | a GError | 
| Returns : | a GMimeDecryptionResult on success or NULLon error. | 
int g_mime_crypto_context_import_keys (GMimeCryptoContext *ctx,GMimeStream *istream,GError **err);
Imports a stream of keys/certificates contained within istream
into the key/certificate database controlled by ctx.
| 
 | a GMimeCryptoContext | 
| 
 | input stream (containing keys) | 
| 
 | a GError | 
| Returns : | 0on success or-1on fail. | 
int g_mime_crypto_context_export_keys (GMimeCryptoContext *ctx,GPtrArray *keys,GMimeStream *ostream,GError **err);
Exports the keys/certificates in keys to the stream ostream from
the key/certificate database controlled by ctx.
| 
 | a GMimeCryptoContext | 
| 
 | an array of key ids | 
| 
 | output stream | 
| 
 | a GError | 
| Returns : | 0on success or-1on fail. | 
typedef enum {
	GMIME_CRYPTO_PUBKEY_ALGO_DEFAULT  = 0,
	GMIME_CRYPTO_PUBKEY_ALGO_RSA      = 1,
	GMIME_CRYPTO_PUBKEY_ALGO_RSA_E    = 2,
	GMIME_CRYPTO_PUBKEY_ALGO_RSA_S    = 3,
	GMIME_CRYPTO_PUBKEY_ALGO_ELG_E    = 16,
	GMIME_CRYPTO_PUBKEY_ALGO_DSA      = 17,
	GMIME_CRYPTO_PUBKEY_ALGO_ELG      = 20
} GMimeCryptoPubKeyAlgo;
A public-key algorithm.
| The default public-key algorithm. | |
| The RSA algorithm. | |
| An encryption-only RSA algorithm. | |
| A signature-only RSA algorithm. | |
| An encryption-only ElGamal algorithm. | |
| The DSA algorithm. | |
| The ElGamal algorithm. | 
typedef enum {
	GMIME_SIGNER_STATUS_GOOD,
	GMIME_SIGNER_STATUS_ERROR,
	GMIME_SIGNER_STATUS_BAD
} GMimeSignerStatus;
A value representing the signature status for a particular GMimeSigner.
typedef enum {
	GMIME_SIGNER_TRUST_NONE,
	GMIME_SIGNER_TRUST_NEVER,
	GMIME_SIGNER_TRUST_UNDEFINED,
	GMIME_SIGNER_TRUST_MARGINAL,
	GMIME_SIGNER_TRUST_FULLY,
	GMIME_SIGNER_TRUST_ULTIMATE
} GMimeSignerTrust;
The trust value of a signer.
| No trust assigned. | |
| Never trust this signer. | |
| Undefined trust for this signer. | |
| Trust this signer maginally. | |
| Trust this signer fully. | |
| Trust this signer ultimately. | 
typedef enum {
	GMIME_SIGNER_ERROR_NONE        = 0,
	GMIME_SIGNER_ERROR_EXPSIG      = (1 << 0),  /* expired signature */
	GMIME_SIGNER_ERROR_NO_PUBKEY   = (1 << 1),  /* no public key */
	GMIME_SIGNER_ERROR_EXPKEYSIG   = (1 << 2),  /* expired key */
	GMIME_SIGNER_ERROR_REVKEYSIG   = (1 << 3),  /* revoked key */
	GMIME_SIGNER_ERROR_UNSUPP_ALGO = (1 << 4)   /* unsupported algorithm */
} GMimeSignerError;
Possible errors that a GMimeSigner could have.
typedef struct {
	GMimeSigner *next;
	unsigned int status:2;    /* GMimeSignerStatus */
	unsigned int errors:6;    /* bitfield of GMimeSignerError's */
	unsigned int trust:3;     /* GMimeSignerTrust */
	unsigned int unused:5;    /* unused expansion bits */
	unsigned int sig_class:8; /* crypto-specific signature class */
	unsigned int sig_ver:8;   /* crypto-specific signature version */
	GMimeCryptoPubKeyAlgo pubkey_algo;
	GMimeCryptoHash hash_algo;
	char *issuer_serial;
	char *issuer_name;
	char *fingerprint;
	time_t sig_created;
	time_t sig_expires;
	time_t key_created;
	time_t key_expires;
	char *keyid;
	char *email;
	char *name;
} GMimeSigner;
A structure containing useful information about a signer.
| GMimeSigner * | Pointer to the next GMimeSigner. | 
| A GMimeSignerStatus. | |
| A bitfield of GMimeSignerError values. | |
| A GMimeSignerTrust. | |
| Unused expansion bits for future use; ignore this. | |
| Crypto-specific signature class. | |
| Crypto-specific signature version. | |
| GMimeCryptoPubKeyAlgo  | The public-key algorithm used by the signer, if known. | 
| GMimeCryptoHash  | The hash algorithm used by the signer, if known. | 
| The issuer of the certificate, if known. | |
| The issuer of the certificate, if known. | |
| A hex string representing the signer's fingerprint. | |
| The creation date of the signature. | |
| The expiration date of the signature. | |
| The creation date of the signature key. | |
| The expiration date of the signature key. | |
| The signer's key id. | |
| The email address of the person or entity. | |
| The name of the person or entity. | 
GMimeSigner *       g_mime_signer_new                   (GMimeSignerStatus status);
Allocates an new GMimeSigner with the designated status. This
function is meant to be used in GMimeCryptoContext subclasses when
allocating signers to add to a GMimeSignatureValidity.
| 
 | A GMimeSignerStatus | 
| Returns : | a new GMimeSigner with the designated status. | 
void                g_mime_signer_free                  (GMimeSigner *signer);
Frees the singleton signer. Should NOT be used to free signers
returned from g_mime_signature_validity_get_signers().
| 
 | a GMimeSigner | 
const GMimeSigner * g_mime_signer_next                  (const GMimeSigner *signer);
Advance to the next signer.
| 
 | a GMimeSigner | 
| Returns : | the next GMimeSigner or NULLwhen complete. | 
GMimeSignerStatus   g_mime_signer_get_status            (const GMimeSigner *signer);
Get the signer status.
| 
 | a GMimeSigner | 
| Returns : | the signer status. | 
void g_mime_signer_set_status (GMimeSigner *signer,GMimeSignerStatus status);
Set the status on the signer.
| 
 | a GMimeSigner | 
| 
 | a GMimeSignerStatus | 
GMimeSignerError    g_mime_signer_get_errors            (const GMimeSigner *signer);
Get the signer errors. If the GMimeSignerStatus returned from
g_mime_signer_get_status() is not GMIME_SIGNER_STATUS_GOOD, then
the errors may provide a clue as to why.
| 
 | a GMimeSigner | 
| Returns : | the signer errors. | 
void g_mime_signer_set_errors (GMimeSigner *signer,GMimeSignerError error);
Set the errors on the signer.
| 
 | a GMimeSigner | 
| 
 | a GMimeSignerError | 
GMimeSignerTrust    g_mime_signer_get_trust             (const GMimeSigner *signer);
Get the signer trust.
| 
 | a GMimeSigner | 
| Returns : | the signer trust. | 
void g_mime_signer_set_trust (GMimeSigner *signer,GMimeSignerTrust trust);
Set the signer trust.
| 
 | a GMimeSigner | 
| 
 | a GMimeSignerTrust | 
GMimeCryptoHash     g_mime_signer_get_hash_algo         (const GMimeSigner *signer);
Get the hash algorithm used by the signer.
| 
 | a GMimeSigner | 
| Returns : | the hash algorithm used by the signer. | 
void g_mime_signer_set_hash_algo (GMimeSigner *signer,GMimeCryptoHash hash);
Set the hash algorithm used by the signer.
| 
 | a GMimeSigner | 
| 
 | a GMimeCryptoHash | 
GMimeCryptoPubKeyAlgo  g_mime_signer_get_pubkey_algo    (const GMimeSigner *signer);
Get the public-key algorithm used by the signer.
| 
 | a GMimeSigner | 
| Returns : | the public-key algorithm used by the signer. | 
void g_mime_signer_set_pubkey_algo (GMimeSigner *signer,GMimeCryptoPubKeyAlgo pubkey_algo);
Set the public-key algorithm used by the signer.
| 
 | a GMimeSigner | 
| 
 | a GMimeCryptoPubKeyAlgo | 
const char *        g_mime_signer_get_issuer_serial     (const GMimeSigner *signer);
Get the signer's issuer serial.
| 
 | a GMimeSigner | 
| Returns : | the signer's issuer serial. | 
void g_mime_signer_set_issuer_serial (GMimeSigner *signer,const char *issuer_serial);
Set the signer's issuer serial.
| 
 | a GMimeSigner | 
| 
 | signer's issuer serial | 
const char *        g_mime_signer_get_issuer_name       (const GMimeSigner *signer);
Get the signer's issuer name.
| 
 | a GMimeSigner | 
| Returns : | the signer's issuer name. | 
void g_mime_signer_set_issuer_name (GMimeSigner *signer,const char *issuer_name);
Set the signer's issuer name.
| 
 | a GMimeSigner | 
| 
 | signer's issuer name | 
const char *        g_mime_signer_get_fingerprint       (const GMimeSigner *signer);
Get the signer's key fingerprint.
| 
 | a GMimeSigner | 
| Returns : | the signer's key fingerprint. | 
void g_mime_signer_set_fingerprint (GMimeSigner *signer,const char *fingerprint);
Set the signer's key fingerprint.
| 
 | a GMimeSigner | 
| 
 | fingerprint string | 
int                 g_mime_signer_get_sig_class         (const GMimeSigner *signer);
Get the signer's signature class.
| 
 | a GMimeSigner | 
| Returns : | the signer's signature class. | 
void g_mime_signer_set_sig_class (GMimeSigner *signer,int sig_class);
Set the signer's signature class.
| 
 | a GMimeSigner | 
| 
 | signature class | 
int                 g_mime_signer_get_sig_version       (const GMimeSigner *signer);
Get the signer's signature version.
| 
 | a GMimeSigner | 
| Returns : | the signer's signature version. | 
void g_mime_signer_set_sig_version (GMimeSigner *signer,int version);
Set the signer's signature version.
| 
 | a GMimeSigner | 
| 
 | signature version | 
time_t              g_mime_signer_get_sig_created       (const GMimeSigner *signer);
Get the creation date of the signer's signature.
| 
 | a GMimeSigner | 
| Returns : | the creation date of the signer's signature or -1if
unknown. | 
void g_mime_signer_set_sig_created (GMimeSigner *signer,time_t created);
Set the creation date of the signer's signature.
| 
 | a GMimeSigner | 
| 
 | creation date | 
time_t              g_mime_signer_get_sig_expires       (const GMimeSigner *signer);
Get the expiration date of the signer's signature.
| 
 | a GMimeSigner | 
| Returns : | the expiration date of the signer's signature or -1if
unknown. | 
void g_mime_signer_set_sig_expires (GMimeSigner *signer,time_t expires);
Set the expiration date of the signer's signature.
| 
 | a GMimeSigner | 
| 
 | expiration date | 
time_t              g_mime_signer_get_key_created       (const GMimeSigner *signer);
Get the creation date of the signer's key.
| 
 | a GMimeSigner | 
| Returns : | the creation date of the signer's key or -1if unknown. | 
void g_mime_signer_set_key_created (GMimeSigner *signer,time_t created);
Set the creation date of the signer's key.
| 
 | a GMimeSigner | 
| 
 | creation date | 
time_t              g_mime_signer_get_key_expires       (const GMimeSigner *signer);
Get the expiration date of the signer's key.
| 
 | a GMimeSigner | 
| Returns : | the expiration date of the signer's key or -1if unknown. | 
void g_mime_signer_set_key_expires (GMimeSigner *signer,time_t expires);
Set the expiration date of the signer's key.
| 
 | a GMimeSigner | 
| 
 | expiration date | 
const char *        g_mime_signer_get_key_id            (const GMimeSigner *signer);
Get the signer's key id.
| 
 | a GMimeSigner | 
| Returns : | the signer's key id. | 
void g_mime_signer_set_key_id (GMimeSigner *signer,const char *key_id);
Set the signer's key id.
| 
 | a GMimeSigner | 
| 
 | key id | 
const char *        g_mime_signer_get_email             (const GMimeSigner *signer);
Get the signer's email.
| 
 | a GMimeSigner | 
| Returns : | the signer's email. | 
void g_mime_signer_set_email (GMimeSigner *signer,const char *email);
Set the signer's email.
| 
 | a GMimeSigner | 
| 
 | signer's email | 
const char *        g_mime_signer_get_name              (const GMimeSigner *signer);
Get the signer's name.
| 
 | a GMimeSigner | 
| Returns : | the signer's name. | 
void g_mime_signer_set_name (GMimeSigner *signer,const char *name);
Set the signer's name.
| 
 | a GMimeSigner | 
| 
 | signer's name | 
typedef struct {
	GMimeSigner *signers;
	char *details;
} GMimeSignatureValidity;
A structure containing information about the signature validity of a signed stream.
| GMimeSigner * | A list of GMimeSigner structures. | 
| A string containing more user-readable details. | 
GMimeSignatureValidity * g_mime_signature_validity_new  (void);
Creates a new GMimeSignatureValidity.
| Returns : | a new GMimeSignatureValidity. | 
void                g_mime_signature_validity_free      (GMimeSignatureValidity *validity);
Frees the memory used by validity back to the system.
| 
 | a GMimeSignatureValidity | 
void g_mime_signature_validity_set_details (GMimeSignatureValidity *validity,const char *details);
Sets details as the status details string on validity.
| 
 | a GMimeSignatureValidity | 
| 
 | details string | 
const char *        g_mime_signature_validity_get_details
                                                        (const GMimeSignatureValidity *validity);
Gets any user-readable status details.
| 
 | a GMimeSignatureValidity | 
| Returns : | a user-readable string containing any status information. | 
void g_mime_signature_validity_add_signer (GMimeSignatureValidity *validity,GMimeSigner *signer);
Adds signer to the list of signers on validity. Once the signer
is added, it must NOT be freed.
| 
 | a GMimeSignatureValidity | 
| 
 | a GMimeSigner | 
const GMimeSigner * g_mime_signature_validity_get_signers
                                                        (const GMimeSignatureValidity *validity);
Gets the list of signers.
| 
 | a GMimeSignatureValidity | 
| Returns : | a GMimeSigner list which contain further information such as trust and crypto keys. These signers are part of the GMimeSignatureValidity and should NOT be freed individually. | 
typedef struct {
	GMimeCryptoRecipient *next;
	GMimeCryptoPubKeyAlgo pubkey_algo;
	char *keyid;
} GMimeCryptoRecipient;
A structure containing useful information about a recipient.
| GMimeCryptoRecipient * | Pointer to the next GMimeCryptoRecipient. | 
| GMimeCryptoPubKeyAlgo  | The public-key algorithm used by the recipient, if known. | 
| The recipient's key id. | 
GMimeCryptoRecipient * g_mime_crypto_recipient_new      (void);
Allocates an new GMimeCryptoRecipient. This function is meant to be used in GMimeCryptoContext subclasses when allocating recipients to add to a GMimeDecryptionResult.
| Returns : | a new GMimeCryptoRecipient. | 
void                g_mime_crypto_recipient_free        (GMimeCryptoRecipient *recipient);
Frees the singleton recipient. Should NOT be used to free recipients
returned from g_mime_signature_validity_get_recipients().
| 
 | a GMimeCryptoRecipient | 
const GMimeCryptoRecipient * g_mime_crypto_recipient_next
                                                        (const GMimeCryptoRecipient *recipient);
Advance to the next recipient.
| 
 | a GMimeCryptoRecipient | 
| Returns : | the next GMimeCryptoRecipient or NULLwhen complete. | 
void g_mime_crypto_recipient_set_key_id (GMimeCryptoRecipient *recipient,const char *key_id);
Set the recipient's key id.
| 
 | a GMimeCryptoRecipient | 
| 
 | key id | 
const char *        g_mime_crypto_recipient_get_key_id  (const GMimeCryptoRecipient *recipient);
Get the recipient's key id.
| 
 | a GMimeCryptoRecipient | 
| Returns : | the recipient's key id. | 
void g_mime_crypto_recipient_set_pubkey_algo (GMimeCryptoRecipient *recipient,GMimeCryptoPubKeyAlgo pubkey_algo);
Set the public-key algorithm used by the recipient.
| 
 | a GMimeCryptoRecipient | 
| 
 | a GMimeCryptoPubKeyAlgo | 
GMimeCryptoPubKeyAlgo  g_mime_crypto_recipient_get_pubkey_algo
                                                        (const GMimeCryptoRecipient *recipient);
Get the public-key algorithm used by the recipient.
| 
 | a GMimeCryptoRecipient | 
| Returns : | the public-key algorithm used by the recipient. | 
typedef enum {
	GMIME_CRYPTO_CIPHER_ALGO_DEFAULT     = 0,
	GMIME_CRYPTO_CIPHER_ALGO_IDEA        = 1,
	GMIME_CRYPTO_CIPHER_ALGO_3DES        = 2,
	GMIME_CRYPTO_CIPHER_ALGO_CAST5       = 3,
	GMIME_CRYPTO_CIPHER_ALGO_BLOWFISH    = 4,
	GMIME_CRYPTO_CIPHER_ALGO_AES         = 7,
	GMIME_CRYPTO_CIPHER_ALGO_AES192      = 8,
	GMIME_CRYPTO_CIPHER_ALGO_AES256      = 9,
	GMIME_CRYPTO_CIPHER_ALGO_TWOFISH     = 10,
	GMIME_CRYPTO_CIPHER_ALGO_CAMELLIA128 = 11,
	GMIME_CRYPTO_CIPHER_ALGO_CAMELLIA196 = 12,
	GMIME_CRYPTO_CIPHER_ALGO_CAMELLIA256 = 13
} GMimeCryptoCipherAlgo;
A cipher algorithm.
| The default (or unknown) cipher. | |
| The IDEA cipher. | |
| The 3DES cipher. | |
| The CAST5 cipher. | |
| The Blowfish cipher. | |
| The AES (aka RIJANDALE) cipher. | |
| The AES-192 cipher. | |
| The AES-256 cipher. | |
| The Twofish cipher. | |
| The Camellia-128 cipher. | |
| The Camellia-196 cipher. | |
| The Camellia-256 cipher. | 
typedef struct {
	GMimeSignatureValidity *validity;
	GMimeCryptoRecipient *recipients;
	GMimeCryptoCipherAlgo cipher;
	GMimeCryptoHash mdc;
} GMimeDecryptionResult;
A structure containing the results from decrypting an encrypted stream.
| GMimeSignatureValidity * | A GMimeSignatureValidity if signed or NULLotherwise. | 
| GMimeCryptoRecipient * | A list of GMimeCryptoRecipient structures. | 
| GMimeCryptoCipherAlgo  | The cipher algorithm used to encrypt the stream. | 
| GMimeCryptoHash  | The MDC digest algorithm used, if any. | 
GMimeDecryptionResult * g_mime_decryption_result_new    (void);
Creates a new GMimeDecryptionResult.
| Returns : | a new GMimeDecryptionResult. | 
void                g_mime_decryption_result_free       (GMimeDecryptionResult *result);
Frees the memory used by result back to the system.
| 
 | a GMimeDecryptionResult | 
void g_mime_decryption_result_set_validity (GMimeDecryptionResult *result,GMimeSignatureValidity *validity);
Sets validity as the GMimeDecryptionResult.
| 
 | a GMimeDecryptionResult | 
| 
 | a GMimeSignatureValidity | 
const GMimeSignatureValidity * g_mime_decryption_result_get_validity
                                                        (const GMimeDecryptionResult *result);
Gets the signature validity if the decrypted stream was also signed.
| 
 | a GMimeDecryptionResult | 
| Returns : | a GMimeSignatureValidity or NULLif the stream was not signed. | 
void g_mime_decryption_result_add_recipient (GMimeDecryptionResult *result,GMimeCryptoRecipient *recipient);
Adds recipient to the list of recipients on result. Once the recipient
is added, it must NOT be freed.
| 
 | a GMimeDecryptionResult | 
| 
 | a GMimeCryptoRecipient | 
const GMimeCryptoRecipient * g_mime_decryption_result_get_recipients
                                                        (const GMimeDecryptionResult *result);
Gets the list of recipients.
| 
 | signature result | 
| Returns : | a GMimeCryptoRecipient list which contain further information such as trust and crypto keys. These recipients are part of the GMimeDecryptionResult and should NOT be freed individually. | 
void g_mime_decryption_result_set_cipher (GMimeDecryptionResult *result,GMimeCryptoCipherAlgo cipher);
Set the cipher algorithm used.
| 
 | a GMimeDecryptionResult | 
| 
 | a GMimeCryptoCipherAlgo | 
GMimeCryptoCipherAlgo  g_mime_decryption_result_get_cipher
                                                        (const GMimeDecryptionResult *result);
Get the cipher algorithm used.
| 
 | a GMimeDecryptionResult | 
| Returns : | the cipher algorithm used. | 
void g_mime_decryption_result_set_mdc (GMimeDecryptionResult *result,GMimeCryptoHash mdc);
Set the mdc digest algorithm used.
| 
 | a GMimeDecryptionResult | 
| 
 | a GMimeCryptoHash | 
GMimeCryptoHash     g_mime_decryption_result_get_mdc    (const GMimeDecryptionResult *result);
Get the mdc digest algorithm used.
| 
 | a GMimeDecryptionResult | 
| Returns : | the mdc digest algorithm used. |