我需要使用GSM MAP ASN.1,但是在该规范中有一个Information Object Classes(or here),我不知道如何解析这个语法以在pyasn1库中使用。在
有什么方法(或解决方法)来解析它吗?在
以下是案例(取自3GPP TS 29.002 V12.3.0):
MAP-EXTENSION ::= CLASS {
&ExtensionType OPTIONAL,
&extensionId OBJECT IDENTIFIER }
-- The length of the Object Identifier shall not exceed 16 octets and the
-- number of components of the Object Identifier shall not exceed 16
-- data types
ExtensionContainer ::= SEQUENCE {
privateExtensionList [0]PrivateExtensionList OPTIONAL,
pcs-Extensions [1]PCS-Extensions OPTIONAL,
...}
SLR-ArgExtensionContainer ::= SEQUENCE {
privateExtensionList [0]PrivateExtensionList OPTIONAL,
slr-Arg-PCS-Extensions [1]SLR-Arg-PCS-Extensions OPTIONAL,
...}
PrivateExtensionList ::= SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF
PrivateExtension
PrivateExtension ::= SEQUENCE {
extId MAP-EXTENSION.&extensionId
({ExtensionSet}),
extType MAP-EXTENSION.&ExtensionType
({ExtensionSet}{@extId}) OPTIONAL}
maxNumOfPrivateExtensions INTEGER ::= 10
ExtensionSet MAP-EXTENSION ::=
{...
-- ExtensionSet is the set of all defined private extensions
}
-- Unsupported private extensions shall be discarded if received.
PCS-Extensions ::= SEQUENCE {
...}
SLR-Arg-PCS-Extensions ::= SEQUENCE {
...,
na-ESRK-Request [0] NULL OPTIONAL }
到目前为止,pyasn1只实现X.208,而不是X.68*。这意味着新的ASN.1构造(比如信息对象类)还没有被直接支持。在
好消息是,标准中内置的X.68*和X.208之间有一定程度的向后兼容性。根据ASN.1规范中使用的X.68*特性,您可能能够downgrade您的ASN.1定义从X.68*到X.208,而不会丢失与连接另一端的完全成熟的X.68*实体的线路级协议兼容性。一旦您成功地将一个规范转换为另一个规范,您应该能够使用pyasn1。在
还有一个正在进行的工作branch,它使
ANY DEFINED BY
X.208结构的工作自动化,因此它都由pyasn1自动处理。在相关问题 更多 >
编程相关推荐