iav      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p qrstu Portability :'Trevor Elliott <trevor@geekgateway.com> 7Check to see if an XRDS service description is usable. vBGenerate a tag name predicate, that ignores prefix and namespace. w6Filter the attributes of an element by some predicate x Read, maybe yGet the text of an element )Generate a predicate over Service Types.   Portability : 'Trevor Elliott <trevor@geekgateway.com> Errors A valid OpenID identifier. An OpenID provider. !A way to resolve an HTTP request 6A realm of uris for a provider to inform a user about A return to path 2Parameter lists for communication with the server  An association with a provider. ,Session types for association establishment "Supported association types %Parse a provider &Show a provider 'Modify the URI in a provider   !"#$%&'"$#! %&'  Stability : ( Read, maybe. )"Break up a string by a predicate. *KSpit a list into a pair, removing the element that caused the predicate to  succeed. +4Build an Integer out of a big-endian list of bytes. ,0Turn an Integer into a big-endian list of bytes -KPad out a list of bytes to represent a positive, big-endian list of bytes. .The OpenID-2.0 namespace. /1Default modulus for Diffie-Hellman key exchange. 0"Read inside of an Exception monad 15Lookup parameters inside an exception handling monad 2 Read a field 3DMake an HTTP request, and run a function with a successful response ()*+,-./0123 ()*+,-/.0123Portability : 'Trevor Elliott <trevor@geekgateway.com>4*Normalize an identifier, discarding XRIs. 5ENormalize the user supplied identifier, using a supplied function to  normalize an XRI. 4545 Portability :'Trevor Elliott <trevor@geekgateway.com>6<Attempt to resolve an OpenID endpoint, and user identifier. zJAttempt a YADIS based discovery, given a valid identifier. The result is ? an OpenID endpoint, and the actual identifier for the user. {EParse out an OpenID endpoint, and actual identifier from a YADIS xml  document. |KAttempt to discover an OpenID endpoint, from an HTML document. The result H will be an endpoint on success, and the actual identifier of the user. }CParse out an OpenID endpoint and an actual identifier from an HTML  document. ~/Filter out link tags from a list of html tags. *Split a string into strings of html tags. Split out values from a key=value like string, in a way that # is suitable for use with unfoldr. 66 Portability :'Trevor Elliott <trevor@geekgateway.com>7,Manage pairs of Providers and Associations. 8Find an association. 9DAdd a new association, and set its expiration to be relative to the now  parameter passed in. :DExpire associations in the manager that are older than the supplied now  parameter. ;/Export all associations, and their expirations 789:;789:; Portability :'Trevor Elliott <trevor@geekgateway.com></A simple association manager based on Data.Map =An empty association map. <=<= Portability :'Trevor Elliott <trevor@geekgateway.com>?Initialize OpenSSL @Seed the PRNG.  On systems that don' t provide dev$urandom, use this to seed the PRNG. AInitiate an ssl connection. # XXX: needs some error handling. BRead n bytes from an SSLHandle D'Write a block of bytes to an SSLHandle &Associate a socket with an SSL handle >?@ABCD>?@ABCD  Portability :'Trevor Elliott <trevor@geekgateway.com> EPerform an http request. K If the Bool parameter is set to True, redirects from the server will be  followed. Follow a redirect :Get the port and hostname associated with an http request H0Turn a response body into a list of parameters. I+Format OpenID parameters as a query string J.Format OpenID parameters as a direct response K%Escape for the query string of a URI LAdd Parameters to a URI M,Parse OpenID parameters out of a url string EFGHIJKLM EFGHIJKLM  Stability :5General purpose digest function wrapper for OpenSSL. NONO /Figure out how many bytes are used by a BIGNUM PQRSTUVWXYZ[\]^_`UVWXYZPTSRQ[\]_^` GHCStability : unstableb'formatOutput n mbLT str' formats str, splitting it  into lines of length n+. The optional value lets you control what E line terminator sequence to use; the default is CRLF (as per MIME.) abcdefgcadbfeg Stability : hAssociation monad iAssociation environment ?Check to see if an AssocType and SessionType pairing is valid. KGenerate parameters for Diffie-Hellman key exchange, based on the provided  SessionType.  Turn DHParams into a list of key/"value pairs that can be sent to a  Provider. +Give the hash algorithm for a session type HGet the mac key from a set of Diffie-Hellman parameters, and the public  key of the server. mAssociate with a provider. N By default, this tries to use DH-SHA256 and HMAC-SHA256, and falls back to B whatever the server recommends, if the Bool parameter is True. nFAssociate with a provider, attempting to use the provided association L methods. The Bool specifies whether or not recovery should be attempted  upon a failed request. o/Running a computation in the association monad 7Use the underlying monad to retrieve the current time. <Generate Diffie-Hellman parameters in the underlying monad. pA pure@ version of association. It will run in whatever base monad is 4 provided, layering exception handling over that. /Attempt to recover from an association failure -Handle the response to an associate request. 789:;<=hijklmnop mnhoijklp Portability :'Trevor Elliott <trevor@geekgateway.com>Get the mac hash type )Parse a provider within the Result monad /Get the signed fields from a set of parameters tGenerate an authentication URL u'Verify a signature on a set of params. Verify an assertion directly Verify with an association qrstuqsrtu Portability :'Trevor Elliott <trevor@geekgateway.com>H  !"#$%&'()*+,-./0123456789:;<=EFGHIJKLMhijklmnopqrstu !"#$%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOP Q R S T U V W X Y Z [ \ ] ^ _ ` a a b c d e f g h i j k l m n o p q r s t t u v w x y z{|}~4  openid-0.1 Text.XRDSNetwork.OpenID.TypesNetwork.OpenID.UtilsNetwork.OpenID.NormalizationNetwork.OpenID.Discovery"Network.OpenID.Association.ManagerNetwork.OpenID.Association.Map Network.SSLNetwork.OpenID.HTTPData.Digest.OpenSSL.SHACodec.Encryption.DHCodec.Binary.Base64Network.OpenID.AssociationNetwork.OpenID.AuthenticationNetwork.OpenIDService serviceTypesserviceMediaTypes serviceURIsserviceLocalIDsservicePriority serviceExtraXRDXRDSisUsablehasType parseXRDSError Identifier getIdentifierProvider providerURIResolverRealmReturnToParams AssociationassocExpiresIn assocHandle assocMacKey assocType SessionTypeDhSha256DhSha1 NoEncryption AssocType HmacSha256HmacSha1 parseProvider showProvidermodifyProvider readMaybebreakssplitrollunrollbtwocopenidNSdefaultModulusreadM lookupParam readParam withResponsenormalizeIdentifiernormalizeIdentifier'discoverAssociationManagerfindAssociationaddAssociationexpireexportAssociationsAssociationMapemptyAssociationMap SSLHandlesslInitrandSeed sslConnectsslRead sslReadWhilesslWrite makeRequest getRequest postRequestparseDirectResponse formatParamsformatDirectParams escapeParam addParams parseParamssha1sha256 DHParamErrorNotSuitableGeneratorUnableToCheckGenerator PNotSafePrime PNotPrimeDHParams dhPrivateKey dhPublicKey dhGenerator dhModulusModulus Generator newDHParams generateKey checkDHParams computeKeyencodeRawString formatOutput encodeRaw encodeRawPrimdecodeToStringdecode decodePrimAssocAssocEnv currentTime createParams associate associate'runAssoc associate_ CheckIdModeSetup ImmediateauthenticationURIverifyAuthenticationtag findAttr'getText discoverYADIS parseYADIS discoverHTML parseHTMLlinkTagshtmlTags splitAttr setSockethandleRedirect getAuthorityhashWithnumBytes validPairingnewSessionTypeParamsdhPairshash decodeMacKeygetTime newParamsrecoverAssociationhandleAssociationmacHashparseProvider'getSignedFields verifyDirectverifyWithAssociation