xmlsecurityengine/xmlsec/inc/xmlsec_privatexkms.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:37:34 +0100
branchRCL_3
changeset 33 604ca70b6235
parent 32 889504eac4fb
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201014 Kit: 201035

/** 
 * XML Security Library (http://www.aleksey.com/xmlsec).
 *
 * "XML Key Management Specification v 2.0" implementation
 *  http://www.w3.org/TR/xkms2/
 * 
 * This is free software; see Copyright file in the source
 * distribution for preciese wording.
 * 
 * Copyright (C) 2002-2003 Aleksey Sanin <aleksey@aleksey.com>
 */
#ifndef __XMLSEC_PRIVATE_XKMS_H__
#define __XMLSEC_PRIVATE_XKMS_H__    
#include "xmlsec_config.h"
#ifndef XMLSEC_PRIVATE
#error "xmlsec/private/xkms.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-<crypto> libraries"
#endif /* XMLSEC_PRIVATE */

#ifndef XMLSEC_NO_XKMS
	
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */ 
#include <stdio.h>		

#include <libxml2_tree.h>
#include <libxml2_parser.h>

#include "xmlsec_xmlsec.h"
#include "xmlsec_buffer.h"
#include "xmlsec_list.h"
#include "xmlsec_keys.h"
#include "xmlsec_keysmngr.h"
#include "xmlsec_keyinfo.h"
#include "xmlsec_transforms.h"
#include "xmlsec_xkms.h"

/************************************************************************
 *
 * XKMS RespondWith Klass
 *
 ************************************************************************/ 
typedef int  		(*xmlSecXkmsRespondWithNodeReadMethod)	(xmlSecXkmsRespondWithId id,
								 xmlSecXkmsServerCtxPtr ctx,
								 xmlNodePtr node);
typedef int  		(*xmlSecXkmsRespondWithNodeWriteMethod)	(xmlSecXkmsRespondWithId id,
								 xmlSecXkmsServerCtxPtr ctx,
								 xmlNodePtr node);
struct _xmlSecXkmsRespondWithKlass {
    const xmlChar*				valueName;
    const xmlChar*				valueNs;
    
    const xmlChar*				nodeName;
    const xmlChar*				nodeNs;
    
    xmlSecXkmsRespondWithNodeReadMethod		readNode;
    xmlSecXkmsRespondWithNodeWriteMethod	writeNode;

    void*					reserved1;
    void*					reserved2;
};

#define xmlSecXkmsRespondWithKlassGetName(id) \
	((((id) != NULL) && ((id)->valueName != NULL)) ? (id)->valueName : NULL)

/************************************************************************
 *
 * XKMS ServerRequest Klass
 *
 ************************************************************************/ 
typedef int  			(*xmlSecXkmsServerRequestNodeReadMethod)
								(xmlSecXkmsServerRequestId id,
								 xmlSecXkmsServerCtxPtr ctx,
								 xmlNodePtr node);
typedef int  			(*xmlSecXkmsServerRequestExecuteMethod)
								(xmlSecXkmsServerRequestId id,
								 xmlSecXkmsServerCtxPtr ctx);
typedef int  			(*xmlSecXkmsServerRequestNodeWriteMethod)
								(xmlSecXkmsServerRequestId id,
								 xmlSecXkmsServerCtxPtr ctx,
								 xmlNodePtr node);
struct _xmlSecXkmsServerRequestKlass {
    const xmlChar*				name;
    const xmlChar*				requestNodeName;
    const xmlChar*				requestNodeNs;
    const xmlChar*				resultNodeName;
    const xmlChar*				resultNodeNs;
    xmlSecBitMask				flags;
    
    xmlSecXkmsServerRequestNodeReadMethod	readNode;
    xmlSecXkmsServerRequestNodeWriteMethod	writeNode;
    xmlSecXkmsServerRequestExecuteMethod	execute;
    
    void*					reserved1;
    void*					reserved2;
};

#define xmlSecXkmsServerRequestKlassGetName(id) \
	((((id) != NULL) && ((id)->name != NULL)) ? (id)->name : NULL)


/************************************************************************
 *
 * XKMS ServerRequest Klass flags
 *
 ************************************************************************/ 
/**
 * XMLSEC_XKMS_SERVER_REQUEST_KLASS_ALLOWED_IN_COUMPOUND:
 *
 * The server request klass is allowed in xkms:CompoundRequest element.
 */
#define XMLSEC_XKMS_SERVER_REQUEST_KLASS_ALLOWED_IN_COUMPOUND   0x00000001

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* XMLSEC_NO_XKMS */

#endif /* __XMLSEC_PRIVATE_XKMS_H__ */