是否可以将openssl移植到Linux驱动程序中?

时间:2018-05-04 03:57:44

标签: encryption openssl linux-device-driver embedded-linux

我正在使用一个简化的嵌入式Linux。因为我需要使用SAE而且我需要openssl。但是,我被要求不在用户空间中实现它。所以我尝试在linux驱动程序中移植openssl。我知道这听起来很疯狂..

非常非常痛苦。我想知道是否有其他方法,所以我可以在驱动程序中使用libcrypt.so?我需要包含一些头文件并使用一些函数来完成SAE加密。

1 个答案:

答案 0 :(得分:2)

我被许多人要求多次这样做,他们不了解OpenSSL是如何组合在一起的。对于大约2002年,2003年的非常旧版本的OpenSSL,可能会这样做。

现代版本的OpenSSL依赖于很多只存在于用户空间的东西,例如use of PThreads librarycustom memory allocation。将这些内容移植到内核空间将是一项巨大的任务。

此外,OpenSSL中的许多代码都有lot of sequential IO。这个东西需要完全重写内核空间。

与openSSL具有相同程度的偏执,这很难正确实现。并且偏执是有道理的,在openSSL存在的过程中有许多漏洞利用。加密代码是一个非常高价值的目标,所以采取任何捷径只是要求麻烦。

如果您需要加密算法,请使用kernel crypto API。它几乎从OpenSSL中提取代码。对于在用户空间中具有守护进程的更复杂的事情,可以为您运行SSL协议。