摘要: 我們前面已經(jīng)寫(xiě)了一篇文章剖析eSNACC哈希結(jié)構(gòu)的設(shè)計(jì)和實(shí)現(xiàn) 剖析eSNACC哈希結(jié)構(gòu)的設(shè)計(jì)和實(shí)現(xiàn) ,而本篇我們專(zhuān)門(mén)剖析eSNACC中的hash函數(shù)。
閱讀全文
摘要: 本文剖析hash.h/c,從源代碼來(lái)剖析eSNACC哈希結(jié)構(gòu)的設(shè)計(jì)和實(shí)現(xiàn)。
為什么要在這里剖析hash呢?一個(gè)順理成章的理由是:我們準(zhǔn)備剖析eSNACC對(duì)ANY(s)類(lèi)型的編碼和解碼,可是ANY的實(shí)現(xiàn)依賴(lài)于hash,所以我們就需要先把這條路打通了。O(∩_∩)O哈哈~是不是很有說(shuō)服力呀?
好,閑話少述,言規(guī)正傳。我們知道hash對(duì)一個(gè)系統(tǒng)而言,一般都是一個(gè)很有價(jià)值的底層基礎(chǔ)設(shè)施。從作用上來(lái)說(shuō),他實(shí)現(xiàn)的優(yōu)劣極大的影響著整個(gè)系統(tǒng)的性能。從技術(shù)上來(lái)說(shuō),也是很能體現(xiàn)含金量的一個(gè)模塊。所以,對(duì)eSNACC實(shí)現(xiàn)的這個(gè)寶藏,我們下定決心要刨根問(wèn)底、直搗黃龍!
閱讀全文
摘要: 本文內(nèi)容轉(zhuǎn)自于http://www.cse.yorku.ca/~oz/hash.html。因?yàn)樗麑?duì)給出了幾個(gè)非常好的hash函數(shù),而其中的sdbm就是我們將剖析的eSNACC用的hash的原型。文章是英文的,但是通俗易懂,就摘錄在此了。
閱讀全文
摘要: 首先讓我們來(lái)學(xué)習(xí)一下ASN.1的Constructors類(lèi)型 。
然后我們來(lái)研究eSNACC的C代碼生成和C運(yùn)行時(shí)庫(kù)對(duì)ASN.1 constructors的處理辦法。
閱讀全文
摘要: 本文剖析asn-oid.h/c,從源代碼來(lái)學(xué)習(xí)eSNACC對(duì)OBJECT IDENTIFIER的編碼和解碼。
在研究代碼之前,我們先來(lái)說(shuō)明什么是OBJECT IDENTIFIER。
閱讀全文
摘要: eSNACC運(yùn)行時(shí)庫(kù)直接支持各種各樣的ASN.1字符串定義。這包括PrintableString, BMPString, TeletexString, NumericString, IA5String, UniversalString, UTF8String, VisibleString。其做法也大同小異,所有這些字符串都是在eSNACC的字節(jié)串基礎(chǔ)上typedef過(guò)來(lái)的,只是根據(jù)各自特性的不同而在編碼解碼時(shí)有某些判斷,或者加了某些判斷函數(shù)等。只有UTF8String相對(duì)比較復(fù)雜一些。讓我們一起來(lái)分析一下吧。
閱讀全文
摘要: 本文剖析asn-octs.h/c,從源代碼來(lái)學(xué)習(xí)eSNACC對(duì)OCTET STRING的編碼和解碼。
eSNACC對(duì)字節(jié)串OCTET STRING的處理與上一篇描述的比特串的方法類(lèi)似,而且字節(jié)串的處理更加簡(jiǎn)單。所以在上一篇的基礎(chǔ)上,我們專(zhuān)門(mén)分析上一篇中對(duì)連接型串解碼時(shí)沒(méi)有展開(kāi)講的函數(shù),也作為上一篇的補(bǔ)充。
閱讀全文
摘要: 本文剖析asn-bits.h/c,從源代碼來(lái)學(xué)習(xí)eSNACC對(duì)BIT STRING的編碼和解碼。
比特字符串的編碼和解碼比較復(fù)雜,而且我認(rèn)為還存在一些問(wèn)題,我們來(lái)仔細(xì)分析一下代碼吧。
閱讀全文
摘要: 本文剖析asn-int.h/c,從源代碼來(lái)學(xué)習(xí)eSNACC對(duì)INTEGER的編碼和解碼。
eSNACC中的整形與上一篇所講的布爾型一樣,也很簡(jiǎn)單,不過(guò)代碼中還是有一點(diǎn)有趣的地方。
閱讀全文