2012-10-18 15 views
5

Jak analizować dane wejściowe ASN.1 za pomocą Haskella?Jak przeanalizować ASN.1 z Haskellem?

Czy istnieje generator, który jest w stanie wygenerować algebraiczne deklaracje typu danych i kod parsera dla danego pliku opisu ASN.1?

(jak np asn1c do generowania kodu w C ...)

krótkie podsumowanie tego, co jest o ASN.1:

ASN.1 jest jak Google protokołu buforów, ale został opracowany sposób wcześniej i to jest rzeczywisty standard. Zasadniczo ASN.1 definiuje kilka metod serializacji hierarchicznie uporządkowanych danych oraz składnię do definiowania gramatyki opisującej strukturę. Takiej gramatyki można użyć do automatycznego generowania parsera i struktur danych do budowania drzewa składni.

Odpowiedz

3

Można dekodować binarny ASN.1 przy użyciu pakietu asn1-encoding, który można analizować ręcznie przy użyciu dopasowywania wzorów lub pakietu asn1-parse.

Na przykład poniższa funkcja pomocnika dekoduje plik binarny BER do listy 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 
Powiązane problemy