X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fsecurity-manager.h;h=2548eed80dff826f4736ac48c82c2fb7d66def9a;hb=e6d98ba2612414fbd67e463442e17de88d868cb1;hp=0973f5049ab87cf51bfffbe09e576e1e8e99c199;hpb=74c2e813151ef52866b58da63aeeed698b5e67dd;p=mono.git diff --git a/mono/metadata/security-manager.h b/mono/metadata/security-manager.h index 0973f5049ab..2548eed80df 100644 --- a/mono/metadata/security-manager.h +++ b/mono/metadata/security-manager.h @@ -14,6 +14,7 @@ #include "object.h" #include "metadata-internals.h" +#include "domain-internals.h" #include "tokentype.h" #include "threads.h" #include "marshal.h" @@ -25,6 +26,11 @@ /* Definitions */ #define MONO_ECMA_KEY_LENGTH 16 +#define MONO_PUBLIC_KEY_HEADER_LENGTH 32 +#define MONO_MINIMUM_PUBLIC_KEY_LENGTH 48 +#define MONO_DEFAULT_PUBLIC_KEY_LENGTH 128 + +#define MONO_PUBLIC_KEY_BIT_SIZE(x) ((x - MONO_PUBLIC_KEY_HEADER_LENGTH) << 3) enum { MONO_METADATA_SECURITY_OK = 0x00, @@ -32,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 */ @@ -51,24 +63,26 @@ 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_activate_security_manager (void) MONO_INTERNAL; +gboolean mono_is_security_manager_active (void) MONO_INTERNAL; +MonoSecurityManager* mono_security_manager_get_methods (void) MONO_INTERNAL; +gboolean mono_is_ecma_key (const char *publickey, int size) MONO_INTERNAL; +MonoMethod* mono_get_context_capture_method (void) MONO_INTERNAL; -void mono_secman_inheritancedemand_class (MonoClass *klass, MonoClass *parent); -void mono_secman_inheritancedemand_method (MonoMethod *override, MonoMethod *base); +void mono_secman_inheritancedemand_class (MonoClass *klass, MonoClass *parent) MONO_INTERNAL; +void mono_secman_inheritancedemand_method (MonoMethod *override, MonoMethod *base) MONO_INTERNAL; +/* Security mode */ +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; #endif /* _MONO_METADATA_SECURITY_MANAGER_H_ */