我试图用“arc4”算法来加密来自模块的任意数据流 流。但我很担心我应该如何 接近后援实现一点点无知是使用arc4算法的linux内核加密子系统
$find . -type f -name '*.[ch]' -exec grep 'EXPORT_SYMBOL' {} \; | grep
'rc4'
返回任何内容。所以我想,没有外部接口
static void arc4_crypt(struct crypto_tfm *tfm, u8 *out, const u8 *in).
寄存器功能被定义为
static int __init arc4_init(void)
{
return crypto_register_alg(&arc4_alg);
}
而且有大量struct crypto_alg一个静态实例。通过这些提示,我得出结论,我需要更高层次的接口来访问这个算法。
只有这似乎在我的案件的相关功能是:
EXPORT_SYMBOL_GPL(crypto_alloc_tfm);
从:
void *crypto_alloc_tfm(const char *alg_name,
const struct crypto_type *frontend, u32 type, u32 mask)
返回void *这是我的第一个问题。
而且还从
crypto_alloc_tfm()将首先尝试找到一个已经加载 算法。如果失败并且内核支持动态加载模块,则它将尝试加载同名或 别名的模块。如果失败,它会发送一个查询到任何加载的加密管理器来构建一个即时算法。关于随后与新变换相关联的算法,获取 的refcount。
返回的变换属于非确定类型。大多数人 应使用更具体的分配函数之一,如 crypto_alloc_blkcipher。
但没有具体的crypto_alloc_*我能找到这将为ARC4 算法。
第二个问题:
在struct crypto_type用手寻找可怕到 实例化。
最后,如果得到一个tfm实例,我如何使用它来做实际的加密?
2012-07-24
Aftnix
+0
是否有您要使用RC4在现代特殊原因加密? –
2012-07-24 13:34:58
+0
它的重量非常轻。 –
2012-07-24 13:46:48