2 * security-manager.h: Security Manager
5 * Sebastien Pouliot <sebastien@ximian.com>
7 * Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
8 * Licensed under the MIT license. See LICENSE file in the project root for full license information.
11 #ifndef _MONO_METADATA_SECURITY_MANAGER_H_
12 #define _MONO_METADATA_SECURITY_MANAGER_H_
17 #include "metadata-internals.h"
18 #include "domain-internals.h"
19 #include "tokentype.h"
23 #include "reflection.h"
24 #include "tabledefs.h"
29 #define MONO_ECMA_KEY_LENGTH 16
30 #define MONO_PUBLIC_KEY_HEADER_LENGTH 32
31 #define MONO_MINIMUM_PUBLIC_KEY_LENGTH 48
32 #define MONO_DEFAULT_PUBLIC_KEY_LENGTH 128
34 #define MONO_PUBLIC_KEY_BIT_SIZE(x) ((x - MONO_PUBLIC_KEY_HEADER_LENGTH) << 3)
37 MONO_METADATA_SECURITY_OK
= 0x00,
38 MONO_METADATA_INHERITANCEDEMAND_CLASS
= 0x01,
39 MONO_METADATA_INHERITANCEDEMAND_METHOD
= 0x02
43 MONO_SECURITY_MODE_NONE
,
44 MONO_SECURITY_MODE_CORE_CLR
,
50 MonoClass
*securitymanager
; /* System.Security.SecurityManager */
51 } MonoSecurityManager
;
53 gboolean
mono_is_ecma_key (const char *publickey
, int size
);
54 MonoMethod
* mono_get_context_capture_method (void);
56 MonoSecurityManager
* mono_security_manager_get_methods (void);
59 void mono_security_set_mode (MonoSecurityMode mode
);
60 MonoSecurityMode
mono_security_get_mode (void);
63 MonoBoolean
ves_icall_System_Security_SecurityManager_get_SecurityEnabled (void);
64 void ves_icall_System_Security_SecurityManager_set_SecurityEnabled (MonoBoolean value
);
66 #ifndef DISABLE_SECURITY
67 #define mono_security_core_clr_enabled() (mono_security_get_mode () == MONO_SECURITY_MODE_CORE_CLR)
69 #define mono_security_core_clr_enabled() (FALSE)
72 #endif /* _MONO_METADATA_SECURITY_MANAGER_H_ */