首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从ASN1语法中解析对象类以便在pyasn1中使用?

如何从ASN1语法中解析对象类以便在pyasn1中使用?
EN

Stack Overflow用户
提问于 2017-07-20 03:22:44
回答 1查看 227关注 0票数 1

我需要使用GSM MAP ASN.1,但该规范中有一个Information Object Classes (or here ),我不知道如何解析此语法以在pyasn1库中使用。

有什么方法(或变通方法)来解析它吗?

以下是案例(取自3GPP TS 29.002 V12.3.0):

代码语言:javascript
复制
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 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-20 05:26:02

到目前为止,pyasn1只实现了X.208,而不是X.68*。这意味着还不能直接支持较新的ASN.1结构(如信息对象类)。

好消息是标准中内置的X.68*和X.208之间有一定程度的向后兼容性。根据您的ASN.1规范中使用的X.68*功能,您可以将ASN.1定义从X.68* downgrade到X.208,而不会失去与连接另一端成熟的X.68*实体的线路级协议兼容性。一旦您成功地将一种规范转换为另一种规范,就应该能够使用pyasn1了。

还有一个正在进行中的branch,它自动化了ANY DEFINED BY X.208构造的工作,因此所有这些工作都由pyasn1自动处理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45199345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档