Linux kernel 如何将我自己的算法注册到用户模式应用程序的Linux crypto API

Linux kernel 如何将我自己的算法注册到用户模式应用程序的Linux crypto API,linux-kernel,openssl,hardware-acceleration,cryptoapi,hsm,Linux Kernel,Openssl,Hardware Acceleration,Cryptoapi,Hsm,我是Linux内核(和加密API)的新手。目前,我正在将硬件加密应用于用户模式应用程序,如OpenSSL等。我搜索了很多,但仍然不太清楚 我的第一个问题是,以下是我应该做的全部吗 首先,我应该将自己的算法注册到Linux内核的加密API中 然后,我需要通过AF_ALG或cryptodev(不是首选,因为它是GPL许可的)从OpenSSL等调用上面注册的算法 在第一步中,我应该在哪里部署注册码(破解linux内核或在用户模式应用程序中部署它?),是否有任何简单的实现示例 我的算法是一些与硬件通

我是Linux内核(和加密API)的新手。目前,我正在将硬件加密应用于用户模式应用程序,如OpenSSL等。我搜索了很多,但仍然不太清楚

我的第一个问题是,以下是我应该做的全部吗

  • 首先,我应该将自己的算法注册到Linux内核的加密API中
  • 然后,我需要通过AF_ALG或cryptodev(不是首选,因为它是GPL许可的)从OpenSSL等调用上面注册的算法
在第一步中,我应该在哪里部署注册码(破解linux内核或在用户模式应用程序中部署它?),是否有任何简单的实现示例

我的算法是一些与硬件通信以启动实际加密过程的API,包括对称/非对称加密和哈希/hmac。比如说,

uint32_t AES_ecb(uint32_t addr_src, uint32_t addr_dest, uint32_t length, uint8_t key_idx, uint8_t encORdec)
显然,它与最初的Crypto API接口有很大不同所以我的第二个问题是,为了减少包装(并提高速度),是否有必要修改此API以适应加密API(或者没有太多差异,因此我不需要联系供应商)


我已经搜索了很多关于Crypto API的信息(比如Crypto_alg和AF_alg的关键字),但是没有多少关于算法注册的详细信息。

同样的挣扎。很遗憾,这个话题没有引起注意。