-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | ASN1 data reader and writer in RAW, BER and DER forms
--
@package asn1-encoding
@version 0.9.0
-- | Deprecated: Use Data.ASN1.Types instead
module Data.ASN1.Object
-- | Define an object that can be converted to and from ASN.1
class ASN1Object a
toASN1 :: ASN1Object a => a -> ASN1S
fromASN1 :: ASN1Object a => [ASN1] -> Either String (a, [ASN1])
module Data.ASN1.Stream
type ASN1Repr = (ASN1, [ASN1Event])
getConstructedEnd :: Int -> [ASN1] -> ([ASN1], [ASN1])
getConstructedEndRepr :: [ASN1Repr] -> ([ASN1Repr], [ASN1Repr])
module Data.ASN1.Error
-- | Possible errors during parsing operations
data ASN1Error
-- | Unexpected EOC in the stream.
StreamUnexpectedEOC :: ASN1Error
-- | Invalid primitive with infinite length in a stream.
StreamInfinitePrimitive :: ASN1Error
-- | A construction goes over the size specified in the header.
StreamConstructionWrongSize :: ASN1Error
-- | An unexpected situation has come up parsing an ASN1 event stream.
StreamUnexpectedSituation :: String -> ASN1Error
-- | Parsing an invalid header.
ParsingHeaderFail :: String -> ASN1Error
-- | Parsing is not finished, there is construction unended.
ParsingPartial :: ASN1Error
-- | Decoding of a type that is not implemented. Contribution welcome.
TypeNotImplemented :: String -> ASN1Error
-- | Decoding of a knowed type failed.
TypeDecodingFailed :: String -> ASN1Error
-- | Policy failed including the name of the policy and the reason.
PolicyFailed :: String -> String -> ASN1Error
instance Typeable ASN1Error
instance Show ASN1Error
instance Eq ASN1Error
instance Exception ASN1Error
module Data.ASN1.Encoding
-- | Describe an ASN1 decoding, that transform a bytestream into an
-- asn1stream
class ASN1Decoding a
decodeASN1 :: ASN1Decoding a => a -> ByteString -> Either ASN1Error [ASN1]
-- | transition class.
class ASN1DecodingRepr a
decodeASN1Repr :: ASN1DecodingRepr a => a -> ByteString -> Either ASN1Error [ASN1Repr]
-- | Describe an ASN1 encoding, that transform an asn1stream into a
-- bytestream
class ASN1Encoding a
encodeASN1 :: ASN1Encoding a => a -> [ASN1] -> ByteString
-- | decode a strict bytestring into an ASN1 stream
decodeASN1' :: ASN1Decoding a => a -> ByteString -> Either ASN1Error [ASN1]
-- | decode a strict bytestring into an ASN1Repr stream
decodeASN1Repr' :: ASN1DecodingRepr a => a -> ByteString -> Either ASN1Error [ASN1Repr]
-- | encode a stream into a strict bytestring
encodeASN1' :: ASN1Encoding a => a -> [ASN1] -> ByteString
-- | Raw encoding of binary format (BERDERCER)
module Data.ASN1.BinaryEncoding.Raw
-- | ASN1 Header with the class, tag, constructed flag and length.
data ASN1Header :: *
ASN1Header :: SrictNotUnpackedASN1Class -> SrictNotUnpackedASN1Tag -> SrictNotUnpackedBool -> SrictNotUnpackedASN1Length -> ASN1Header
-- | Element class
data ASN1Class :: *
Universal :: ASN1Class
Application :: ASN1Class
Context :: ASN1Class
Private :: ASN1Class
-- | ASN1 Tag
type ASN1Tag = Int
-- | ASN1 Length with all different formats
data ASN1Length :: *
-- | Short form with only one byte. length has to be < 127.
LenShort :: Int -> ASN1Length
-- | Long form of N bytes
LenLong :: Int -> Int -> ASN1Length
-- | Length is indefinite expect an EOC in the stream to finish the type
LenIndefinite :: ASN1Length
-- | represent one event from an asn1 data stream
data ASN1Event :: *
-- | ASN1 Header
Header :: ASN1Header -> ASN1Event
-- | Primitive
Primitive :: SrictNotUnpackedByteString -> ASN1Event
-- | Constructed value start
ConstructionBegin :: ASN1Event
-- | Constructed value end
ConstructionEnd :: ASN1Event
-- | Parse one lazy bytestring and returns on success all ASN1 events
-- associated.
parseLBS :: ByteString -> Either ASN1Error [ASN1Event]
-- | Parse one strict bytestring and returns on success all ASN1 events
-- associated.
parseBS :: ByteString -> Either ASN1Error [ASN1Event]
-- | transform a list of ASN1 Events into a lazy bytestring
toLazyByteString :: [ASN1Event] -> ByteString
-- | transform a list of ASN1 Events into a strict bytestring
toByteString :: [ASN1Event] -> ByteString
-- | A module containing ASN1 BER and DER specification encoding/decoding.
module Data.ASN1.BinaryEncoding
-- | Basic Encoding Rules (BER)
data BER
BER :: BER
-- | Distinguished Encoding Rules (DER)
data DER
DER :: DER
instance ASN1Encoding DER
instance ASN1Decoding DER
instance ASN1DecodingRepr DER
instance ASN1Decoding BER
instance ASN1DecodingRepr BER