Mercurial > pidgin.yaz
changeset 18928:299022c9b32d
- More API additions
author | William Ehlhardt <williamehlhardt@gmail.com> |
---|---|
date | Thu, 21 Jun 2007 19:14:06 +0000 |
parents | 9abc911c65aa |
children | 67cb28c0ec89 |
files | libpurple/certificate.h |
diffstat | 1 files changed, 45 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/certificate.h Thu Jun 21 19:13:28 2007 +0000 +++ b/libpurple/certificate.h Thu Jun 21 19:14:06 2007 +0000 @@ -35,8 +35,17 @@ extern "C" { #endif /* __cplusplus */ + +typedef enum +{ + PURPLE_CERTIFICATE_INVALID = 0, + PURPLE_CERTIFICATE_VALID = 1 +} PurpleCertificateVerificationStatus; + typedef struct _PurpleCertificate PurpleCertificate; typedef struct _PurpleCertificateScheme PurpleCertificateScheme; +typedef struct _PurpleCertificateVerifier PurpleCertificateVerifier; +typedef struct _PurpleCertificateVerificationRequest PurpleCertificateVerificationRequest; /** A certificate instance * @@ -70,6 +79,8 @@ /** User-friendly name for this type * ex: N_("X.509 Certificates") + * When this is displayed anywhere, it should be i18ned + * ex: _(scheme->name) */ gchar * fullname; @@ -95,6 +106,40 @@ /* TODO: Fill out this structure */ }; +/** A set of operations used to provide logic for verifying a Certificate's + * authenticity. + */ +struct _PurpleCertificateVerifier +{ + /** Scheme this Verifier operates on */ + PurpleCertificateScheme *scheme; + + /** Internal name used for lookups + * + * Case insensitive + */ + gchar * name; +}; + +/** Structure for a single certificate request + * + * Useful for keeping track of the state of a verification that involves + * several steps + */ +struct _PurpleCertificateVerificationRequest +{ + /** Reference to the verification logic used */ + PurpleCertificateVerifier *verifier; + + /** List of certificates in the chain to be verified. + * + * This is most relevant for X.509 certificates used in SSL sessions. + */ + GList *cert_chain; + + /** Internal data used by the Verifier code */ + gpointer *data; +}; /*****************************************************************************/ /** @name PurpleCertificate Subsystem API */