以x_algor.c/x_val.c等为代表的一系列x509处理的通用结构的文件,最终定义的
new/free/i2d/d2i/dup等函数的实现,实际是依赖于tasn_xxx.c文件
tasn_new.c:定义了new函数
tasn_fre.c:定义了free函数
tasn_enc.c:定义了i2d函数
tasn_dec.c:定义了d2i函数
tasn_prn.c:定义了print函数
tasn_typ.c:定义了一些基本的ASN类型操作函数
tasn_utl.c:定义了以上文件中需要的一些工具函数
在实际的操作中,抽象出了item函数,在内部,又抽象出两种类型的函数,一是
template函数,一是primitive函数。template函数最终又是调用item进一步分析模板
里的数据。
以X509_ALGOR_new为例,两个变量algorithm和parameter。而X509_ALGOR_it这个
条目里存在两个模板条目,因此中调用ASN1_item_new时实际又调用ASN1_template_new
去创建内部的模板条目(algorithm和parameter)。
ASN1_template_new时,又会进一步分析该ASN1_ITEM条目,本例中algorithm,最
后调用了ASN1_primitive_new去创建一个object。
本文介绍了一套X509处理的通用结构实现方式,通过多个源文件如tasn_new.c和tasn_dec.c等,定义了new、free、i2d、d2i等核心函数,并探讨了抽象出的item、template和primitive函数在X509_ALGOR_new等场景中的应用。
2291

被折叠的 条评论
为什么被折叠?



