úÎlőd`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ unknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered`/The Get monad is an Exception and State monad. aThe result of a parse. bThe parse succeeded. The c is the 6 input that had not yet been consumed (if any) when  the parse succeeded. d1Supply this continuation with more input so that 3 the parser can resume. To indicate that no more  input is available, use an e string. fThe parse failed. The g is the ) message describing the error, if any. hRun the Get monad applies a get&-based parser on the input ByteString i An efficient get/ method for strict ByteStrings. Fails if fewer  than n< bytes are left in the input. This function creates a fresh  copy of the underlying bytes. jPull n/ bytes from the input, as a strict ByteString. `kabdfhlijmnopqrst `kabdfhlijm`kafdbhlijmnopqrst unknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Inferedu[uintOfBytes returns the number of bytes and the unsigned integer represented by the bytes v7intOfBytes returns the number of bytes in the list and # the represented integer by a two's completement list of bytes w(bytesOfInt convert an integer into a two' s completemented list of bytes uxvwyuxvwyuxvwyunknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered*Possible errors during parsing operations ?Policy failed including the name of the policy and the reason. "Decoding of a knowed type failed. BDecoding of a type that is not implemented. Contribution welcome. 8Parsing is not finished, there is construction unended. Parsing an invalid header. BAn unexpected situation has come up parsing an ASN1 event stream. ;A construction goes over the size specified in the header. 4Invalid primitive with infinite length in a stream. Unexpected EOC in the stream. -represent one event from an asn1 data stream Constructed value end Constructed value start  Primitive  ASN1 Header >ASN1 Header with the class, tag, constructed flag and length. 'ASN1 Length with all different formats DLength is indefinite expect an EOC in the stream to finish the type Long form of N bytes 0Short form with only one byte. length has to be < 127.  ASN1 Tag Element class  z       z unknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered{parse an ASN1 header |@putIdentifier encode an ASN1 Identifier into a marshalled value {|{|{| unknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered})Represent the events and state thus far. ~/represent the parsing state of an ASN1 stream. .create a new empty parse state. position is 0 €3run incrementally the ASN1 parser on a bytestring. 9 the result can be either an error, or on success a list ' of events, and the new parsing state. #when no more input is available, it'(s important to check that the parser is  in a finish state too. ‚MParse one lazy bytestring and returns on success all ASN1 events associated. ƒOParse one strict bytestring and returns on success all ASN1 events associated. }~€ parser state input data as bytes ‚ƒ}~€‚ƒ}~€‚ƒ unknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered„9transform a list of ASN1 Events into a strict bytestring …7transform a list of ASN1 Events into a lazy bytestring „…„…„…unknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered represent a bitarray / bitmap 2throwed in case of out of bounds in the bitarray. ,returns the length of bits in this bitarray get the nth bits !'set the nth bit to the value specified "set the nth bits #clear the nth bits $&get padded bytestring of the bitarray %+number of bit to skip at the end (padding)  !"#$%†  !"#$%  !"#$%  !"#$%†unknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered'Define high level ASN1 object. ADefine the type of container !&'()*+,-./0123456789:;<=>?@ABCDEF'&'()*+,-./0123456789:;<=>?@ABCDEF''@?>=<;:9876543210/.-,+*)(&ADCBEF&'@?>=<;:9876543210/.-,+*)(ADCBEFunknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered GJDescribe an ASN1 encoding, that transform an asn1stream into a bytestream H'encode a stream into a lazy bytestring Itransition class. J-decode a lazy bytestring into an ASN1 stream KJDescribe an ASN1 decoding, that transform a bytestream into an asn1stream L-decode a lazy bytestring into an ASN1 stream M/decode a strict bytestring into an ASN1 stream N3decode a strict bytestring into an ASN1Repr stream O)encode a stream into a strict bytestring GHIJKLMNO GHIJKLMNO KLIJGHMNOGHIJKLMNOunknown experimental#Vincent Hanquez <vincent@snarc.org>None PParse ASN1 Monad QXrun the parse monad over a stream and returns the result and the remaining ASN1 Stream. R:run the parse monad over a stream and returns the result. S!get next element from the stream TAget next container of specified type and return all its elements UErun a function of the next elements of a container of specified type V+just like getNextContainer, except it doesn''t throw an error if the container doesn' t exists. W*just like onNextContainer, except it doens''t throw an error if the container doesn' t exists. Xreturns if there's more elements in the stream. PQRSTUVWX PQRSTUVWX PQRUWTVSX PQRSTUVWXunknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-InferedY2an object that can be marshalled from and to ASN1 Z)transform an object into an ASN1 stream. [:returns either an object along the remaining ASN1 stream,  or an error. YZ[YZ[YZ[YZ[ unknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered‡bgetInteger, parse a value bytestring and get the integer out of the two complement encoded bytes ˆreturn an OID "‰Š‹ŒŽ‘‡’“”•–—˜™š›œžŸ ˆĄ˘Ł¤ĽŚ§¨@'()*+,-./0123456789:;<=>?@ABCD‰Š‹ŒŽ‘‡’“”•–—˜™š›œžŸ ˆĄ˘Ł¤ĽŚ§¨"‰Š‹ŒŽ‘‡’“”•–—˜™š›œžŸ ˆĄ˘Ł¤ĽŚ§¨unknown experimental#Vincent Hanquez <vincent@snarc.org> Safe-Infered\#Distinguished Encoding Rules (DER) ^Basic Encoding Rules (BER) \]^_ŠŞŤŹ­\]^_^_\]\]^_ŠŞŤŹ­Ž !"#$%&'(())*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgghhijklmnolpqrstuvwxyz{|}~€‚ ƒ „ … † ‡ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “” • – — ˜ ™ š › œ  ž Ÿ   Ą ˘ Ł ¤ Ľ Ś § ¨ Š Ş Ť Ź ­ Ž Ż ° ą ˛ ł ´ ľ śˇ¸šşťźasn1-data-0.7.0Data.ASN1.TypesData.ASN1.BitArrayData.ASN1.StreamData.ASN1.EncodingData.ASN1.ParseData.ASN1.ObjectData.ASN1.BinaryEncoding Data.ASN1.GetData.ASN1.InternalData.ASN1.SerializeData.ASN1.BinaryEncoding.ParseData.ASN1.BinaryEncoding.WriterData.ASN1.Prim ASN1Error PolicyFailedTypeDecodingFailedTypeNotImplementedParsingPartialParsingHeaderFailStreamUnexpectedSituationStreamConstructionWrongSizeStreamInfinitePrimitiveStreamUnexpectedEOC ASN1EventConstructionEndConstructionBegin PrimitiveHeader ASN1Header ASN1Length LenIndefiniteLenLongLenShortASN1Tag ASN1ClassPrivateContext Application UniversalBitArrayBitArrayOutOfBoundbitArrayLengthbitArrayGetBitbitArraySetBitValuebitArraySetBitbitArrayClearBitbitArrayGetData toBitArrayASN1ReprASN1EndStartOther BMPStringCharacterStringUniversalString GeneralString VisibleString GraphicStringGeneralizedTimeUTCTime IA5StringVideoTexString T61StringPrintableString NumericString UTF8String EnumeratedRealOIDNull OctetString BitStringIntValBooleanASN1ConstructionType ContainerSetSequencegetConstructedEndgetConstructedEndRepr ASN1Encoding encodeASN1ASN1DecodingReprdecodeASN1Repr ASN1Decoding decodeASN1 decodeASN1'decodeASN1Repr' encodeASN1' ParseASN1runParseASN1State runParseASN1getNextgetNextContaineronNextContainergetNextContainerMaybeonNextContainerMaybehasNext ASN1ObjecttoASN1fromASN1DERBERGetResultDonebytestring-0.9.2.1Data.ByteString.Internal ByteStringPartialData.ByteStringemptyFailbaseGHC.BaseString runGetPos getBytesCopygetBytesInputrunGetgetWord8$fMonadPlusGet $fMonadGet$fAlternativeGet$fApplicativeGet $fFunctorGet$fFunctorResult $fShowResult uintOfBytes intOfBytes bytesOfInt bytesOfUIntputVarEncodingIntegral$fExceptionASN1Error getHeader putHeader ParseCursor ParseState newParseState runParseState isParseDoneparseLBSparseBS toByteStringtoLazyByteString$fExceptionBitArrayOutOfBound getIntegergetOID encodeHeaderencodePrimitiveHeaderencodePrimitive encodeOne encodeListencodeConstructedmkSmallestLengthdecodePrimitive getBoolean getBitStringgetOctetStringgetNumericStringgetPrintableString getUTF8String getT61StringgetVideoTexString getIA5StringgetGraphicStringgetVisibleStringgetGeneralStringgetUniversalStringgetCharacterString getBMPStringgetNull getUTCTimegetGeneralizedTime putUTCTimeputGeneralizedTime putInteger putBitString putStringputOID$fASN1EncodingDER$fASN1DecodingDER$fASN1DecodingReprDER$fASN1DecodingBER$fASN1DecodingReprBER