## CamelCertDB CamelCertDB |

## Synopsis

    enum                CamelCertDBFlags;
    struct              CamelCertDB;
    enum                CamelCertTrust;
                        CamelCert;
    CamelCertDB *       camel_certdb_new                    (void);
    void                camel_certdb_set_default            (CamelCertDB *certdb);
    CamelCertDB *       camel_certdb_get_default            (void);
    void                camel_certdb_set_filename           (CamelCertDB *certdb,
                                                             const gchar *filename);
    gint                camel_certdb_load                   (CamelCertDB *certdb);
    gint                camel_certdb_save                   (CamelCertDB *certdb);
    void                camel_certdb_touch                  (CamelCertDB *certdb);
    CamelCert *         camel_certdb_get_cert               (CamelCertDB *certdb,
                                                             const gchar *fingerprint);
    void                camel_certdb_add                    (CamelCertDB *certdb,
                                                             CamelCert *cert);
    void                camel_certdb_remove                 (CamelCertDB *certdb,
                                                             CamelCert *cert);
    CamelCert *         camel_certdb_cert_new               (CamelCertDB *certdb);
    void                camel_certdb_cert_ref               (CamelCertDB *certdb,
                                                             CamelCert *cert);
    void                camel_certdb_cert_unref             (CamelCertDB *certdb,
                                                             CamelCert *cert);
    void                camel_certdb_clear                  (CamelCertDB *certdb);
    const gchar *       camel_cert_get_string               (CamelCertDB *certdb,
                                                             CamelCert *cert,
                                                             gint string);
    void                camel_cert_set_string               (CamelCertDB *certdb,
                                                             CamelCert *cert,
                                                             gint string,
                                                             const gchar *value);
    #define             camel_cert_get_issuer               (certdb,
                                                             cert)
    #define             camel_cert_get_subject              (certdb,
                                                             cert)
    #define             camel_cert_get_hostname             (certdb,
                                                             cert)
    #define             camel_cert_get_fingerprint          (certdb,
                                                             cert)
    #define             camel_cert_set_issuer               (certdb,
                                                             cert,
                                                             issuer)
    #define             camel_cert_set_subject              (certdb,
                                                             cert,
                                                             subject)
    #define             camel_cert_set_hostname             (certdb,
                                                             cert,
                                                             hostname)
    #define             camel_cert_set_fingerprint          (certdb,
                                                             cert,
                                                             fingerprint)
    CamelCertTrust      camel_cert_get_trust                (CamelCertDB *certdb,
                                                             CamelCert *cert);
    void                camel_cert_set_trust                (CamelCertDB *certdb,
                                                             CamelCert *cert,
                                                             CamelCertTrust trust);
    enum                CamelCertDBLock;
    void                camel_certdb_lock                   (CamelCertDB *certdb,
                                                             CamelCertDBLock lock);
    void                camel_certdb_unlock                 (CamelCertDB *certdb,
                                                             CamelCertDBLock lock);

## Object Hierarchy

      GObject
       +----CamelObject
             +----CamelCertDB

## Description

## Details

### enum CamelCertDBFlags

    typedef enum {
    	CAMEL_CERTDB_DIRTY = 1 << 0
    } CamelCertDBFlags;

### struct CamelCertDB

    struct CamelCertDB;

### enum CamelCertTrust

    typedef enum {
    	CAMEL_CERT_TRUST_UNKNOWN,
    	CAMEL_CERT_TRUST_NEVER,
    	CAMEL_CERT_TRUST_MARGINAL,
    	CAMEL_CERT_TRUST_FULLY,
    	CAMEL_CERT_TRUST_ULTIMATE
    } CamelCertTrust;

### CamelCert

    typedef struct {
    	guint32 refcount;

    	gchar *issuer;
    	gchar *subject;
    	gchar *hostname;
    	gchar *fingerprint;

    	CamelCertTrust trust;
    	GByteArray *rawcert;
    } CamelCert;

### camel_certdb_new ()

    CamelCertDB *       camel_certdb_new                    (void);

### camel_certdb_set_default ()

    void                camel_certdb_set_default            (CamelCertDB *certdb);

### camel_certdb_get_default ()

    CamelCertDB *       camel_certdb_get_default            (void);

### camel_certdb_set_filename ()

    void                camel_certdb_set_filename           (CamelCertDB *certdb,
                                                             const gchar *filename);

### camel_certdb_load ()

    gint                camel_certdb_load                   (CamelCertDB *certdb);

