摘要: 我们前面已经写了一篇文章剖析eSNACC哈希结构的设计和实现 剖析eSNACC哈希结构的设计和实现 ,而本篇我们专门剖析eSNACC中的hash函数。
阅读全文
摘要: 本文剖析hash.h/c,从源代码来剖析eSNACC哈希结构的设计和实现。
为什么要在这里剖析hash呢?一个顺理成章的理由是:我们准备剖析eSNACC对ANY(s)类型的编码和解码,可是ANY的实现依赖于hash,所以我们就需要先把这条路打通了。O(∩_∩)O哈哈~是不是很有说服力呀?
好,闲话少述,言规正传。我们知道hash对一个系统而言,一般都是一个很有价值的底层基础设施。从作用上来说,他实现的优劣极大的影响着整个系统的性能。从技术上来说,也是很能体现含金量的一个模块。所以,对eSNACC实现的这个宝藏,我们下定决心要刨根问底、直捣黄龙!
阅读全文
摘要: 本文内容转自于http://www.cse.yorku.ca/~oz/hash.html。因为他对给出了几个非常好的hash函数,而其中的sdbm就是我们将剖析的eSNACC用的hash的原型。文章是英文的,但是通俗易懂,就摘录在此了。
阅读全文
摘要: 首先让我们来学习一下ASN.1的Constructors类型 。
然后我们来研究eSNACC的C代码生成和C运行时库对ASN.1 constructors的处理办法。
阅读全文
摘要: 本文剖析asn-oid.h/c,从源代码来学习eSNACC对OBJECT IDENTIFIER的编码和解码。
在研究代码之前,我们先来说明什么是OBJECT IDENTIFIER。
阅读全文
摘要: eSNACC运行时库直接支持各种各样的ASN.1字符串定义。这包括PrintableString, BMPString, TeletexString, NumericString, IA5String, UniversalString, UTF8String, VisibleString。其做法也大同小异,所有这些字符串都是在eSNACC的字节串基础上typedef过来的,只是根据各自特性的不同而在编码解码时有某些判断,或者加了某些判断函数等。只有UTF8String相对比较复杂一些。让我们一起来分析一下吧。
阅读全文
摘要: 本文剖析asn-octs.h/c,从源代码来学习eSNACC对OCTET STRING的编码和解码。
eSNACC对字节串OCTET STRING的处理与上一篇描述的比特串的方法类似,而且字节串的处理更加简单。所以在上一篇的基础上,我们专门分析上一篇中对连接型串解码时没有展开讲的函数,也作为上一篇的补充。
阅读全文
摘要: 本文剖析asn-bits.h/c,从源代码来学习eSNACC对BIT STRING的编码和解码。
比特字符串的编码和解码比较复杂,而且我认为还存在一些问题,我们来仔细分析一下代码吧。
阅读全文
摘要: 本文剖析asn-int.h/c,从源代码来学习eSNACC对INTEGER的编码和解码。
eSNACC中的整形与上一篇所讲的布尔型一样,也很简单,不过代码中还是有一点有趣的地方。
阅读全文