root/third_party/libxslt/libxslt/security.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


/*
 * 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__ */


/* [<][>][^][v][top][bottom][index][help] */