### camel_certdb_save ()

    gint                camel_certdb_save                   (CamelCertDB *certdb);

### camel_certdb_touch ()

    void                camel_certdb_touch                  (CamelCertDB *certdb);

### camel_certdb_get_cert ()

    CamelCert *         camel_certdb_get_cert               (CamelCertDB *certdb,
                                                             const gchar *fingerprint);

### camel_certdb_add ()

    void                camel_certdb_add                    (CamelCertDB *certdb,
                                                             CamelCert *cert);

### camel_certdb_remove ()

    void                camel_certdb_remove                 (CamelCertDB *certdb,
                                                             CamelCert *cert);

### camel_certdb_cert_new ()

    CamelCert *         camel_certdb_cert_new               (CamelCertDB *certdb);

### camel_certdb_cert_ref ()

    void                camel_certdb_cert_ref               (CamelCertDB *certdb,
                                                             CamelCert *cert);

### camel_certdb_cert_unref ()

    void                camel_certdb_cert_unref             (CamelCertDB *certdb,
                                                             CamelCert *cert);

### camel_certdb_clear ()

    void                camel_certdb_clear                  (CamelCertDB *certdb);

### camel_cert_get_string ()

    const gchar *       camel_cert_get_string               (CamelCertDB *certdb,
                                                             CamelCert *cert,
                                                             gint string);

### camel_cert_set_string ()

    void                camel_cert_set_string               (CamelCertDB *certdb,
                                                             CamelCert *cert,
                                                             gint string,
                                                             const gchar *value);

### camel_cert_get_issuer()

    #define camel_cert_get_issuer(certdb,cert) camel_cert_get_string (certdb, cert, CAMEL_CERT_STRING_ISSUER)

### camel_cert_get_subject()

    #define camel_cert_get_subject(certdb,cert) camel_cert_get_string (certdb, cert, CAMEL_CERT_STRING_SUBJECT)

### camel_cert_get_hostname()

    #define camel_cert_get_hostname(certdb,cert) camel_cert_get_string (certdb, cert, CAMEL_CERT_STRING_HOSTNAME)

### camel_cert_get_fingerprint()

    #define camel_cert_get_fingerprint(certdb,cert) camel_cert_get_string (certdb, cert, CAMEL_CERT_STRING_FINGERPRINT)

### camel_cert_set_issuer()

    #define camel_cert_set_issuer(certdb,cert,issuer) camel_cert_set_string (certdb, cert, CAMEL_CERT_STRING_ISSUER, issuer)

### camel_cert_set_subject()

    #define camel_cert_set_subject(certdb,cert,subject) camel_cert_set_string (certdb, cert, CAMEL_CERT_STRING_SUBJECT, subject)

### camel_cert_set_hostname()

    #define camel_cert_set_hostname(certdb,cert,hostname) camel_cert_set_string (certdb, cert, CAMEL_CERT_STRING_HOSTNAME, hostname)

### camel_cert_set_fingerprint()

    #define camel_cert_set_fingerprint(certdb,cert,fingerprint) camel_cert_set_string (certdb, cert, CAMEL_CERT_STRING_FINGERPRINT, fingerprint)

### camel_cert_get_trust ()

    CamelCertTrust      camel_cert_get_trust                (CamelCertDB *certdb,
                                                             CamelCert *cert);

### camel_cert_set_trust ()

    void                camel_cert_set_trust                (CamelCertDB *certdb,
                                                             CamelCert *cert,
                                                             CamelCertTrust trust);

### enum CamelCertDBLock

    typedef enum {
    	CAMEL_CERTDB_DB_LOCK,
    	CAMEL_CERTDB_IO_LOCK,
    	CAMEL_CERTDB_ALLOC_LOCK,
    	CAMEL_CERTDB_REF_LOCK
    } CamelCertDBLock;

Since 2.32

### camel_certdb_lock ()

    void                camel_certdb_lock                   (CamelCertDB *certdb,
                                                             CamelCertDBLock lock);

Locks certdb's lock. Unlock it with `camel_certdb_unlock()`.

`certdb` : | a CamelCertDB
`lock` : | lock type to lock

Since 2.32

### camel_certdb_unlock ()

    void                camel_certdb_unlock                 (CamelCertDB *certdb,
                                                             CamelCertDBLock lock);

Unlocks certdb's lock, previously locked with `camel_certdb_lock()`.

`certdb` : | a CamelCertDB
`lock` : | lock type to unlock

Since 2.32