X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fsecurity-manager.h;h=747f61723b397f08a6c23d58e32335e7bcfe1bc5;hb=6607fdf5790c0b31a5f742787e3687bf941b53f1;hp=7fc070069bae2c83c7599d2668074f71ee9149d0;hpb=33c392fb5df3e24385c23278023b8546623bc715;p=mono.git diff --git a/mono/metadata/security-manager.h b/mono/metadata/security-manager.h index 7fc070069ba..747f61723b3 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,24 +63,38 @@ typedef struct { MonoClass *suppressunmanagedcodesecurity; /* System.Security.SuppressUnmanagedCodeSecurityAttribute */ } MonoSecurityManager; +gboolean mono_is_ecma_key (const char *publickey, int size) MONO_INTERNAL; +MonoMethod* mono_get_context_capture_method (void) MONO_INTERNAL; -/* 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) MONO_INTERNAL; +void mono_secman_inheritancedemand_method (MonoMethod *override, MonoMethod *base) MONO_INTERNAL; -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) MONO_INTERNAL; +MonoSecurityManager* mono_security_manager_get_methods (void) MONO_INTERNAL; +/* Security mode */ +gboolean mono_is_security_manager_active (void) MONO_INTERNAL; +void mono_security_set_mode (MonoSecurityMode mode) MONO_INTERNAL; +MonoSecurityMode mono_security_get_mode (void) MONO_INTERNAL; /* internal calls */ -MonoBoolean ves_icall_System_Security_SecurityManager_get_SecurityEnabled (void); -void ves_icall_System_Security_SecurityManager_set_SecurityEnabled (MonoBoolean value); -MonoBoolean ves_icall_System_Security_SecurityManager_get_CheckExecutionRights (void); -void ves_icall_System_Security_SecurityManager_set_CheckExecutionRights (MonoBoolean value); -MonoBoolean ves_icall_System_Security_SecurityManager_GetLinkDemandSecurity (MonoReflectionMethod *m, MonoDeclSecurityActions *kactions, MonoDeclSecurityActions *mactions); - +MonoBoolean ves_icall_System_Security_SecurityManager_get_SecurityEnabled (void) MONO_INTERNAL; +void ves_icall_System_Security_SecurityManager_set_SecurityEnabled (MonoBoolean value) MONO_INTERNAL; +MonoBoolean ves_icall_System_Security_SecurityManager_get_CheckExecutionRights (void) MONO_INTERNAL; +void ves_icall_System_Security_SecurityManager_set_CheckExecutionRights (MonoBoolean value) MONO_INTERNAL; +MonoBoolean ves_icall_System_Security_SecurityManager_GetLinkDemandSecurity (MonoReflectionMethod *m, MonoDeclSecurityActions *kactions, MonoDeclSecurityActions *mactions) MONO_INTERNAL; + +#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_ */