ASN1简介-树莓派4b+opencv4+python打开摄像头的实现方法

第十三章ASN1库13.1 ASN1简介ASN.1(Abstract Syntax Notation One,X.208),是一套灵活的标记语言,它允许定义多种数据类型,从integer、bit string一类的简单类型到结构化类型,如set和sequence,并且可以使用这些类型构建复杂类型。 DER编码是ANS.1定义的将对象描述数据编码成八位串值的编码规则,它给出了对ANS.1值(对象的类型和值)的唯一编码规则。在ANS.1中,一个类型是一组值,对于某些类型,值的个数是已知的,而有些类型中值的个数是不固定的。ANS.1中有四种类型: 1)简单类型BIT STRING任意0、1位串; IA5String任意IA5(ASCII)字符串; INTEGER任意一个整数; NULL空值; OBJECT IDENTIFIER一个对象标识号(一串整数),标识算法或属性类型等对象; OCTET STRING 8位串; PrintableString任意可打印字符串; T61String任意T.61(8位)字符串; UTCTime一个“协同世界时”或“格林威治标准时(G.M.T)”。 2)结构类型由组件组成,ANS.1定义了四种结构类型: SEQUENCE一个或多个类型的有序排列; SEQUENCE OF一个给定类型的0个或多个有序排列; SET一个或多个类型的无序集合; SET OF一个给定类型的0个或多个无序集合。 3)带标记类型在一个应用内部区分类型的有效方法是使用标记,标记也同样用于区分一个结构类型内部不同的组件。例如SET或SEQUENCE类型可选项通常使用上下文标记以避免混淆。有两种标记类型的方法:隐式和显式。隐式标记类型是将其它类型的标记改变,得到新的类型。隐式标记的关键字是IMPLICIT。显式标记类型是将其它类型加上一个外部标记,得到新的类型。显式标记的关键字是EXPLICIT。为了进行编码,隐式标记类型除了标记不同以外,可以视为与其基础类型相同。显式标记类型可以视为只有一个组件的结构类型。 4)其它类型类型和值用符号::=表示,符号左边的是名字,右边是类型和值。名字又可以用于定义其它的类型和值。除了CHOICE类型、ANY类型以外,所有ANS.1类型都有一个标记,标记由一个类和一个非负的标记码组成,当且仅当标记码相同时,ANS.1类型是相同的。
pdf 文件大小:2.26MB