linux4.14 加密框架 —— crypto算法模板以及CBC算法模板实例

目录

1. 简介

2. crypto_cbc_create

2.1 crypto_get_attr_type

2.2 crypto_attr_alg_name

 2.3 struct crypto_spawn

2.3.1 skcipher_instance_ctx

 2.3.2 crypto_init_spawn

2.4 其他参数设置

2.5 skcipher_register_instance

2.5.1 skcipher_prepare_alg

2.5.2 crypto_register_instance


1. 简介

      在加密框架中,将根据算法模式(即算法模板)和基础算法动态创建的算法定义为算法模板实例,数据结构为struct crypto_instance,在include\crypto\algapi.h中定义如下所示。

struct crypto_instance {
	struct crypto_alg alg;

	struct crypto_template *tmpl;
	struct hlist_node list;

	void *__ctx[] CRYPTO_MINALIGN_ATTR;
};

      算法模板实例数据结构为struct crypto_instance各成员变量含义如下所示:

1) alg:算法模板实例对应的算法说明。
2) tmpl:算法模板实例使用的算法模板。
3) list:算法模板实例在算法模板的实例哈希链表中对应的节点。
4) __ctx:算法模板实例的上下文。当前只指向crypto_spawn,我个人理解可能是架构设计者考虑到未来扩展性,就将crypto_spawn与crypto_instance拆分开来了。

      由算法模板实例数据结构定义,算法模板实例也是一种算法,如分组算法根据算法模板(如CBC模式)创建的块加密算法。

      这个结构体是代表kernel通过template动态创建的算法实例,并且会与crypto_template相关联,可以看到这里的alg并不是个指针。它是通过template

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值