X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fsecurity-manager.h;h=dd2f17d5b27691007634ec0eff094c031ec70267;hb=307545d624a7c326cd4fdc8df857e47085756542;hp=7fc070069bae2c83c7599d2668074f71ee9149d0;hpb=0443306d611d0830e27327e1f0a3ef3457dfa535;p=mono.git diff --git a/mono/metadata/security-manager.h b/mono/metadata/security-manager.h index 7fc070069ba..dd2f17d5b27 100644 --- a/mono/metadata/security-manager.h +++ b/mono/metadata/security-manager.h @@ -38,6 +38,12 @@ enum { MONO_METADATA_INHERITANCEDEMAND_METHOD = 0x02 }; +typedef enum { + MONO_SECURITY_MODE_NONE, + MONO_SECURITY_MODE_CORE_CLR, + MONO_SECURITY_MODE_CAS, + MONO_SECURITY_MODE_SMCS_HACK +} MonoSecurityMode; /* Structures */ @@ -57,17 +63,20 @@ typedef struct { MonoClass *suppressunmanagedcodesecurity; /* System.Security.SuppressUnmanagedCodeSecurityAttribute */ } MonoSecurityManager; - -/* Initialization/utility functions */ -void mono_activate_security_manager (void); -gboolean mono_is_security_manager_active (void); -MonoSecurityManager* mono_security_manager_get_methods (void); gboolean mono_is_ecma_key (const char *publickey, int size); MonoMethod* mono_get_context_capture_method (void); void mono_secman_inheritancedemand_class (MonoClass *klass, MonoClass *parent); void mono_secman_inheritancedemand_method (MonoMethod *override, MonoMethod *base); +/* Initialization/utility functions */ +void mono_activate_security_manager (void); +MonoSecurityManager* mono_security_manager_get_methods (void); + +/* Security mode */ +gboolean mono_is_security_manager_active (void); +void mono_security_set_mode (MonoSecurityMode mode); +MonoSecurityMode mono_security_get_mode (void); /* internal calls */ MonoBoolean ves_icall_System_Security_SecurityManager_get_SecurityEnabled (void); @@ -76,5 +85,16 @@ MonoBoolean ves_icall_System_Security_SecurityManager_get_CheckExecutionRights ( void ves_icall_System_Security_SecurityManager_set_CheckExecutionRights (MonoBoolean value); MonoBoolean ves_icall_System_Security_SecurityManager_GetLinkDemandSecurity (MonoReflectionMethod *m, MonoDeclSecurityActions *kactions, MonoDeclSecurityActions *mactions); +#ifndef DISABLE_SECURITY +#define mono_security_enabled() (mono_is_security_manager_active ()) +#define mono_security_cas_enabled() (mono_security_get_mode () == MONO_SECURITY_MODE_CAS) +#define mono_security_core_clr_enabled() (mono_security_get_mode () == MONO_SECURITY_MODE_CORE_CLR) +#define mono_security_smcs_hack_enabled() (mono_security_get_mode () == MONO_SECURITY_MODE_SMCS_HACK) +#else +#define mono_security_enabled() (FALSE) +#define mono_security_cas_enabled() (FALSE) +#define mono_security_core_clr_enabled() (FALSE) +#define mono_security_smcs_hack_enabled() (FALSE) +#endif #endif /* _MONO_METADATA_SECURITY_MANAGER_H_ */