#include "object.h"
#include "metadata-internals.h"
+#include "domain-internals.h"
#include "tokentype.h"
#include "threads.h"
#include "marshal.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,
MonoClass *securitymanager; /* System.Security.SecurityManager */
MonoMethod *demand; /* SecurityManager.InternalDemand */
MonoMethod *demandchoice; /* SecurityManager.InternalDemandChoice */
+ MonoMethod *demandunmanaged; /* SecurityManager.DemandUnmanaged */
MonoMethod *inheritancedemand; /* SecurityManager.InheritanceDemand */
MonoMethod *inheritsecurityexception; /* SecurityManager.InheritanceDemandSecurityException */
MonoMethod *linkdemand; /* SecurityManager.LinkDemand */
MonoMethod *linkdemandfulltrust; /* SecurityManager.LinkDemandFullTrust */
MonoMethod *linkdemandunmanaged; /* SecurityManager.LinkDemandUnmanaged */
MonoMethod *linkdemandsecurityexception;/* SecurityManager.LinkDemandSecurityException */
- MonoClass *aptc; /* System.Security.AllowPartiallyTrustedCallersAttribute */
+
+ MonoClass *allowpartiallytrustedcallers; /* System.Security.AllowPartiallyTrustedCallersAttribute */
+ MonoClass *suppressunmanagedcodesecurity; /* System.Security.SuppressUnmanagedCodeSecurityAttribute */
} MonoSecurityManager;
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);
void mono_secman_inheritancedemand_method (MonoMethod *override, MonoMethod *base);