- 浏览: 41885 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
AJCF:
ant部署WebService的三步走.rar中的非常详细,非 ...
使用axis1.4+ant进行部署WebService的例子(附源码) -
AJCF:
mark
使用axis1.4+ant进行部署WebService的例子(附源码) -
wangbingchen268:
貌似没有源码、能否发我一份 wangpu268@126.com ...
SSH的搭建(附源码) -
thisislife:
文件解压需要密码?哥们
ASN.1格式 -
yiuruyan88:
...
SSH的搭建(附源码)
ASN.1是“Abstract Syntax Notation One”的缩写。
ASN.1可以被看作一种高层协议描述语言,由于它可以用来清晰地描述复杂的数据结构,因而被广泛的作为应用层协议语法的标准。
ASN.1给协议设计者提供了一些简单的数据类型,如整型(Integer)、布尔型(Boolean)以及字节串(Octet string)等,以这些简单类型为基础,协议的设计者就可以构造出更复杂的数据类型。
通过唯一的“标识符(Tag)”可以很容易的标注出由一系列简单类型组成的复杂数据类型。
例如:一张话单可以由一系列数据域的集合组成,每个数据域是一个编码单元或者是多个编码单元的复合。
一个编码单元最多包括四部分:
标识符(identifier octets,或者称为Tag):参见“1.2.1 标识符的编码规则”。
长度(length octets):参见“1.2.2 长度的编码规则”。
内容(contents octets):参见“1.2.3 内容的编码规则”。
结束符(end-of-contents octets):不是必须的,在不定长编码方式下才使用,参见“1.2.4 结束符的编码规则”。
标识符表示该编码对应的协议数据类型,它的编码分两种情况:
情况一
标识符值在0-30之间时,用一个字节表示,其中各位含义如下,具体编码示意图如图1-1所示。
位8和位7代表数据的类型标记(Universal-00, Application-01, Context-specific-10, Private-11)。
位6代表该数据单元是原子式还是结构类型(Primitive-0, Construct-1)。
位5到位1代表具体分配的TAG值(Number of Tag)。
UNIVERSAL类型是ASN.1规范中定义的基本类型使用的,即是为基本类型进行分配TAG值用的,如BOOLEAN类型定义TAG值为1时使用。
Application类型很少用到,不详述。
Context-Specific主要是定义结构类型时使用。
Private私有的,可以根据具体协商而定。
Primitive原子式代表该域采用ASN最小编码单元编码。
Construct结构式代表该域由多个ASN最小编码单元组成。
图1-1 标识符值在0-30之间编码示意图
8 7 6 5 4 3 2 1
+-------+---+------------------+
1 ¦ CLASS ¦P/C¦ TAG NUMBER ¦
+------------------------------+
Bits 8-7: 数据的类型标记:
+------------------------------+
¦ Bit: 8 7 ¦
+-------------------------------¦
¦ Universal 0 0 ¦
¦ Application 0 1 ¦
¦ Context-specific 1 0 ¦
¦ Private 1 1 ¦
+------------------------------+
Bit 6 :原子式 (0) 或 结构类型 (1)
Bits 5-1: 5个比特的二进制数
情况二
标识符值大于等于31时,用一个前字节和若干后续字节表示。
前字节的位8、7、6与第一种情况一样,位5到位1为11111。
后续字节遵守以下规则:
− 除最后一个字节外,其他字节的第8位为1。
− 从第一个字节到最后一个字节的第7位到第1位加起来表示tags值。
− 第一个字节的第7位到第1位不能全为0。
如图1-2所示。
图1-2 标识符值大于等于31时编码示意图
8 7 6 5 4 3 2 1
+-------+---+---+---+---+---+---¦
1 ¦ CLASS ¦P/C¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦
+-------------------------------+
Bits 8-7: 数据的类型标记
Bit 6 : 原子式 (0) 或 结构类型 (1)
Bits 5-1: 全部设置为1
后续字节编码如下:
8 7 6 5 4 3 2 1
+---+---------------------------¦ first
2 ¦ 1 ¦ NUMBER of TAG (msb) ¦ subsequent
+-------------------------------¦
. .
. .
+-------------------------------¦ last
¦ 0 ¦ NUMBER of TAG (lsb) ¦ subsequent
+-------------------------------+
Bits 8 : 最后一个字节时,设置为0,其他均设置为1
Bits 7-1: 所有字节的比特7-1都加起来,就是实际的Tag值。
1.2.2 长度的编码规则
长度表示内容字段的净长度,不包括内容以外的其他字段的长度。
长度有三种表示形式:短编码方式,长编码方式和不定长编码方式。其中,不定长编码方式不应用于ASN.1话单文件中,因此不做更进一步的描述。
短编码方式
当长度<=127时,用一个字节表示,即为短编码方式:
第8位为0。
第7到第1位表示长度。
如L=26H,则编码为 0010,0110。
8 7 6 5 4 3 2 1
+----------------------------¦
1 ¦ 0 L L L L L L L ¦
+----------------------------+
LLLLLLL 表示实际长度的值
长编码方式
当长度>127时,用多个字节表示,即为长编码方式:
8 7 6 5 4 3 2 1
+---+-------------------------¦
1 ¦ 1 ¦ 0 < n < 127 ¦
+-----------------------------+
+-----------------------------¦
2 ¦ L L L L L L L L ¦
+-----------------------------+
...
+-----------------------------¦
n+1¦ L L L L L L L L ¦
+-----------------------------+
LLLLLLLL表示实际长度的值
第1个字节的位8固定填写为1,BIT1~BIT7表示长度所占的字节数。
第2到n+1字节代表长度的值。
1.2.3 内容的编码规则
内容包含零个、一个或更多的字节,它们的值依赖于所表示的数据类型。
如下图所示:
8 7 6 5 4 3 2 1
+------------------------------¦
¦ most significant byte ¦ octet 1
+------------------------------¦
¦ ¦ octet 2
+------------------------------¦
. .
. .
+------------------------------¦
¦ least significant byte ¦ octet n
+------------------------------+
下面对不同的数据类型分别进行介绍。
BOOLEAN
该类型只能以原子式进行编码。
FALSE编码为:
Tag Length Value
+------------------------------¦
¦ 01H ¦ 01H ¦ 0000, 0000 ¦
+------------------------------¦
TRUE的编码(任何不是全0都可以)为:
Tag Length Value
+------------------------------¦
¦ 01H ¦ 01H ¦ 1111, 1011 ¦
+------------------------------¦
NULL
该类型只能以原子式进行编码,且只有一个值,这样其Value中就无需填写,即Value处就不会占用空间。
Tag Length Value
+------------------------------¦
¦ 05H ¦ 00H ¦
+------------------------------¦
INTEGER
该类型只能以原子式进行编码。整型分正数和负数两种情况,由于负数不应用于ASN.1话单文件,不加以详述。
对于正数,如果最高比特位为0,则直接编码;如果为1,则在最高比特位之前增加一个全0的八位数组(采用的是补码的方式存储)。如下示例250的编码:
Tag Length Value
+-------------------------------------¦
¦ 02H ¦ 02H ¦ 0000,0000 1111,1010¦
+-------------------------------------¦
ENUMERATED
该类型编码与INTEGER类型编码方式相同。
BIT STRING
该类型可以采用原子式或者结构式,下面以比特串'1011011101011'B为例,分别介绍以这两种方式进行编码。
Primitive
Tag Length Value
+------------------------------------------¦
¦ 03H ¦ 03H ¦ 03H 10110111 01011xxx¦
+------------------------------------------¦
注意在比特串'1011011101011'B之前增加了一个八位数组,取值为0~7,表征这个值最后补位的个数,主要是解决比特串可能不是8的倍数。
Constructed
采用结构式发送时,主要是有部分编码还不能确定时采用,比特串'1011011101011'B的编码如下:
Tag Length Value
+----------------------------------------------¦
¦ 03H ¦ 80H ¦ T L V
¦ ¦ 03H ¦ 02H ¦ 00H 10110111¦
¦ ¦ 03H ¦ 02H ¦ 03H 01011xxx¦
00H 00H
+-----------------------------------------------¦
注意:此处整个比特串的Length采用不定长编码。
OCTET STRING
该类型编码原则和BIT STRING编码原理一样,但由于该类型直接以八位组为单位,就不存在补位的情况。
SET
该类型采用constructed格式编码,其每个成员都是采用TLV格式编码。
以MOC {recordType ENUMERATED, callDuration INTEGER }:={ recordType 0,callDuration 11}为例:
Tag Length Value
+--------------------------------------------¦
¦ 16H ¦ 80H ¦ T L V
¦ ¦ 02H ¦ 01H ¦ 0000 0000¦
¦ ¦ 02H ¦ 01H ¦ 0000 1011¦
+--------------------------------------------¦
SEQUENCE
该类型与SET类型编码方式基本一样,只是其成员顺序要与定义保持一致,而SET类型无需如此。
SET OF
该类型编码与SET相同。
SEQUENCE OF
该类型编码与SEQUENCE相同。
其他的不常见的类型,在此不一一介绍。
1.2.4 结束符的编码规则
在定长编码结构中不存在,只有在不定长编码结构中存在,此处不加以详述。
1.2.5 话单文件的结构
一个话单文件是Sequence类型,采用TLV格式,其Valve部分由以下四部分组成:
第一部分是文件头部headerRecord,TAG是A0。
第二部分是话单内容,SEQUENCE OF表示可以由多张话单组成,callEventRecords的TAG值是A1。
第三部分是文件尾部trailerRecord,TAG值是A2。
第四部分是扩展,TAG值是A3,该部分没有内容,长度为0。
各个部分的TAG值和长度在文件中的位置如图1-3所示。
图1-3 话单文件的结构
以一张ASN.1话单文件为例,其二进制码流,如图1-4所示。
图1-4 ASN.1话单文件二进制码流解析
上图所对应的ASN.1文件:
ASN.1 BER编码
解码后的文本
record no.: 0
recordType: moCallRecord
servedIMSI: 460007001002000
servedMSISDN: (91)8613720012000
callingNumber: (91)8613720012000
calledNumber: (A1)13720012010
roamingNumber: (A1)136755002201
recordingEntity: (91)86136755002
mscIncomingROUTE: TO_BSC1
mscOutgoingROUTE: TO_BSC2
location: LAC-3001. CellID-0001
basicService: teleService(11)
msClassmark: 021C00
answerTime: 070809141502
releaseTime: 070809141513
callDuration: 11
radioChanRequested: fullRateChannel
radioChanUsed: halfRate
causeForTerm: normalRelease
diagnostics: gsm0408Cause(90)
callReference: 16 00 00 00 ED
additionalChgInfo: chargeIndicator-charge
networkcallReference: 16 05 A2 30 1B
mSCAddress: (91)86136755002
speechVersionSupported: 1
speechVersionUsed: 1
systemType: gERAN
chargedParty: callingParty
mscOutgoingCircuit: 1
orgRNCorBSCId: 01 0B
orgMSCId: 00 0B
callerDefaultEmlppPriority: EMLPP_CallPriorityLevel4(1)
globalAreaID: 64 F0 00 30 01 00 01
subscriberCategory: Common(A)
firstmccmnc: 64F000
lastmccmnc: 64F000
calledIMSI: 460007001002010
typeOfSubscribers:visiting
audioDataType:audio
disconnectparty:unknown
ASN.1可以被看作一种高层协议描述语言,由于它可以用来清晰地描述复杂的数据结构,因而被广泛的作为应用层协议语法的标准。
ASN.1给协议设计者提供了一些简单的数据类型,如整型(Integer)、布尔型(Boolean)以及字节串(Octet string)等,以这些简单类型为基础,协议的设计者就可以构造出更复杂的数据类型。
通过唯一的“标识符(Tag)”可以很容易的标注出由一系列简单类型组成的复杂数据类型。
例如:一张话单可以由一系列数据域的集合组成,每个数据域是一个编码单元或者是多个编码单元的复合。
一个编码单元最多包括四部分:
标识符(identifier octets,或者称为Tag):参见“1.2.1 标识符的编码规则”。
长度(length octets):参见“1.2.2 长度的编码规则”。
内容(contents octets):参见“1.2.3 内容的编码规则”。
结束符(end-of-contents octets):不是必须的,在不定长编码方式下才使用,参见“1.2.4 结束符的编码规则”。
标识符表示该编码对应的协议数据类型,它的编码分两种情况:
情况一
标识符值在0-30之间时,用一个字节表示,其中各位含义如下,具体编码示意图如图1-1所示。
位8和位7代表数据的类型标记(Universal-00, Application-01, Context-specific-10, Private-11)。
位6代表该数据单元是原子式还是结构类型(Primitive-0, Construct-1)。
位5到位1代表具体分配的TAG值(Number of Tag)。
UNIVERSAL类型是ASN.1规范中定义的基本类型使用的,即是为基本类型进行分配TAG值用的,如BOOLEAN类型定义TAG值为1时使用。
Application类型很少用到,不详述。
Context-Specific主要是定义结构类型时使用。
Private私有的,可以根据具体协商而定。
Primitive原子式代表该域采用ASN最小编码单元编码。
Construct结构式代表该域由多个ASN最小编码单元组成。
图1-1 标识符值在0-30之间编码示意图
8 7 6 5 4 3 2 1
+-------+---+------------------+
1 ¦ CLASS ¦P/C¦ TAG NUMBER ¦
+------------------------------+
Bits 8-7: 数据的类型标记:
+------------------------------+
¦ Bit: 8 7 ¦
+-------------------------------¦
¦ Universal 0 0 ¦
¦ Application 0 1 ¦
¦ Context-specific 1 0 ¦
¦ Private 1 1 ¦
+------------------------------+
Bit 6 :原子式 (0) 或 结构类型 (1)
Bits 5-1: 5个比特的二进制数
情况二
标识符值大于等于31时,用一个前字节和若干后续字节表示。
前字节的位8、7、6与第一种情况一样,位5到位1为11111。
后续字节遵守以下规则:
− 除最后一个字节外,其他字节的第8位为1。
− 从第一个字节到最后一个字节的第7位到第1位加起来表示tags值。
− 第一个字节的第7位到第1位不能全为0。
如图1-2所示。
图1-2 标识符值大于等于31时编码示意图
8 7 6 5 4 3 2 1
+-------+---+---+---+---+---+---¦
1 ¦ CLASS ¦P/C¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦
+-------------------------------+
Bits 8-7: 数据的类型标记
Bit 6 : 原子式 (0) 或 结构类型 (1)
Bits 5-1: 全部设置为1
后续字节编码如下:
8 7 6 5 4 3 2 1
+---+---------------------------¦ first
2 ¦ 1 ¦ NUMBER of TAG (msb) ¦ subsequent
+-------------------------------¦
. .
. .
+-------------------------------¦ last
¦ 0 ¦ NUMBER of TAG (lsb) ¦ subsequent
+-------------------------------+
Bits 8 : 最后一个字节时,设置为0,其他均设置为1
Bits 7-1: 所有字节的比特7-1都加起来,就是实际的Tag值。
1.2.2 长度的编码规则
长度表示内容字段的净长度,不包括内容以外的其他字段的长度。
长度有三种表示形式:短编码方式,长编码方式和不定长编码方式。其中,不定长编码方式不应用于ASN.1话单文件中,因此不做更进一步的描述。
短编码方式
当长度<=127时,用一个字节表示,即为短编码方式:
第8位为0。
第7到第1位表示长度。
如L=26H,则编码为 0010,0110。
8 7 6 5 4 3 2 1
+----------------------------¦
1 ¦ 0 L L L L L L L ¦
+----------------------------+
LLLLLLL 表示实际长度的值
长编码方式
当长度>127时,用多个字节表示,即为长编码方式:
8 7 6 5 4 3 2 1
+---+-------------------------¦
1 ¦ 1 ¦ 0 < n < 127 ¦
+-----------------------------+
+-----------------------------¦
2 ¦ L L L L L L L L ¦
+-----------------------------+
...
+-----------------------------¦
n+1¦ L L L L L L L L ¦
+-----------------------------+
LLLLLLLL表示实际长度的值
第1个字节的位8固定填写为1,BIT1~BIT7表示长度所占的字节数。
第2到n+1字节代表长度的值。
1.2.3 内容的编码规则
内容包含零个、一个或更多的字节,它们的值依赖于所表示的数据类型。
如下图所示:
8 7 6 5 4 3 2 1
+------------------------------¦
¦ most significant byte ¦ octet 1
+------------------------------¦
¦ ¦ octet 2
+------------------------------¦
. .
. .
+------------------------------¦
¦ least significant byte ¦ octet n
+------------------------------+
下面对不同的数据类型分别进行介绍。
BOOLEAN
该类型只能以原子式进行编码。
FALSE编码为:
Tag Length Value
+------------------------------¦
¦ 01H ¦ 01H ¦ 0000, 0000 ¦
+------------------------------¦
TRUE的编码(任何不是全0都可以)为:
Tag Length Value
+------------------------------¦
¦ 01H ¦ 01H ¦ 1111, 1011 ¦
+------------------------------¦
NULL
该类型只能以原子式进行编码,且只有一个值,这样其Value中就无需填写,即Value处就不会占用空间。
Tag Length Value
+------------------------------¦
¦ 05H ¦ 00H ¦
+------------------------------¦
INTEGER
该类型只能以原子式进行编码。整型分正数和负数两种情况,由于负数不应用于ASN.1话单文件,不加以详述。
对于正数,如果最高比特位为0,则直接编码;如果为1,则在最高比特位之前增加一个全0的八位数组(采用的是补码的方式存储)。如下示例250的编码:
Tag Length Value
+-------------------------------------¦
¦ 02H ¦ 02H ¦ 0000,0000 1111,1010¦
+-------------------------------------¦
ENUMERATED
该类型编码与INTEGER类型编码方式相同。
BIT STRING
该类型可以采用原子式或者结构式,下面以比特串'1011011101011'B为例,分别介绍以这两种方式进行编码。
Primitive
Tag Length Value
+------------------------------------------¦
¦ 03H ¦ 03H ¦ 03H 10110111 01011xxx¦
+------------------------------------------¦
注意在比特串'1011011101011'B之前增加了一个八位数组,取值为0~7,表征这个值最后补位的个数,主要是解决比特串可能不是8的倍数。
Constructed
采用结构式发送时,主要是有部分编码还不能确定时采用,比特串'1011011101011'B的编码如下:
Tag Length Value
+----------------------------------------------¦
¦ 03H ¦ 80H ¦ T L V
¦ ¦ 03H ¦ 02H ¦ 00H 10110111¦
¦ ¦ 03H ¦ 02H ¦ 03H 01011xxx¦
00H 00H
+-----------------------------------------------¦
注意:此处整个比特串的Length采用不定长编码。
OCTET STRING
该类型编码原则和BIT STRING编码原理一样,但由于该类型直接以八位组为单位,就不存在补位的情况。
SET
该类型采用constructed格式编码,其每个成员都是采用TLV格式编码。
以MOC {recordType ENUMERATED, callDuration INTEGER }:={ recordType 0,callDuration 11}为例:
Tag Length Value
+--------------------------------------------¦
¦ 16H ¦ 80H ¦ T L V
¦ ¦ 02H ¦ 01H ¦ 0000 0000¦
¦ ¦ 02H ¦ 01H ¦ 0000 1011¦
+--------------------------------------------¦
SEQUENCE
该类型与SET类型编码方式基本一样,只是其成员顺序要与定义保持一致,而SET类型无需如此。
SET OF
该类型编码与SET相同。
SEQUENCE OF
该类型编码与SEQUENCE相同。
其他的不常见的类型,在此不一一介绍。
1.2.4 结束符的编码规则
在定长编码结构中不存在,只有在不定长编码结构中存在,此处不加以详述。
1.2.5 话单文件的结构
一个话单文件是Sequence类型,采用TLV格式,其Valve部分由以下四部分组成:
第一部分是文件头部headerRecord,TAG是A0。
第二部分是话单内容,SEQUENCE OF表示可以由多张话单组成,callEventRecords的TAG值是A1。
第三部分是文件尾部trailerRecord,TAG值是A2。
第四部分是扩展,TAG值是A3,该部分没有内容,长度为0。
各个部分的TAG值和长度在文件中的位置如图1-3所示。
图1-3 话单文件的结构
以一张ASN.1话单文件为例,其二进制码流,如图1-4所示。
图1-4 ASN.1话单文件二进制码流解析
上图所对应的ASN.1文件:
ASN.1 BER编码
解码后的文本
record no.: 0
recordType: moCallRecord
servedIMSI: 460007001002000
servedMSISDN: (91)8613720012000
callingNumber: (91)8613720012000
calledNumber: (A1)13720012010
roamingNumber: (A1)136755002201
recordingEntity: (91)86136755002
mscIncomingROUTE: TO_BSC1
mscOutgoingROUTE: TO_BSC2
location: LAC-3001. CellID-0001
basicService: teleService(11)
msClassmark: 021C00
answerTime: 070809141502
releaseTime: 070809141513
callDuration: 11
radioChanRequested: fullRateChannel
radioChanUsed: halfRate
causeForTerm: normalRelease
diagnostics: gsm0408Cause(90)
callReference: 16 00 00 00 ED
additionalChgInfo: chargeIndicator-charge
networkcallReference: 16 05 A2 30 1B
mSCAddress: (91)86136755002
speechVersionSupported: 1
speechVersionUsed: 1
systemType: gERAN
chargedParty: callingParty
mscOutgoingCircuit: 1
orgRNCorBSCId: 01 0B
orgMSCId: 00 0B
callerDefaultEmlppPriority: EMLPP_CallPriorityLevel4(1)
globalAreaID: 64 F0 00 30 01 00 01
subscriberCategory: Common(A)
firstmccmnc: 64F000
lastmccmnc: 64F000
calledIMSI: 460007001002010
typeOfSubscribers:visiting
audioDataType:audio
disconnectparty:unknown
- 03-MSOFTX3000_V100R007C03_ASN.1话单格式.zip (1.1 MB)
- 下载次数: 20
发表评论
-
java面试题目
2014-01-18 12:51 551java面试题目java面试题目java面试题目java面试题 ... -
Java进程cpu占用率高
2010-11-13 00:06 1143Java进程cpu占用率高 -
在java的main方法中调用java和javac
2010-01-28 11:30 889在java的main方法中调用java和javac ... -
查看权限linux文件权限
2010-01-16 10:22 2610查看权限: -rw-rw-r-- ... -
获取文件的创建时间的java实现
2010-01-06 23:05 2216/* * 著作権: Copyright (c) 2006 ... -
如何判断窗口是关闭还是刷新
2009-12-14 19:58 1254如何判断窗口是关闭还是刷新 function myunloa ... -
AXIS进行部署soap服务
2009-11-05 20:27 1592一.下载axis1.4,得到axis-bin-1_4.rar. ... -
小技巧+apache的下载地址
2009-11-05 11:52 7381:在jsp中获取服务器的版本信息 <%= applic ... -
AXIS2进行部署soap服务
2009-10-22 20:35 1283下载axis2最新版本地址:http://ws.apache. ... -
正则表达式(不断更新中....)
2009-10-21 23:01 540正则表达式学习 原创作者: ideage 阅读:4980 ... -
eclipse常用插件在线安装地址(不断更新中..........)
2009-10-17 12:44 2258在线安装方法: 1、展开Eclipse的Help菜单,将鼠标移 ... -
一个JSP生成验证码源程序(数字和中文)
2009-10-15 23:17 1035数字的验证码源码 <%@ page contentTyp ...
相关推荐
一个简单的ASN.1格式解析工具,可将ASN.1格式输出。ASN.h(.cpp)包含了ASN.1格式的解析类,ASNFileParse.cpp中提供了常用的pem文件、der文件的解析。本源码未使用Openssl库。 开发环境:Windows+VS2010
NULL 博文链接:https://sanry.iteye.com/blog/2297657
ASN.1:抽象标记语言 PER:压缩编码规则(Packed Encoding Rules),ASN.1编码规则之一 OER: 八位字节编码规则(Specification of Octet Encoding Rules),ASN.1编码规则之一
ASN.1 Editor,该软件的功能包括:显示、编辑、格式化及转换 ASN.1 编码格式的数据,使用它的前提是用户计算机上已经安装了 .NET Framework 4.5。
ASN.1抽象语法标记(Abstract Syntax Notation One) ASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。本文是ASN.1 标准详解 ,这是中文版本的ASN.1标准,这是标准最全的解释,...
ASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序...
学习ASN.1必备,国内外介绍ASN.1编码格式最全的文章
1 ASN.1编码格式 2 ASN.1PER编码测试以及测试源程序
抽象语法标记(ASN.1)是一种ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式. 它是关于ASN.1 傻瓜用书。
BER(Basic Encoding Rules)是ASN.1中最早定义的编码规则,在讨论详细编码规则时,我们是基于正确的抽象描述上。BER传输语法的格式一直是TLV三元组, Length, Value>也可以认为是, Length, Value>(见图4-1)。TLV每...
可以用来制作ASN1格式规定的ber,der,pfx等格式的文件.可以制作数字证书,可以制作电子印章等
Asn1编码查看工具,查看ASN1编码的结构,用于核对编码的正确性,不错的工具,物美价廉,欢迎大家下载!
个人实战积累的成果,基于国密算法的总结,希望可以帮到您 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~ 个人实战积累的成果,基于国密算法的总结,希望可以帮到您 亲们下载我任何一个...
可使用此格式,通过ASN1C生成完整的PKCS7签名C语言代码,实现诸如SM2算法数字签名及验证。 注意,CertificateSerialNumber本来在PKCS7标准ASN1结构中定义为INTEGER类型,但由于ASN1C将INTEGER类型翻译成long,不支持...
ASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用...
asn1c可以说是最先进的开源ASN.1编译器。 ASN.1传输语法 ASN.1编码互操作性表ASN.1系列标准定义了多种数据编码方式,包括面向字节的(例如BER),面向比特的(例如PER)和文本的(例如XER)。 一些编码变体(例如...
爱立信STS话务ASN.1文件格式说明,对于转换成普通文本有所帮助.
是一个简单的查看asn1,ber编码格式文件的工具。
ASN.1的格式说明和基本编码规则,很实用啊
ASN.1抽象语法标记(Abstract Syntax Notation One) ASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及...