我在内核 [3.9.11] 的加密 API 中开发了一个用于 IPsec 的单块对称密码 [CIPHER] 算法。将 .ko 模块加载到内核后,我可以在 /proc/crypto 中看到我的算法信息。
现在问题来了,当我想在两台 linux 机器之间建立 IPsec 隧道时,我得到了错误
"tun/1x1": requested kernel enc ealg_id=254 not present
当我搜索代码以查明问题时,发现有一个功能xfrm_probe_algs
,它的功能是检查加密算法的可用性。在这个函数中,行
status = crypto_has_ablkcipher(ealg_list[i].name, 0, 0);
似乎只检查“异步多块密码”。但是,我编写的算法属于“单块对称密码”类型,并且由于这个问题,我的算法无法正常工作。我想知道是否有任何方法可以在 3.9.11 内核的 IPsec 隧道中使用我的单块对称密码。
此致