X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=mono%2Fmetadata%2Fsecurity-manager.h;h=19ac3e8f82c496521b73ac37eb4d8cfab999adea;hb=6adffa4edd217ccde7147db2b49424b8c9e30943;hp=384b55b52fc3f7234666279e259a2244ba75bde2;hpb=bbc0bd33a4b2ffe1a6a9ac753903e7c3c0e72871;p=mono.git diff --git a/mono/metadata/security-manager.h b/mono/metadata/security-manager.h index 384b55b52fc..19ac3e8f82c 100644 --- a/mono/metadata/security-manager.h +++ b/mono/metadata/security-manager.h @@ -5,6 +5,7 @@ * Sebastien Pouliot * * Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com) + * Licensed under the MIT license. See LICENSE file in the project root for full license information. */ #ifndef _MONO_METADATA_SECURITY_MANAGER_H_ @@ -14,36 +15,58 @@ #include "object.h" #include "metadata-internals.h" +#include "domain-internals.h" #include "tokentype.h" #include "threads.h" #include "marshal.h" +#include "image.h" +#include "reflection.h" +#include "tabledefs.h" +/* 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, + MONO_METADATA_INHERITANCEDEMAND_CLASS = 0x01, + MONO_METADATA_INHERITANCEDEMAND_METHOD = 0x02 +}; + +typedef enum { + MONO_SECURITY_MODE_NONE, + MONO_SECURITY_MODE_CORE_CLR, +} MonoSecurityMode; + /* Structures */ typedef struct { MonoClass *securitymanager; /* System.Security.SecurityManager */ - MonoMethod *demand; /* SecurityManager.InternalDemand */ - MonoMethod *demandchoice; /* SecurityManager.InternalDemandChoice */ - MonoMethod *assert; /* SecurityManager.InternalAssert */ - MonoMethod *deny; /* SecurityManager.InternalDeny */ - MonoMethod *permitonly; /* SecurityManager.InternalPermitOnly */ - MonoMethod *linkdemand; /* SecurityManager.LinkDemand */ - MonoMethod *inheritancedemand; /* SecurityManager.InheritanceDemand */ } MonoSecurityManager; +gboolean mono_is_ecma_key (const char *publickey, int size); +MonoMethod* mono_get_context_capture_method (void); -/* Initialization/utility functions */ -void mono_activate_security_manager (void); -gboolean mono_is_security_manager_active (void); MonoSecurityManager* mono_security_manager_get_methods (void); +/* Security mode */ +void mono_security_set_mode (MonoSecurityMode mode); +MonoSecurityMode mono_security_get_mode (void); /* 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); +#ifndef DISABLE_SECURITY +#define mono_security_core_clr_enabled() (mono_security_get_mode () == MONO_SECURITY_MODE_CORE_CLR) +#else +#define mono_security_core_clr_enabled() (FALSE) +#endif #endif /* _MONO_METADATA_SECURITY_MANAGER_H_ */