X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=kernel%2Fmodule-verify.h;h=f4e3dc7d55fd42323bf3c8e2f636d8b0eecd85b2;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=fadbf9ec9b5adb436c49c4dac4709ddfcd81bc24;hpb=76828883507a47dae78837ab5dec5a5b4513c667;p=linux-2.6.git diff --git a/kernel/module-verify.h b/kernel/module-verify.h index fadbf9ec9..f4e3dc7d5 100644 --- a/kernel/module-verify.h +++ b/kernel/module-verify.h @@ -10,10 +10,12 @@ */ #include +#include #include +#ifdef CONFIG_MODULE_VERIFY struct module_verify_data { - struct crypto_tfm *digest; /* module signature digest */ + struct hash_desc hash; /* module signature digest */ const void *buffer; /* module buffer */ const Elf_Ehdr *hdr; /* ELF header */ const Elf_Shdr *sections; /* ELF section table */ @@ -33,5 +35,29 @@ struct module_verify_data { uint8_t csum; /* checksum of bytes representing a section */ }; +/* + * module-verify.c + */ extern int module_verify(const Elf_Ehdr *hdr, size_t size); + +/* + * module-verify-elf.c + */ +#ifdef CONFIG_MODULE_VERIFY_ELF +extern int module_verify_elf(struct module_verify_data *mvdata); +#else +#define module_verify_elf(m) (0) +#endif + +/* + * module-verify-sig.c + */ +#ifdef CONFIG_MODULE_SIG extern int module_verify_signature(struct module_verify_data *mvdata); +#else +#define module_verify_signature(m) (0) +#endif + +#else +#define module_verify(h, s) (0) +#endif