crypto core是最基本骨架 ,它提供crypto的核心组件(包括crypto_alg,crypto_template的管理,cryptd内核线程等);基于crypto core,内核实现了8类常用的算法,DRBG伪随机数算法,Hash算法,SKCIPHER对称加解密算法,AKCIPHER非对称加解密算法,AEAD认证加密算法,HMAC算法,COMPRESS压缩算法,KPP密钥协商算法。 一些用于secure的硬件模块...
skcipher_request_set_crypt(req,sg_in, sg_out, cipherlen, 0); crypto_skcipher_decrypt(req); skcipher_request_free(req); crypto_free_cipher(tfm); } 以上代码使用AES算法对输入的密文进行解密。它的实现类似于加密函数,只是把加密请求改为解密请求,即将crypto_skcipher_encrypt函数改为crypto_skcipher_decry...
图1.2 kernel crypto框架 crypto core是最基本骨架 ,它提供crypto的核心组件(包括crypto_alg,crypto_template的管理,cryptd内核线程等);基于crypto core,内核实现了8类常用的算法,DRBG伪随机数算法,Hash算法,SKCIPHER对称加解密算法,AKCIPHER非对称加解密算法,AEAD认证加密算法,HMAC算法,COMPRESS压缩算法,KPP密钥协商算法。
This patch adds code to the skcipher/lskcipher API to make use of the internal state if present. In particular, the skcipher lskcipher wrapper will allocate a buffer for the IV/state and feed that to the underlying lskcipher algorithm. Signed-off-by: Herbert Xu <herbert@gondor.apana.org....
ret = encrypt ? crypto_skcipher_encrypt(subreq) : crypto_skcipher_decrypt(subreq); skcipher_request_zero(subreq);returnret; }returntmpl->qce->async_req_enqueue(tmpl->qce, &req->base); } 开发者ID:AlexShiLucky,项目名称:linux,代码行数:29,代码来源:ablkcipher.c ...
5)以异步方式调用crypto_skcipher_encrypt对req做加密处理,线程在此会block一段时间,直到req请求被处理完成。因此不能在中断上下文中使用。 3.算法自检 出于安全性考虑,FIPS等相关标准要求在系统开机时必须做算法正确性自检,如果自检失败,则停止系统的启动;因此算法自检这部分自然也在框架中实现了。(源码位于:kernel/cr...
{ crypto_free_skcipher(tfm); } static int aes_encrypt(const void *input, void *output, size_t len, const u8 *key, const u8 *iv) { struct scatterlist sg_in, sg_out; struct skcipher_request req; int ret; if (!tfm) return -EINVAL; ret = crypto_skcipher_setkey(tfm, key, AES_...
skcipher_request_set_tfm(subreq, child); skcipher_request_set_callback(subreq, req->base.flags, req->base.complete, req->base.data); skcipher_request_set_crypt(subreq, req->src, req->dst, req->cryptlen, iv);returncrypto_skcipher_encrypt(subreq); ...
return crypto_init_skcipher_ops_ablkcipher(tfm);skcipher->setkey = alg->setkey; skcipher->encrypt = alg->encrypt; skcipher->decrypt = alg->decrypt; skcipher->ivsize = alg->ivsize; skcipher->keysize = alg->max_keysize;if (alg->exit) ...
5)以异步方式调用crypto_skcipher_encrypt对req做加密处理,线程在此会block一段时间,直到req请求被处理完成。因此不能在中断上下文中使用。 3.算法自检 出于安全性考虑,FIPS等相关标准要求在系统开机时必须做算法正确性自检,如果自检失败,则停止系统的启动;因此算法自检这部分自然也在框架中实现了。(源码位于:kernel/cr...