| /* |
| * Summary: interface for the libxslt security framework |
| * Description: the libxslt security framework allow to restrict |
| * the access to new resources (file or URL) from |
| * the stylesheet at runtime. |
| * |
| * Copy: See Copyright for the status of this software. |
| * |
| * Author: Daniel Veillard |
| */ |
| |
| #ifndef __XML_XSLT_SECURITY_H__ |
| #define __XML_XSLT_SECURITY_H__ |
| |
| #include <libxml/tree.h> |
| #include "xsltexports.h" |
| #include "xsltInternals.h" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /** |
| * xsltSecurityPref: |
| * |
| * structure to indicate the preferences for security in the XSLT |
| * transformation. |
| */ |
| typedef struct _xsltSecurityPrefs xsltSecurityPrefs; |
| typedef xsltSecurityPrefs *xsltSecurityPrefsPtr; |
| |
| /** |
| * xsltSecurityOption: |
| * |
| * the set of option that can be configured |
| */ |
| typedef enum { |
| XSLT_SECPREF_READ_FILE = 1, |
| XSLT_SECPREF_WRITE_FILE, |
| XSLT_SECPREF_CREATE_DIRECTORY, |
| XSLT_SECPREF_READ_NETWORK, |
| XSLT_SECPREF_WRITE_NETWORK |
| } xsltSecurityOption; |
| |
| /** |
| * xsltSecurityCheck: |
| * |
| * User provided function to check the value of a string like a file |
| * path or an URL ... |
| */ |
| typedef int (*xsltSecurityCheck) (xsltSecurityPrefsPtr sec, |
| xsltTransformContextPtr ctxt, |
| const char *value); |
| |
| /* |
| * Module interfaces |
| */ |
| XSLTPUBFUN xsltSecurityPrefsPtr XSLTCALL |
| xsltNewSecurityPrefs (void); |
| XSLTPUBFUN void XSLTCALL |
| xsltFreeSecurityPrefs (xsltSecurityPrefsPtr sec); |
| XSLTPUBFUN int XSLTCALL |
| xsltSetSecurityPrefs (xsltSecurityPrefsPtr sec, |
| xsltSecurityOption option, |
| xsltSecurityCheck func); |
| XSLTPUBFUN xsltSecurityCheck XSLTCALL |
| xsltGetSecurityPrefs (xsltSecurityPrefsPtr sec, |
| xsltSecurityOption option); |
| |
| XSLTPUBFUN void XSLTCALL |
| xsltSetDefaultSecurityPrefs (xsltSecurityPrefsPtr sec); |
| XSLTPUBFUN xsltSecurityPrefsPtr XSLTCALL |
| xsltGetDefaultSecurityPrefs (void); |
| |
| XSLTPUBFUN int XSLTCALL |
| xsltSetCtxtSecurityPrefs (xsltSecurityPrefsPtr sec, |
| xsltTransformContextPtr ctxt); |
| |
| XSLTPUBFUN int XSLTCALL |
| xsltSecurityAllow (xsltSecurityPrefsPtr sec, |
| xsltTransformContextPtr ctxt, |
| const char *value); |
| XSLTPUBFUN int XSLTCALL |
| xsltSecurityForbid (xsltSecurityPrefsPtr sec, |
| xsltTransformContextPtr ctxt, |
| const char *value); |
| /* |
| * internal interfaces |
| */ |
| XSLTPUBFUN int XSLTCALL |
| xsltCheckWrite (xsltSecurityPrefsPtr sec, |
| xsltTransformContextPtr ctxt, |
| const xmlChar *URL); |
| XSLTPUBFUN int XSLTCALL |
| xsltCheckRead (xsltSecurityPrefsPtr sec, |
| xsltTransformContextPtr ctxt, |
| const xmlChar *URL); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* __XML_XSLT_SECURITY_H__ */ |
| |