1/* 2 * Summary: interface for the libxslt security framework 3 * Description: the libxslt security framework allow to restrict 4 * the access to new resources (file or URL) from 5 * the stylesheet at runtime. 6 * 7 * Copy: See Copyright for the status of this software. 8 * 9 * Author: Daniel Veillard 10 */ 11 12#ifndef __XML_XSLT_SECURITY_H__ 13#define __XML_XSLT_SECURITY_H__ 14 15#include <libxml/tree.h> 16#include "xsltexports.h" 17#include "xsltInternals.h" 18 19#ifdef __cplusplus 20extern "C" { 21#endif 22 23/** 24 * xsltSecurityPref: 25 * 26 * structure to indicate the preferences for security in the XSLT 27 * transformation. 28 */ 29typedef struct _xsltSecurityPrefs xsltSecurityPrefs; 30typedef xsltSecurityPrefs *xsltSecurityPrefsPtr; 31 32/** 33 * xsltSecurityOption: 34 * 35 * the set of option that can be configured 36 */ 37typedef enum { 38 XSLT_SECPREF_READ_FILE = 1, 39 XSLT_SECPREF_WRITE_FILE, 40 XSLT_SECPREF_CREATE_DIRECTORY, 41 XSLT_SECPREF_READ_NETWORK, 42 XSLT_SECPREF_WRITE_NETWORK 43} xsltSecurityOption; 44 45/** 46 * xsltSecurityCheck: 47 * 48 * User provided function to check the value of a string like a file 49 * path or an URL ... 50 */ 51typedef int (*xsltSecurityCheck) (xsltSecurityPrefsPtr sec, 52 xsltTransformContextPtr ctxt, 53 const char *value); 54 55/* 56 * Module interfaces 57 */ 58XSLTPUBFUN xsltSecurityPrefsPtr XSLTCALL 59 xsltNewSecurityPrefs (void); 60XSLTPUBFUN void XSLTCALL 61 xsltFreeSecurityPrefs (xsltSecurityPrefsPtr sec); 62XSLTPUBFUN int XSLTCALL 63 xsltSetSecurityPrefs (xsltSecurityPrefsPtr sec, 64 xsltSecurityOption option, 65 xsltSecurityCheck func); 66XSLTPUBFUN xsltSecurityCheck XSLTCALL 67 xsltGetSecurityPrefs (xsltSecurityPrefsPtr sec, 68 xsltSecurityOption option); 69 70XSLTPUBFUN void XSLTCALL 71 xsltSetDefaultSecurityPrefs (xsltSecurityPrefsPtr sec); 72XSLTPUBFUN xsltSecurityPrefsPtr XSLTCALL 73 xsltGetDefaultSecurityPrefs (void); 74 75XSLTPUBFUN int XSLTCALL 76 xsltSetCtxtSecurityPrefs (xsltSecurityPrefsPtr sec, 77 xsltTransformContextPtr ctxt); 78 79XSLTPUBFUN int XSLTCALL 80 xsltSecurityAllow (xsltSecurityPrefsPtr sec, 81 xsltTransformContextPtr ctxt, 82 const char *value); 83XSLTPUBFUN int XSLTCALL 84 xsltSecurityForbid (xsltSecurityPrefsPtr sec, 85 xsltTransformContextPtr ctxt, 86 const char *value); 87/* 88 * internal interfaces 89 */ 90XSLTPUBFUN int XSLTCALL 91 xsltCheckWrite (xsltSecurityPrefsPtr sec, 92 xsltTransformContextPtr ctxt, 93 const xmlChar *URL); 94XSLTPUBFUN int XSLTCALL 95 xsltCheckRead (xsltSecurityPrefsPtr sec, 96 xsltTransformContextPtr ctxt, 97 const xmlChar *URL); 98 99#ifdef __cplusplus 100} 101#endif 102 103#endif /* __XML_XSLT_SECURITY_H__ */ 104 105