将ASN.1值表示法解析为Python对象或JSON,而不需要其ASN.1模式。

asn1vnparser的Python项目详细描述


asn1vnparser

https://img.shields.io/pypi/v/asn1vnparser.svghttps://img.shields.io/travis/mtannaan/asn1vnparser.svgDocumentation Status

将ASN.1值表示法解析为Python对象或JSON,而不需要其ASN.1模式。在

特点

  • 将ASN.1值表示法解析为Python对象或JSON字符串
  • 不需要ASN.1架构

限制

  • 由于不使用模式知识,可能会误判ASN.1类型;请参阅类型转换部分。在
  • 不支持某些ASN.1类型和语法;请参阅语法.py. 在

类型转换

asn1vnparser执行以下类型转换:

ASN.1 TypePython TypeJSON TypeExample (ASN.1 -> Python)
NULLNonenullNULL -> None
BOOLEANboolTrue/FalseTRUE -> True
INTEGERintnumber (int)3 -> 3
REALfloatnumber (real)0.1 -> 0.1
BIT STRING (^1)bitarray.bitarraystring (e.g. “010101”)‘010101’B -> bitarray.bitarray(‘010101’)
OCTET STRING (^1)bytesstring (e.g. “0123ab”)‘0123AB’H -> b’x01x23xab’
cstring (PrintableString, etc.)strstring“foobar” -> ‘foobar’
ENUMERATEDstrstringany-identifier -> ‘any-identifier’
CHOICEDict[str, Any]{“string”: (any JSON object)}alt1 : 123 -> {‘alt1’: 123}
Open Type (e.g. type field)Dict[str, Any]{“String”: (any JSON object)}Type1 : 123 -> {‘Type1’: 123}
empty SEQUENCE or SEQUENCE OF{} (empty dict){} (empty object){} -> {}, [] -> {}
SEQUENCEdictobject{f1 val, f2 1} -> {‘f1’: ‘val’, ‘f2’: 1}
SEQUENCE OFlistarray[1, 2, 3] -> [1, 2, 3]
OBJECT IDENTIFIERList[int]array of number (int){1 2 3} -> [1, 2, 3]

(^1)CONTAINING (some_value)被简单地解释为(some_value),例如:

{
    field1 123,
    field2 CONTAINING {
        field2-1 TRUE,
        field2-2 FALSE
    }
}

解析为以下Python对象:

^{pr2}$

学分

此包是用Cookiecutteraudreyr/cookiecutter-pypackage项目模板创建的。在

历史

0.2.0(2019-10-02)

新功能

  • 值或值赋值的部分解析(parse_all选项)
>>>parse_asn1_value(..."alt1: enum1\n---this is remaining string---",...as_json=True,...parse_all=False)# as_json('{"alt1": "enum1"}','\n---this is remaining string---')
  • 分析多个值分配
>>>parse_asn1_value_assignments(...'value1 INTEGER ::= 1\nvalue2 Type2 ::= the-value')[{'value_name':'value1','type_name':'INTEGER','value':1},{'value_name':'value2','type_name':'Type2','value':'the-value'}]

错误修复

  • 当给定--json选项时,CLI不再崩溃。在
{id10}$

0.1.0(2019-09-29)

  • PyPI的第一个版本。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Android Studio中使用while循环显示包含textview对象的数据   创建名为“userController”的bean时发生java错误:通过字段“userService”表示未满足的依赖关系   java PDFBox PDFImageWrite。writeImage未正确处理所有字符   java无法识别代码中的nzec错误   无法更改java TabLayout字体   在Java中使用子字符串删除部分字符串   Java中的listener addPropertyChangeListener方法   java可以同时拖动多个对象   java如何将数组中的值添加到向量中   java为什么在Camel 3.7.3中无法正确计算属性?   与后端问题不同的机器中的java客户端资源   带字符串的java分割字节数组?   java On_选项_项目_选择的方法说明   java如何在画布的父画中画一个圆?   连接超时和打开连接数的java Netty通道配置   java mysql中如何防止向数据库中插入重复数据   升级到macOS Big Sur后,java无法启动Neo4j控制台应用程序   在Java中使用XSLT将XML转换为HTMLString的ajax   java无法使用Apache POI获取Excel工作表中的数据