5

Haskell で ASN.1 入力を解析するにはどうすればよいですか?

指定された ASN.1 記述ファイルの代数データ型宣言とパーサー コードを生成できるジェネレーターはありますか?

(たとえば、C コードを生成するためのasn1cのように ...)

ASN.1 の概要:

ASN.1 は Google Protocol Buffers に似ていますが、以前に開発されたものであり、実際の標準です。基本的に、ASN.1 は、階層的に構造化されたデータをシリアル化するためのいくつかのメソッドと、構造を記述する文法を定義するための構文を定義します。このような文法を使用して、構文ツリーを構築するためのパーサーとデータ構造を自動的に生成できます。

4

2 に答える 2

3

パターン マッチングを使用して手動で解析できるasn1-encodingパッケージ、またはasn1-parseパッケージを使用して、バイナリ ASN.1 をデコードできます。

たとえば、次のヘルパー関数は、BER バイナリ ファイルをASN1のリストにデコードします。

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
于 2013-12-29T05:10:10.127 に答える
2

Hackage をすばやく検索すると、

http://hackage.haskell.org/package/language-asn1-0.2.1

それは関連しているように聞こえます。私はASN.1についてあまり知りません...

于 2012-10-18T19:11:40.193 に答える