一、简述
主要编写了一个测试验证PadLock AES内核接口的验证模块。应用PadLock AES内核接口实现加密解密。本文提供了应用该模块的方法、步骤、原理及源码。
二、操作环境
操作系统 |
mint17 |
内核 |
3.8.0 |
编译器 |
gcc4.7.3 |
CPU |
VIA Nano X2 L4530 @ 1.6+ GHz |
内存 |
4G |
多核 |
2个 |
三、主要原理
Linux内核有关于加密的函数的接口,主要在cryto文件夹目录中。有AES、SHA等多种算法的实现接口。网上有很多介绍Linux内核关于加密算法框架的文章,通过阅读Linux内核源码,编写了一个使用AES内核函数库的内核模块。
使用AES加密算法主要有4个函数:
crypto_blkcipher_setkey
crypto_blkcipher_set_iv
crypto_blkcipher_encrypt
crypto_blkcipher_decrypt
只有这几个函数配置正确,那么就可以正常使用Linux内核的AES加密库了。下面介绍这几个函数的用法。
static inline int crypto_blkcipher_setkey(struct crypto_blkcipher *tfm,
const u8 *key, unsigned int keylen)
该函数主要是用于设置加密关键字key。这里需要说明下AES算法的如何应用,对于算法层级,AES通过key(