2 * XML Security Library (http://www.aleksey.com/xmlsec).
4 * "XML Key Management Specification v 2.0" implementation
5 * http://www.w3.org/TR/xkms2/
7 * This is free software; see Copyright file in the source
8 * distribution for preciese wording.
10 * Copyright (C) 2002-2003 Aleksey Sanin <aleksey@aleksey.com>
12 #ifndef __XMLSEC_PRIVATE_XKMS_H__
13 #define __XMLSEC_PRIVATE_XKMS_H__
15 #ifndef XMLSEC_PRIVATE
16 #error "xmlsec/private/xkms.h file contains private xmlsec definitions and should not be used outside xmlsec or xmlsec-<crypto> libraries"
17 #endif /* XMLSEC_PRIVATE */
19 #ifndef XMLSEC_NO_XKMS
23 #endif /* __cplusplus */
26 #include <libxml/tree.h>
27 #include <libxml/parser.h>
29 #include <xmlsec/xmlsec.h>
30 #include <xmlsec/buffer.h>
31 #include <xmlsec/list.h>
32 #include <xmlsec/keys.h>
33 #include <xmlsec/keysmngr.h>
34 #include <xmlsec/keyinfo.h>
35 #include <xmlsec/transforms.h>
36 #include <xmlsec/xkms.h>
38 /************************************************************************
40 * XKMS RespondWith Klass
42 ************************************************************************/
43 typedef int (*xmlSecXkmsRespondWithNodeReadMethod) (xmlSecXkmsRespondWithId id,
44 xmlSecXkmsServerCtxPtr ctx,
46 typedef int (*xmlSecXkmsRespondWithNodeWriteMethod) (xmlSecXkmsRespondWithId id,
47 xmlSecXkmsServerCtxPtr ctx,
49 struct _xmlSecXkmsRespondWithKlass {
50 const xmlChar* valueName;
51 const xmlChar* valueNs;
53 const xmlChar* nodeName;
54 const xmlChar* nodeNs;
56 xmlSecXkmsRespondWithNodeReadMethod readNode;
57 xmlSecXkmsRespondWithNodeWriteMethod writeNode;
63 #define xmlSecXkmsRespondWithKlassGetName(id) \
64 ((((id) != NULL) && ((id)->valueName != NULL)) ? (id)->valueName : NULL)
66 /************************************************************************
68 * XKMS ServerRequest Klass
70 ************************************************************************/
71 typedef int (*xmlSecXkmsServerRequestNodeReadMethod)
72 (xmlSecXkmsServerRequestId id,
73 xmlSecXkmsServerCtxPtr ctx,
75 typedef int (*xmlSecXkmsServerRequestExecuteMethod)
76 (xmlSecXkmsServerRequestId id,
77 xmlSecXkmsServerCtxPtr ctx);
78 typedef int (*xmlSecXkmsServerRequestNodeWriteMethod)
79 (xmlSecXkmsServerRequestId id,
80 xmlSecXkmsServerCtxPtr ctx,
82 struct _xmlSecXkmsServerRequestKlass {
84 const xmlChar* requestNodeName;
85 const xmlChar* requestNodeNs;
86 const xmlChar* resultNodeName;
87 const xmlChar* resultNodeNs;
90 xmlSecXkmsServerRequestNodeReadMethod readNode;
91 xmlSecXkmsServerRequestNodeWriteMethod writeNode;
92 xmlSecXkmsServerRequestExecuteMethod execute;
98 #define xmlSecXkmsServerRequestKlassGetName(id) \
99 ((((id) != NULL) && ((id)->name != NULL)) ? (id)->name : NULL)
102 /************************************************************************
104 * XKMS ServerRequest Klass flags
106 ************************************************************************/
108 * XMLSEC_XKMS_SERVER_REQUEST_KLASS_ALLOWED_IN_COUMPOUND:
110 * The server request klass is allowed in xkms:CompoundRequest element.
112 #define XMLSEC_XKMS_SERVER_REQUEST_KLASS_ALLOWED_IN_COUMPOUND 0x00000001
116 #endif /* __cplusplus */
118 #endif /* XMLSEC_NO_XKMS */
120 #endif /* __XMLSEC_PRIVATE_XKMS_H__ */