asn1-encoding-0.9.2: ASN1 data reader and writer in RAW, BER and DER forms

LicenseBSD-style
MaintainerVincent Hanquez <vincent@snarc.org>
Stabilityexperimental
Portabilityunknown
Safe HaskellNone
LanguageHaskell2010

Data.ASN1.BinaryEncoding.Raw

Contents

Description

Raw encoding of binary format (BERDERCER)

Synopsis

types

data ASN1Header :: *

ASN1 Header with the class, tag, constructed flag and length.

data ASN1Class :: *

Element class

type ASN1Tag = Int

ASN1 Tag

data ASN1Length :: *

ASN1 Length with all different formats

Constructors

LenShort Int

Short form with only one byte. length has to be < 127.

LenLong Int Int

Long form of N bytes

LenIndefinite

Length is indefinite expect an EOC in the stream to finish the type

data ASN1Event :: *

represent one event from an asn1 data stream

Constructors

Header ASN1Header

ASN1 Header

Primitive !ByteString

Primitive

ConstructionBegin

Constructed value start

ConstructionEnd

Constructed value end

parser

parseLBS :: ByteString -> Either ASN1Error [ASN1Event] Source

Parse one lazy bytestring and returns on success all ASN1 events associated.

parseBS :: ByteString -> Either ASN1Error [ASN1Event] Source

Parse one strict bytestring and returns on success all ASN1 events associated.

writer

toLazyByteString :: [ASN1Event] -> ByteString Source

transform a list of ASN1 Events into a lazy bytestring

toByteString :: [ASN1Event] -> ByteString Source

transform a list of ASN1 Events into a strict bytestring