在用户空间中使用内核函数

时间:2014-04-16 13:16:45

标签: c++ kernel

我目前正在尝试使用

的功能
/usr/src/linux/crypto/aes_generic.c 

在用户空间程序中 我想编码已分配的内存并使用上述文件的ecnrypt函数。

如何在用户空间程序中使用这些内核函数?

我尝试使用

在我的用户空间程序中包含所需的内核头文件
-I /usr/src/linux/include/

但是当我得到asm / irqflags.h,文件或目录未找到的错误时,我得到了很大的帮助。

这里是包含

#include <asm-generic/irqflags.h> 

我没有asm目录,其他两个标题包含上述错误,并且asm-generic as directory

提前致谢

2 个答案:

答案 0 :(得分:1)

User-space interface for Crypto API。因此,您可以使用AF_ALG接口访问内核加密API(在Linux内核版本2.6.38之后)。

以下是cryptsetup源代码中的一些工作示例。

答案 1 :(得分:0)

Cryptodev-linux module允许您通过/dev/crypto从用户空间访问Linux内核加密驱动程序。可以找到例子,例如here。优点是您可以从其可能使用的硬件加速中受益。

否则,您需要使用AES库的许多衍生产品之一来链接您的用户应用程序。有关列表,请参阅here