ASN.1 Tools for C
OSS?ASN.1 Tools for C是一個完整的開發工具包,用于使用ASN.1快速構建應用程序。 該產品具有功能強大的ASN.1:2015功能編譯器,具有ASN.1 BER,CER,DER,PER,OER,XER,CXER和E-XER編碼器/解碼器引擎的運行時庫, 并加快你的發展。 OSS ASN.1 Tools for C完全支持4G(LTE:RRC,S1和X2協議)。
編譯器采用ASN.1規范作為輸入,并生成C語言數據結構加上用于編碼和解碼的控制表。 OSS編譯器提供廣泛的診斷功能,以更大限度地減少開發時間和工作量。
一組運行庫提供ASN.1編碼和解碼功能以及對應用消息操作的有價值的輔助功能。 OSS運行時庫已移植到500+個平臺,包括許多嵌入式平臺。
支持JSON ER允許將ASN.1數據序列化為流行的JSON格式,并在JSON消息和ASN.1二進制消息之間進行轉換。
支持OER允許使用ASN.1二進制消息,其可以比BER和PER消息明顯更快地編碼/解碼,同時比PER消息略微緊湊。
?
支持E-XER允許生成XML與XML模式工具的輸出兼容。
?
如果你需要高速編碼/解碼和盡可能小的內存占用,不要再看了。 簡單地說,OSS ASN.1 Tools for C是您將找到的更優化的ASN.1工具。
ASN.1 Tools for C 的功能
?編碼器和解碼器的無與倫比的速度
?保證向后兼容性
?ASN.1 Studio,一個用于ASN.1規范編輯和消息分析的直觀IDE
?大(1024位)INTEGER(用于加密應用程序)
?無限值大小
?反映ASN.1語義的類型表示(4字節UniversalStrings,時間類)
?可擴展類型的編碼(未知擴展)
?通過自動解碼的可選自定義提高性能
?自動解碼任何種類的約束
?沒有實施限制; 從不重寫您的ASN.1以適應編碼限制
?延遲任何單個字段或類型的解碼
?文件和套接字支持
?級聯PDU支持
?內容約束(完全支持)
?為每個PDU生成XML樣式表或DTD
ASN.1 / C編譯器
ASN.1編譯器是一個獨立的程序,它接受一個或多個輸入文件,其中每個輸入文件包含一個或多個ASN.1模塊。 編譯器驗證規范是否有效,并生成:
?診斷消息和可選的輸出ASN.1列表
?易于使用的C語言數據結構包含在應用程序中
?由空間優化或精益編碼器/解碼器使用的控制表
?時間優化的編碼器/解碼器。
(精益編碼器解碼器在單獨的包中提供)
交叉編譯由用于C的ASN.1工具支持。交叉編譯使開發人員能夠生成可在與編譯器運行的操作系統不同的操作系統上使用的文件。 通過交叉編譯能力更大化您的投資。 了解有關交叉編譯的詳細信息。
編碼器/解碼器
OSS編碼器/解碼器提供了許多其他功能,ossEncode()和ossDecode()函數。 ossEncode()函數將編譯器生成的C數據結構中的應用程序放置的數據轉換為根據BER,CER,PER,OER,DER,XER,CXER或E-XER編碼的字節串。
另一個函數ossDecode()采用根據BER,CER,PER,OER,DER,XER,CXER或E-XER編碼的字節串,并執行編碼器的反向操作,結構,你可以輕松地操縱。
TLV打印實用程序
此實用程序(包括在C中的ASN.1工具)從輸入文件以ASCII或二進制格式進行BER或DER編碼,并將其以三種不同類型長度值(TLV)格式之一寫入輸出文件。
空間優化的編碼器/解碼器(SOED)是這樣命名的,因為它的重點是最小化使用存儲器,特別是當抽象語法大或復雜時。編碼器和解碼器都具有簡單而靈活的存儲器管理接口以及豐富的跟蹤,誤差捕獲,診斷和恢復能力。
時間優化的編碼器/解碼器(TOED)具有與空間優化的編碼器/解碼器相同的程序調用接口,并且執行相同的功能(除了它不具有任何跟蹤能力),但是其重點在于最小化CPU利用率。
OSS運行時庫已移植到500多個平臺,包括許多嵌入式平臺。
更多功能
運行時功能,支持PDU復制,比較,打印等,使您的應用程序開發過程更容易。
解釋ASN.1 API
在ASN.1 C工具中免費提供的解釋性ASN.1 API(IAAPI)可以與常規ASN.1 / C編譯器結合使用(當ASN.1模式在當時被編譯時當開發應用程序時),或者使用OSS的編譯和運行庫(CAGL)(當模式在運行時動態編譯時)。
IAAPI提供了獲得關于編譯的ASN.1模式的細節的信息的手段,包括它定義的類型(例如,具有多個組件的記錄),類型的字段(例如,整數和字符串)以及與之相關聯的約束(例如,小于10的整數)。這個信息允許開發人員編寫解析消息內容的代碼,當其結構在應用程序開發時是未知的時,這是特別有用的。同樣,開發人員可以編寫代碼來創建字段,一個新的消息,只要它的格式遵守編譯的模式。
IAAPI支持ASN.1 BER,CER,DER,PER,OER,XER,CXER和E-XER
標準符合性
這個強大的軟件完全符合下面列出的ASN.1標準:
?ITU-T X.696(ISO / IEC 8825-7) - 八位字節編碼規則(OER)基本協議
________________________________________
?ITU-T X.680(ISO / IEC 8824-1) - 抽象語法記法一(ASN.1):基本符號規范
________________________________________
?ITU-T X.681(ISO / IEC 8824-2) - 抽象語法記法一(ASN.1):信息對象規范
________________________________________
?ITU-T X.682(ISO / IEC 8824-3) - 抽象語法記法一(ASN.1):約束規范
________________________________________
?ITU-T X.683(ISO / IEC 8824-4) - 抽象語法符號一(ASN.1):ASN.1規范的參數化
________________________________________
?ITU-T X.690(ISO / IEC 8825-1) - ASN.1編碼規則:基本編碼規則(BER),規范編碼規則(CER)和區分編碼規則(DER)
________________________________________
?ITU-T X.691(ISO / IEC 8825-2) - ASN.1編碼規則:壓縮編碼規則(PER)
________________________________________
?ITU-T X.692(ISO / IEC 8825-3) - ASN.1編碼規則:編碼控制符號(ECN)
________________________________________
?ITU-T X.693(ISO / IEC 8825-4) - ASN.1編碼規則:XML編碼規則(XER)規范。這包括規范XML編碼規則(CXER)規范和擴展XML編碼規則(E-XER)。
ASN.1 C - 運行時選項的工具
多年來,OSS Nokalva的客戶對各種主流和嵌入式平臺的代碼大小,編碼/解碼速度和診斷能力有許多不同的要求。為了滿足客戶的各種需求,OSS Nokalva提供了用于C運行時庫的ASN.1工具三種版本。
運行時庫的所有三種風格執行相同的功能并具有相同的API,包括用于編碼/解碼ASN.1消息的功能,用于復制,比較,打印和釋放未編碼/解碼消息的功能,簡單但靈活的存儲器管理接口,以及許多其他有用的功能。
您可以從使用ASN.1 / C運行時的一種風格更改為使用另一種風格,而不會影響您的應用程序代碼。有關如何在各種運行時風格之間切換的詳細說明,請參見“ASN.1 / C運行時API”手冊。
SOED
空間優化編碼器/解碼器(SOED)是這樣命名的,因為它強調最小化存儲器使用(即,小代碼大?。?,特別是當ASN.1規范大或復雜時。 SOED是開發過程中使用的常用選擇。它提供了豐富的跟蹤,錯誤捕獲,診斷和恢復功能,我們較靈活的內存管理器,以及與ASN.1規范交互工作的能力(例如,當您需要閱讀有關約束的信息時在運行時特定的ASN.1類型)。
TOED
時間優化的編碼器/解碼器(TOED)是部署的流行選擇,因為它強調最小化CPU利用率。 我們有意地最小化跟蹤能力,并使用代碼驅動而不是表驅動設計來實現閃電速度。
LED(單獨包裝)
精簡編碼器/解碼器(LED)經過優化,可提供比SOED更小的代碼尺寸,而且具有更快的編碼/解碼性能。 它故意沒有豐富的跟蹤和診斷能力。 它通常是使用大型ASN.1規范的更佳選擇,特別是當您的軟件在具有顯著內存限制的系統上運行時。
哪個ASN.1 / C運行時適合我?
根據其性能(表示為代碼大小和編碼速度)和診斷功能,使用下表選擇最適合您需要的ASN.1 / C運行時。
所有ASN.1規范的編碼/解碼時間和可執行大小相對于最小值(1x)給出。 針對若干不同消息對編碼/解碼時間進行平均,并且基于消息的大小進行歸一化。 對于這兩個圖,使用指數標度。 較小的條形反映更好的性能。
相同的通用編碼/解碼應用程序用于所有測量。 比較應用對象代碼的大小,其是從C編譯和鏈接由ASN.1編譯器生成的源和控制表(如果適用)以及應用代碼和對應的運行時庫獲得的。
?