如何用Haskell解析ASN.1?
如何使用Haskell解析ASN.1输入 是否有一个生成器能够为给定的ASN.1描述文件生成代数数据类型声明和解析器代码 (例如,用于生成C代码…) 快速总结ASN.1的内容:如何用Haskell解析ASN.1?,haskell,asn.1,Haskell,Asn.1,如何使用Haskell解析ASN.1输入 是否有一个生成器能够为给定的ASN.1描述文件生成代数数据类型声明和解析器代码 (例如,用于生成C代码…) 快速总结ASN.1的内容: ASN.1类似于Google协议缓冲区,但它是以更早的方式开发的,并且是一个实际的标准。基本上,ASN.1定义了几种用于序列化层次结构数据的方法,以及用于定义描述该结构的语法的语法。这种语法可以用来自动生成解析器和数据结构,以构建语法树。快速搜索Hackage 这听起来可能是相关的。我对ASN.1了解不多…您可以使用包
ASN.1类似于Google协议缓冲区,但它是以更早的方式开发的,并且是一个实际的标准。基本上,ASN.1定义了几种用于序列化层次结构数据的方法,以及用于定义描述该结构的语法的语法。这种语法可以用来自动生成解析器和数据结构,以构建语法树。快速搜索Hackage
这听起来可能是相关的。我对ASN.1了解不多…您可以使用包对二进制ASN.1进行解码,您可以使用模式匹配手动解析,也可以使用包进行解析 例如,以下帮助函数将BER二进制文件解码为以下文件的列表:
import Data.ASN1.Encoding
import Data.ASN1.BinaryEncoding
import Data.ASN1.Types
import qualified Data.ByteString as B
decodeASN1File file = decodeASN1' BER `fmap` B.readFile file