# HG changeset patch # User Elliott Sales de Andrade # Date 1324602553 0 # Node ID 7ceb5ca4b323c3621666fd0a29194c9349ec1e00 # Parent 82e524e447f1fd7eb3ef27d4c8a398ca14b2a6c2 Add a function for retrieving the raw DER representation of a certification. diff -r 82e524e447f1 -r 7ceb5ca4b323 libpurple/certificate.c --- a/libpurple/certificate.c Thu Dec 22 23:57:38 2011 +0000 +++ b/libpurple/certificate.c Fri Dec 23 01:09:13 2011 +0000 @@ -499,6 +499,24 @@ return (scheme->get_times)(crt, activation, expiration); } +GByteArray * +purple_certificate_get_der_data(PurpleCertificate *crt) +{ + PurpleCertificateScheme *scheme; + GByteArray *data; + + g_return_val_if_fail(crt, NULL); + g_return_val_if_fail(crt->scheme, NULL); + + scheme = crt->scheme; + + g_return_val_if_fail(scheme->get_der_data, NULL); + + data = (scheme->get_der_data)(crt); + + return data; +} + gchar * purple_certificate_pool_mkpath(PurpleCertificatePool *pool, const gchar *id) { diff -r 82e524e447f1 -r 7ceb5ca4b323 libpurple/certificate.h --- a/libpurple/certificate.h Thu Dec 22 23:57:38 2011 +0000 +++ b/libpurple/certificate.h Fri Dec 23 01:09:13 2011 +0000 @@ -257,9 +257,17 @@ */ GSList * (* import_certificates)(const gchar * filename); + /** + * Retrieves the certificate data in DER form + * + * @param crt Certificate instance + * @return Binary DER representation of certificate - must be freed using + * g_byte_array_free() + */ + GByteArray * (* get_der_data)(PurpleCertificate *crt); + void (*_purple_reserved1)(void); void (*_purple_reserved2)(void); - void (*_purple_reserved3)(void); }; /** A set of operations used to provide logic for verifying a Certificate's @@ -561,6 +569,17 @@ gboolean purple_certificate_get_times(PurpleCertificate *crt, time_t *activation, time_t *expiration); +/** + * Retrieves the certificate data in DER form. + * + * @param crt Certificate instance + * + * @return Binary DER representation of the certificate - must be freed using + * g_byte_array_free(). + */ +GByteArray * +purple_certificate_get_der_data(PurpleCertificate *crt); + /*@}*/ /*****************************************************************************/