当我检查/ proc /encryption它显示我:
abhi@ubuntu:/proc$ cat crypto name : stdrng driver : krng module : kernel priority : 200 refcnt : 1 selftest : passed type : rng seedsize : 0 name : md5 driver : md5-generic module : kernel priority : 0 refcnt : 1 selftest : passed type : shash blocksize : 64 digestsize : 16
我需要为我的一个项目使用aes256。
有人可以指出我可以如何将这个algorithm添加到encryptionAPI或有任何其他方式,我可以在(Ubuntu的10.4,2.6.32-35)实现这一点。
是否有一个支持(默认)的algorithm是用cryptoapi内核2.6实现的列表?
Abhi,内核加密API 是在2002年为协议创建的 ,它需要内核的加密(在内核模式下,当你没有可靠的方式使用用户空间加密时):
尽管最初旨在支持IPSec,但是API已经被设计为通用设施,其潜在的应用包括加密文件,加密文件系统,强文件系统完整性,随机字符设备(/ dev / random),网络文件系统安全性(例如,CIFS)以及其他需要加密技术的内核网络服务。
所以,如果你正在用户空间中工作,并没有计划作为新的FS或新的网络堆栈部分进入内核,那么使用用户空间库进行加密更容易和更便携。 用户空间lib可能使用或不使用内核API来处理某些密码,但是可能会使用用户空间实现。 有很多这样的libs,例如openssl, Libgcrypt等。一些巨大的框架,比如Qt也可能包含一些流行的加密。
要用新的算法在内核中扩展cryptoapi,你应该为你的内核(作为模块或作为内核二进制的一部分)实现和编译这个算法。 要查找为您的内核编译的模块的名称,请尝试使用ls /lib/modules/*/*/arch/*/crypto/ /lib/modules/*/*/crypto/
那么你可以调用例如modprobe aes_generic
或modprobe aes-x86_64
在API中加载额外的加密模块。
modprobe aes-x86_64
我有:
# cat /proc/crypto |grep aes name : aes driver : aes-asm module : aes_x86_64 name : aes driver : aes-generic module : aes_generic
您可以以aes-generic.c为例