1 /** 2 * \file 3 */ 4 5 #ifndef __MONO_METADATA_VERIFY_INTERNAL_H__ 6 #define __MONO_METADATA_VERIFY_INTERNAL_H__ 7 8 #include <glib.h> 9 #include <mono/metadata/metadata.h> 10 #include <mono/utils/mono-compiler.h> 11 #include <mono/utils/mono-error.h> 12 13 G_BEGIN_DECLS 14 15 typedef enum { 16 MONO_VERIFIER_MODE_OFF, 17 MONO_VERIFIER_MODE_VALID, 18 MONO_VERIFIER_MODE_VERIFIABLE, 19 MONO_VERIFIER_MODE_STRICT 20 } MiniVerifierMode; 21 22 void mono_verifier_set_mode (MiniVerifierMode mode); 23 void mono_verifier_enable_verify_all (void); 24 25 gboolean mono_verifier_is_enabled_for_image (MonoImage *image); 26 gboolean mono_verifier_is_enabled_for_method (MonoMethod *method); 27 gboolean mono_verifier_is_enabled_for_class (MonoClass *klass); 28 29 gboolean mono_verifier_is_method_full_trust (MonoMethod *method); 30 gboolean mono_verifier_is_class_full_trust (MonoClass *klass); 31 gboolean mono_verifier_class_is_valid_generic_instantiation (MonoClass *klass); 32 gboolean mono_verifier_is_method_valid_generic_instantiation (MonoMethod *method); 33 34 gboolean mono_verifier_verify_class (MonoClass *klass); 35 36 GSList* mono_method_verify_with_current_settings (MonoMethod *method, gboolean skip_visibility, gboolean is_fulltrust); 37 38 gboolean mono_verifier_verify_pe_data (MonoImage *image, GSList **error_list); 39 gboolean mono_verifier_verify_cli_data (MonoImage *image, GSList **error_list); 40 gboolean mono_verifier_verify_table_data (MonoImage *image, GSList **error_list); 41 42 gboolean mono_verifier_verify_full_table_data (MonoImage *image, GSList **error_list); 43 44 gboolean mono_verifier_verify_field_signature (MonoImage *image, guint32 offset, GSList **error_list); 45 gboolean mono_verifier_verify_method_header (MonoImage *image, guint32 offset, GSList **error_list); 46 gboolean mono_verifier_verify_method_signature (MonoImage *image, guint32 offset, MonoError *error); 47 gboolean mono_verifier_verify_standalone_signature (MonoImage *image, guint32 offset, GSList **error_list); 48 gboolean mono_verifier_verify_typespec_signature (MonoImage *image, guint32 offset, guint32 token, GSList **error_list); 49 gboolean mono_verifier_verify_methodspec_signature (MonoImage *image, guint32 offset, GSList **error_list); 50 gboolean mono_verifier_verify_string_signature (MonoImage *image, guint32 offset, GSList **error_list); 51 gboolean mono_verifier_verify_cattr_blob (MonoImage *image, guint32 offset, GSList **error_list); 52 gboolean mono_verifier_verify_cattr_content (MonoImage *image, MonoMethod *ctor, const guchar *data, guint32 size, GSList **error_list); 53 gboolean mono_verifier_is_sig_compatible (MonoImage *image, MonoMethod *method, MonoMethodSignature *signature); 54 gboolean mono_verifier_verify_memberref_method_signature (MonoImage *image, guint32 offset, GSList **error_list); 55 gboolean mono_verifier_verify_memberref_field_signature (MonoImage *image, guint32 offset, GSList **error_list); 56 57 gboolean mono_verifier_verify_typeref_row (MonoImage *image, guint32 row, MonoError *error); 58 gboolean mono_verifier_verify_methodimpl_row (MonoImage *image, guint32 row, MonoError *error); 59 gboolean mono_verifier_is_signature_compatible (MonoMethodSignature *target, MonoMethodSignature *candidate); 60 G_END_DECLS 61 62 #endif /* __MONO_METADATA_VERIFY_INTERNAL_H__ */ 63 64