diff options
Diffstat (limited to 'camel/camel-cms-context.c')
-rw-r--r-- | camel/camel-cms-context.c | 324 |
1 files changed, 0 insertions, 324 deletions
diff --git a/camel/camel-cms-context.c b/camel/camel-cms-context.c deleted file mode 100644 index dea3951877..0000000000 --- a/camel/camel-cms-context.c +++ /dev/null @@ -1,324 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* - * Authors: Jeffrey Stedfast <fejj@ximian.com> - * - * Copyright 2001 Ximian, Inc. (www.ximian.com) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA. - * - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "camel-cms-context.h" - -#include <glib.h> - -#ifdef ENABLE_THREADS -#include <pthread.h> -#define CMS_LOCK(ctx) g_mutex_lock (((CamelCMSContext *) ctx)->priv->lock) -#define CMS_UNLOCK(ctx) g_mutex_unlock (((CamelCMSContext *) ctx)->priv->lock); -#else -#define CMS_LOCK(ctx) -#define CMS_UNLOCK(ctx) -#endif - -#define d(x) - -#define CCC_CLASS(o) CAMEL_CMS_CONTEXT_CLASS(CAMEL_OBJECT_GET_CLASS(o)) - -struct _CamelCMSContextPrivate { -#ifdef ENABLE_THREADS - GMutex *lock; -#endif -}; - -static CamelMimeMessage *cms_sign (CamelCMSContext *ctx, CamelMimeMessage *message, - const char *userid, gboolean signing_time, - gboolean detached, CamelException *ex); - -static CamelMimeMessage *cms_certsonly (CamelCMSContext *ctx, CamelMimeMessage *message, - const char *userid, GPtrArray *recipients, - CamelException *ex); - -static CamelMimeMessage *cms_encrypt (CamelCMSContext *ctx, CamelMimeMessage *message, - const char *userid, GPtrArray *recipients, - CamelException *ex); - -static CamelMimeMessage *cms_envelope (CamelCMSContext *ctx, CamelMimeMessage *message, - const char *userid, GPtrArray *recipients, - CamelException *ex); - -static CamelMimeMessage *cms_decode (CamelCMSContext *ctx, CamelMimeMessage *message, - CamelCMSValidityInfo **info, CamelException *ex); - -static CamelObjectClass *parent_class; - -static void -camel_cms_context_init (CamelCMSContext *context) -{ - context->priv = g_new0 (struct _CamelCMSContextPrivate, 1); -#ifdef ENABLE_THREADS - context->priv->lock = g_mutex_new (); -#endif -} - -static void -camel_cms_context_finalise (CamelObject *o) -{ - CamelCMSContext *context = (CamelCMSContext *)o; - - camel_object_unref (CAMEL_OBJECT (context->session)); - -#ifdef ENABLE_THREADS - g_mutex_free (context->priv->lock); -#endif - - g_free (context->priv); -} - -static void -camel_cms_context_class_init (CamelCMSContextClass *camel_cms_context_class) -{ - parent_class = camel_type_get_global_classfuncs (camel_object_get_type ()); - - camel_cms_context_class->sign = cms_sign; - camel_cms_context_class->certsonly = cms_certsonly; - camel_cms_context_class->encrypt = cms_encrypt; - camel_cms_context_class->envelope = cms_envelope; - camel_cms_context_class->decode = cms_decode; -} - -CamelType -camel_cms_context_get_type (void) -{ - static CamelType type = CAMEL_INVALID_TYPE; - - if (type == CAMEL_INVALID_TYPE) { - type = camel_type_register (camel_object_get_type (), - "CamelCMSContext", - sizeof (CamelCMSContext), - sizeof (CamelCMSContextClass), - (CamelObjectClassInitFunc) camel_cms_context_class_init, - NULL, - (CamelObjectInitFunc) camel_cms_context_init, - (CamelObjectFinalizeFunc) camel_cms_context_finalise); - } - - return type; -} - - -/** - * camel_cms_context_new: - * @session: CamelSession - * @encryption_key: preferred encryption key nickname - * - * This creates a new CamelCMSContext object which is used to sign, - * encrypt, envelope and decode CMS messages. - * - * Return value: the new CamelCMSContext - **/ -CamelCMSContext * -camel_cms_context_new (CamelSession *session) -{ - CamelCMSContext *context; - - g_return_val_if_fail (session != NULL, NULL); - g_return_val_if_fail (CAMEL_IS_SESSION (session), NULL); - - context = CAMEL_CMS_CONTEXT (camel_object_new (CAMEL_CMS_CONTEXT_TYPE)); - - camel_object_ref (CAMEL_OBJECT (session)); - context->session = session; - - return context; -} - - -/** - * camel_cms_context_construct: - * @context: CMS Context - * @session: CamelSession - * - * Construct the CMS Context. - **/ -void -camel_cms_context_construct (CamelCMSContext *context, CamelSession *session) -{ - g_return_if_fail (CAMEL_IS_CMS_CONTEXT (context)); - g_return_if_fail (CAMEL_IS_SESSION (session)); - - camel_object_ref (CAMEL_OBJECT (session)); - context->session = session; -} - - -static CamelMimeMessage * -cms_sign (CamelCMSContext *ctx, CamelMimeMessage *message, - const char *userid, gboolean signing_time, - gboolean detached, CamelException *ex) -{ - g_warning ("Using default CamelCMSContext::sign() method."); - - return NULL; -} - - -CamelMimeMessage * -camel_cms_sign (CamelCMSContext *ctx, CamelMimeMessage *message, - const char *userid, gboolean signing_time, - gboolean detached, CamelException *ex) -{ - g_return_val_if_fail (CAMEL_IS_CMS_CONTEXT (ctx), NULL); - g_return_val_if_fail (CAMEL_IS_MIME_MESSAGE (message), NULL); - g_return_val_if_fail (userid != NULL, NULL); - - return CCC_CLASS (ctx)->sign (ctx, message, userid, signing_time, detached, ex); -} - - -static CamelMimeMessage * -cms_certsonly (CamelCMSContext *ctx, CamelMimeMessage *message, - const char *userid, GPtrArray *recipients, - CamelException *ex) -{ - g_warning ("Using default CamelCMSContext::certsonly() method."); - - return NULL; -} - - -CamelMimeMessage * -camel_cms_certsonly (CamelCMSContext *ctx, CamelMimeMessage *message, - const char *userid, GPtrArray *recipients, - CamelException *ex) -{ - g_return_val_if_fail (CAMEL_IS_CMS_CONTEXT (ctx), NULL); - g_return_val_if_fail (CAMEL_IS_MIME_MESSAGE (message), NULL); - g_return_val_if_fail (userid != NULL, NULL); - g_return_val_if_fail (recipients != NULL, NULL); - - return CCC_CLASS (ctx)->certsonly (ctx, message, userid, recipients, ex); -} - - -static CamelMimeMessage * -cms_envelope (CamelCMSContext *ctx, CamelMimeMessage *message, - const char *userid, GPtrArray *recipients, - CamelException *ex) -{ - g_warning ("Using default CamelCMSContext::envelope() method."); - - return NULL; -} - - -CamelMimeMessage * -camel_cms_envelope (CamelCMSContext *ctx, CamelMimeMessage *message, - const char *userid, GPtrArray *recipients, - CamelException *ex) -{ - g_return_val_if_fail (CAMEL_IS_CMS_CONTEXT (ctx), NULL); - g_return_val_if_fail (CAMEL_IS_MIME_MESSAGE (message), NULL); - g_return_val_if_fail (userid != NULL, NULL); - g_return_val_if_fail (recipients != NULL, NULL); - - return CCC_CLASS (ctx)->envelope (ctx, message, userid, recipients, ex); -} - - -static CamelMimeMessage * -cms_encrypt (CamelCMSContext *ctx, CamelMimeMessage *message, - const char *userid, GPtrArray *recipients, - CamelException *ex) -{ - g_warning ("Using default CamelCMSContext::encrypt() method."); - - return NULL; -} - - -CamelMimeMessage * -camel_cms_encrypt (CamelCMSContext *ctx, CamelMimeMessage *message, - const char *userid, GPtrArray *recipients, - CamelException *ex) -{ - g_return_val_if_fail (CAMEL_IS_CMS_CONTEXT (ctx), NULL); - g_return_val_if_fail (CAMEL_IS_MIME_MESSAGE (message), NULL); - g_return_val_if_fail (userid != NULL, NULL); - g_return_val_if_fail (recipients != NULL, NULL); - - return CCC_CLASS (ctx)->encrypt (ctx, message, userid, recipients, ex); -} - - -static CamelMimeMessage * -cms_decode (CamelCMSContext *ctx, CamelMimeMessage *message, - CamelCMSValidityInfo **info, CamelException *ex) -{ - g_warning ("Using default CamelCMSContext::decode() method."); - - return NULL; -} - - -CamelMimeMessage * -camel_cms_decode (CamelCMSContext *ctx, CamelMimeMessage *message, - CamelCMSValidityInfo **info, CamelException *ex) -{ - g_return_val_if_fail (CAMEL_IS_CMS_CONTEXT (ctx), NULL); - g_return_val_if_fail (CAMEL_IS_MIME_MESSAGE (message), NULL); - - return CCC_CLASS (ctx)->decode (ctx, message, info, ex); -} - - -void -camel_cms_signer_free (CamelCMSSigner *signer) -{ - CamelCMSSigner *next; - - if (!signer) - return; - - while (signer) { - next = signer->next; - g_free (signer->signercn); - g_free (signer->status); - g_free (signer); - signer = next; - } -} - - -void -camel_cms_validity_info_free (CamelCMSValidityInfo *info) -{ - CamelCMSValidityInfo *next; - - if (!info) - return; - - while (info) { - next = info->next; - if (info->type == CAMEL_CMS_TYPE_SIGNED) - camel_cms_signer_free (info->signers); - g_free (info); - info = next; - } -} |