当前位置: 技术问答>linux和unix
设备驱动问题,高手帮忙
来源: 互联网 发布时间:2016-05-04
本文导语: 现在在做des解密算法。从网上搜了一圈没有发现像样的des算法源码。 发现linux内核自带des加密算法。找到des.c和des.h但是内核是一设备驱动的形式提供的。 我不知道是不是接口。反正不是文件操作。代码如下 static str...
现在在做des解密算法。从网上搜了一圈没有发现像样的des算法源码。
发现linux内核自带des加密算法。找到des.c和des.h但是内核是一设备驱动的形式提供的。
我不知道是不是接口。反正不是文件操作。代码如下
static struct crypto_alg des_alg = {
.cra_name = "des",
.cra_flags = CRYPTO_ALG_TYPE_CIPHER,
.cra_blocksize = DES_BLOCK_SIZE,
.cra_ctxsize = sizeof(struct des_ctx),
.cra_module = THIS_MODULE,
.cra_list = LIST_HEAD_INIT(des_alg.cra_list),
.cra_u = { .cipher = {
.cia_min_keysize = DES_KEY_SIZE,
.cia_max_keysize = DES_KEY_SIZE,
.cia_setkey = des_setkey,
.cia_encrypt = des_encrypt,
.cia_decrypt = des_decrypt } }
};
static struct crypto_alg des3_ede_alg = {
.cra_name = "des3_ede",
.cra_flags = CRYPTO_ALG_TYPE_CIPHER,
.cra_blocksize = DES3_EDE_BLOCK_SIZE,
.cra_ctxsize = sizeof(struct des3_ede_ctx),
.cra_module = THIS_MODULE,
.cra_list = LIST_HEAD_INIT(des3_ede_alg.cra_list),
.cra_u = { .cipher = {
.cia_min_keysize = DES3_EDE_KEY_SIZE,
.cia_max_keysize = DES3_EDE_KEY_SIZE,
.cia_setkey = des3_ede_setkey,
.cia_encrypt = des3_ede_encrypt,
.cia_decrypt = des3_ede_decrypt } }
};
请问这是不是设备驱动的接口啊?我在程序里怎么调用这些设备驱动啊。初学linux。很多不明白的地方。希望高手们给予指点。
发现linux内核自带des加密算法。找到des.c和des.h但是内核是一设备驱动的形式提供的。
我不知道是不是接口。反正不是文件操作。代码如下
static struct crypto_alg des_alg = {
.cra_name = "des",
.cra_flags = CRYPTO_ALG_TYPE_CIPHER,
.cra_blocksize = DES_BLOCK_SIZE,
.cra_ctxsize = sizeof(struct des_ctx),
.cra_module = THIS_MODULE,
.cra_list = LIST_HEAD_INIT(des_alg.cra_list),
.cra_u = { .cipher = {
.cia_min_keysize = DES_KEY_SIZE,
.cia_max_keysize = DES_KEY_SIZE,
.cia_setkey = des_setkey,
.cia_encrypt = des_encrypt,
.cia_decrypt = des_decrypt } }
};
static struct crypto_alg des3_ede_alg = {
.cra_name = "des3_ede",
.cra_flags = CRYPTO_ALG_TYPE_CIPHER,
.cra_blocksize = DES3_EDE_BLOCK_SIZE,
.cra_ctxsize = sizeof(struct des3_ede_ctx),
.cra_module = THIS_MODULE,
.cra_list = LIST_HEAD_INIT(des3_ede_alg.cra_list),
.cra_u = { .cipher = {
.cia_min_keysize = DES3_EDE_KEY_SIZE,
.cia_max_keysize = DES3_EDE_KEY_SIZE,
.cia_setkey = des3_ede_setkey,
.cia_encrypt = des3_ede_encrypt,
.cia_decrypt = des3_ede_decrypt } }
};
请问这是不是设备驱动的接口啊?我在程序里怎么调用这些设备驱动啊。初学linux。很多不明白的地方。希望高手们给予指点。
|
继续在你的内核录中查找“crypto_register_alg”函数,跟踪进去,我看了你贴的那个代码,内核是将这些结构体通过一些函数注册进了另一个结构体内,所以你需要跟踪crypto_register_alg函数
|
关注
|
看看内核目录里的 Documentation/crypto/api-intro.txt
然后找个驱动看看如何用的
然后找个驱动看看如何用的
|
这只是几个结构体。
去找本 LDD3 看吧,你的问题太笼统,你也缺乏linux内核编程的概念。
这问题不是三言两语就能说清楚的。
去找本 LDD3 看吧,你的问题太笼统,你也缺乏linux内核编程的概念。
这问题不是三言两语就能说清楚的。
|
帮顶
|
帮顶
|
路过