## CamelCertDB CamelCertDB |

## Synopsis

                        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 char *filename);
    int                 camel_certdb_load                   (CamelCertDB *certdb);
    int                 camel_certdb_save                   (CamelCertDB *certdb);
    void                camel_certdb_touch                  (CamelCertDB *certdb);
    CamelCert *         camel_certdb_get_cert               (CamelCertDB *certdb,
                                                             const char *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 char *        camel_cert_get_string               (CamelCertDB *certdb,
                                                             CamelCert *cert,
                                                             int string);
    void                camel_cert_set_string               (CamelCertDB *certdb,
                                                             CamelCert *cert,
                                                             int string,
                                                             const char *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);

## Description

## Details

### CamelCertDB

    typedef struct {
    	CamelObject parent_object;
    	struct _CamelCertDBPrivate *priv;

    	char *filename;
    	guint32 version;
    	guint32 saved_certs;
    	guint32 flags;

    	guint32 cert_size;

    	struct _EMemChunk *cert_chunks;

    	GPtrArray *certs;
    	GHashTable *cert_hash;
    } 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;

    	char *issuer;
    	char *subject;
    	char *hostname;
    	char *fingerprint;

    	CamelCertTrust trust;
    	GByteArray *rawcert;
    } CamelCert;

### camel_certdb_new ()

    CamelCertDB *       camel_certdb_new                    (void);

Returns : |

### camel_certdb_set_default ()

    void                camel_certdb_set_default            (CamelCertDB *certdb);

`certdb` : |

### camel_certdb_get_default ()

    CamelCertDB *       camel_certdb_get_default            (void);

Returns : |

### camel_certdb_set_filename ()

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

`certdb` : |
`filename` : |

### camel_certdb_load ()

    int                 camel_certdb_load                   (CamelCertDB *certdb);

`certdb` : |
Returns : |

### camel_certdb_save ()

    int                 camel_certdb_save                   (CamelCertDB *certdb);

`certdb` : |
Returns : |

### camel_certdb_touch ()

    void                camel_certdb_touch                  (CamelCertDB *certdb);

`certdb` : |

### camel_certdb_get_cert ()

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

`certdb` : |
`fingerprint` : |
Returns : |

### camel_certdb_add ()

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

`certdb` : |
`cert` : |

### camel_certdb_remove ()

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

`certdb` : |
`cert` : |

### camel_certdb_cert_new ()

    CamelCert *         camel_certdb_cert_new               (CamelCertDB *certdb);

`certdb` : |
Returns : |

### camel_certdb_cert_ref ()

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

`certdb` : |
`cert` : |

### camel_certdb_cert_unref ()

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

`certdb` : |
`cert` : |

### camel_certdb_clear ()

    void                camel_certdb_clear                  (CamelCertDB *certdb);

`certdb` : |

### camel_cert_get_string ()

    const char *        camel_cert_get_string               (CamelCertDB *certdb,
                                                             CamelCert *cert,
                                                             int string);

`certdb` : |
`cert` : |
`string` : |
Returns : |

### camel_cert_set_string ()

    void                camel_cert_set_string               (CamelCertDB *certdb,
                                                             CamelCert *cert,
                                                             int string,
                                                             const char *value);

`certdb` : |
`cert` : |
`string` : |
`value` : |

### camel_cert_get_issuer()

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

`certdb` : |
`cert` : |

### camel_cert_get_subject()

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

`certdb` : |
`cert` : |

### camel_cert_get_hostname()

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

`certdb` : |
`cert` : |

### camel_cert_get_fingerprint()

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

`certdb` : |
`cert` : |

### camel_cert_set_issuer()

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

`certdb` : |
`cert` : |
`issuer` : |

### camel_cert_set_subject()

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

`certdb` : |
`cert` : |
`subject` : |

### camel_cert_set_hostname()

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

`certdb` : |
`cert` : |
`hostname` : |

### camel_cert_set_fingerprint()

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

`certdb` : |
`cert` : |
`fingerprint` : |

### camel_cert_get_trust ()

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

`certdb` : |
`cert` : |
Returns : |

### camel_cert_set_trust ()

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

`certdb` : |
`cert` : |
`trust` : |