Je ne suis pas familier avec le codage de module et j'ai besoin d'exécuter un calcul qui utilise la bibliothèque GMP dans un module.GMP dans le noyau Module
Donc la première question: est-il généralement possible d'exécuter GMP dans le noyau? Pour les tests, j'ai écrit ce module:
#include <linux/init.h>
#include <linux/module.h>
#include <gmp.h>
int hallo_init(void)
{
mpz_t testFactor;
mpz_init(testFactor, NULL);
mpz_set_str(testFactor, "19", 10);
int length = (int) mpz_sizeinbase(testFactor,2);
printk(KERN_ALERT "That is testFactor: %x \n",length);
return 0;
}
void hallo_exit(void)
{
printk(KERN_ALERT "exit \n");
}
module_init(hallo_init);
module_exit(hallo_exit);
je lance avec la commande suivante:
sudo make -C /lib/modules/$(uname -r)/build M=$PWD modules -lgmp
Le makefile se compose de
obj-m := gmpFile.o
J'ai aussi essayé d'utiliser le -lgmp dans le fichier makefile:
obj-m := halloGmp.o
ccflags-y := -lgmp
Mais je reçois toujours une erreur fatale: gmp.h: No such file or directory
Des suggestions? Serait reconnaissant de l'aide!
C'est clairement un problème XY. Si vous avez des calculs excessifs, faites-les dans l'espace utilisateur, les modules du noyau doivent être limités au minimum requis. En tant que sidenote: '% x' prend un comportement' unsigned', pas un 'int' -> indéfini. – Olaf
Malheureusement, je ne peux pas les faire dans l'espace utilisateur. Enfin je veux remplacer un enrôlement (ECDH) par ses contre-mesures contre une certaine attaque avec ma mise en œuvre afin d'analyser la sécurité de certaines connexions. Par conséquent, j'ai besoin d'exécuter mon code dans le noyau – Balltasar
Il existe d'autres façons de tester le cryptage, par exemple. en utilisant des sockets raw, Fuse, etc. GMP ne convient pas pour les algorithmes de cryptage de toute façon. – Olaf