X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fsecurity-manager.h;h=19ac3e8f82c496521b73ac37eb4d8cfab999adea;hb=6adffa4edd217ccde7147db2b49424b8c9e30943;hp=d636adf8a374f05e1363fd8dc9b4f65e858d77e0;hpb=59fa8c6d4184829752c02a5fc6921283f0da846d;p=mono.git diff --git a/mono/metadata/security-manager.h b/mono/metadata/security-manager.h index d636adf8a37..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,27 +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 */ 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); + +#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_ */