ú΂wą‚      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI 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 qrstuvwxyz{|}~€ Portability :'Trevor Elliott <trevor@geekgateway.com>‚ƒ„…‚„‚„ Portability :'Trevor Elliott <trevor@geekgateway.com> 7Check to see if an XRDS service description is usable. †BGenerate a tag name predicate, that ignores prefix and namespace. ‡6Filter the attributes of an element by some predicate ˆ Read, maybe ‰Get 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. 01Default modulus for Diffie-Hellman key exchange. 1"Read inside of an Exception monad 25Lookup parameters inside an exception handling monad 3 Read a field 4DMake an HTTP request, and run a function with a successful response )*+,-./01234 )*+,-.0/1234 )*+,-./01234 Portability :'Trevor Elliott <trevor@geekgateway.com>5,Manage pairs of Providers and Associations. 6Find an association. 7DAdd a new association, and set its expiration to be relative to the now  parameter passed in. 8DExpire associations in the manager that are older than the supplied now  parameter. 9/Export all associations, and their expirations 5678956789567896789 Portability :'Trevor Elliott <trevor@geekgateway.com>:/A simple association manager based on Data.Map ;<An empty association map. :;<:;<:;;<Portability : 'Trevor Elliott <trevor@geekgateway.com>=*Normalize an identifier, discarding XRIs. >ENormalize the user supplied identifier, using a supplied function to  normalize an XRI. =>=>=> Portability :'Trevor Elliott <trevor@geekgateway.com> ?Perform 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 @AB0Turn a response body into a list of parameters. C+Format OpenID parameters as a query string D.Format OpenID parameters as a direct response E%Escape for the query string of a URI FAdd Parameters to a URI G,Parse OpenID parameters out of a url string ?@ABCDEFG ?@ABCDEFG ?@ABCDEFG Portability :'Trevor Elliott <trevor@geekgateway.com> H<Attempt to resolve an OpenID endpoint, and user identifier. JAttempt 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. HHH  Stability : —˜™š›œžŸI Sha1 hashing JSha256 hashing  5General purpose digest function wrapper for OpenSSL. IJIJIJ &ĄąŁ€„Чš©Ș«ŹKLMNOPQRSTUVW­źŻ°XY±Z[ČłŽ”/Figure out how many bytes are used by a BIGNUM KLMNOPQRSTUVWXYZ[PQRSTUKONMLVWXZY[KONMLLMNOPQRSTUQRSTUVWXYZ[ GHCStability : unstable\]'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.) ^_¶`ab·žčș»Œ\]^_`ab^\_]a`b\]^_`ab Stability : cAssociation monad œdAssociation environment efgŸ?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. hAssociate 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. iFAssociate 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. j/Running a computation in the association monad Ă7Use the underlying monad to retrieve the current time. Ä<Generate Diffie-Hellman parameters in the underlying monad. kA 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. 56789:;<cdefghijk hicjdefgk cdefgefghijk  Portability :'Trevor Elliott <trevor@geekgateway.com> lmnÇGet the mac hash type È)Parse a provider within the Result monad É/Get the signed fields from a set of parameters oGenerate an authentication URL p'Verify a signature on a set of params. ÊVerify an assertion directly ËVerify with an association lmnoplnmoplnmmnop Portability :'Trevor Elliott <trevor@geekgateway.com>J  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHcdefghijklmnopPortability : #James Halliday <substack@gmail.com>qHWrap up all the data necessary to do a verify into one place, plus some  extra useful stuff. rs1the authentication uri to send the client off to t the OpenID provider as a string u+the normalized OpenID identity as a string v:the uri the client will come back to after authenticating w2the association map manager thing used internally xKProvides configuration settings for verify and auth. For now, this is just - the errors which may be thrown by either. yz{|}~HProvide default configuration with error handlers that just fail with a N useful message when errors happen. This behavior is what most people would / probably end up writing themselves anyways. €1Given a configuration, identity, and return uri, L contact the remote provider to create a Session object encapsulating the H useful bits of data to pass along to verify and also to pick out the  normalized identity from. ́IGiven a configuration, a Session generated by auth, and the uri that the H client came back on from the provider, make sure the client properly N authenticated by running verifyError on failure to verify the credentials. qrstuvwxyz{|}~€xyz{|}qrstuvw€~qrstuvwrstuvwxyz{|}yz{|}~€Í !"#$%&&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU V W X Y Z [ \ ] ] ^ _ ` a b c d e f g h i j k l m n o p p q r s t u v w x y z {||}~€‚‚ƒ„…†‡ˆ‰Š‹‹ŒŽ6‘’ “”•–—˜™š›œ  ž Ÿ   Ą ą Ł € „ Š § š © Ș « Ź ­ ź Ż ° ± Č 9 : ł Ž ” ¶ · ž č ș » Œ œ Ÿ ż À o Á Â Ă Ä Ć Æ Ç È É Ê Ë Ì Í ÎÏĐopenid-0.1.4.6 Text.XRDSNetwork.OpenID.TypesNetwork.OpenID.Utils"Network.OpenID.Association.ManagerNetwork.OpenID.Association.MapNetwork.OpenID.NormalizationNetwork.OpenID.HTTPNetwork.OpenID.DiscoveryData.Digest.OpenSSL.SHACodec.Encryption.DHCodec.Binary.Base64Network.OpenID.AssociationNetwork.OpenID.AuthenticationNetwork.OpenID.EasyNetwork.OpenID.SSLNetwork.OpenIDService serviceTypesserviceMediaTypes serviceURIsserviceLocalIDsservicePriority serviceExtraXRDXRDSisUsablehasType parseXRDSError Identifier getIdentifierProvider providerURIResolverRealmReturnToParams AssociationassocExpiresIn assocHandle assocMacKey assocType SessionTypeDhSha256DhSha1 NoEncryption AssocType HmacSha256HmacSha1 assocString parseProvider showProvidermodifyProvider readMaybebreakssplitrollunrollbtwocopenidNSdefaultModulusreadM lookupParam readParam withResponseAssociationManagerfindAssociationaddAssociationexpireexportAssociationsAssociationMapAMemptyAssociationMapnormalizeIdentifiernormalizeIdentifier' makeRequest getRequest postRequestparseDirectResponse formatParamsformatDirectParams escapeParam addParams parseParamsdiscoversha1sha256 DHParamErrorNotSuitableGeneratorUnableToCheckGenerator PNotSafePrime PNotPrimeDHParams dhPrivateKey dhPublicKey dhGenerator dhModulusModulus Generator newDHParams generateKey checkDHParams computeKeyencodeRawString formatOutput encodeRaw encodeRawPrimdecodeToStringdecode decodePrimAssocAssocEnv currentTime createParams associate associate'runAssoc associate_ CheckIdModeSetup ImmediateauthenticationURIverifyAuthenticationSessionsAuthURI sProvider sIdentity sReturnTo sAssocMapConfig verifyErrornormalizeError discoverErrorassociateErrorconfig readSessionauthverify SSLHandle sslConnect sslReadWhiletag findAttr'getTextparseXRD parseServicehandleRedirect getAuthorityM discoverYADIS parseYADIS discoverHTML parseHTMLlinkTagshtmlTags splitAttr c_EVP_sha256 c_EVP_sha1c_EVP_DigestFinal_exc_EVP_DigestUpdatec_EVP_DigestInit_exc_EVP_MD_CTX_destroyc_EVP_MD_CTX_create EVP_MD_CTXEVP_MDhashWith c_BN_num_bits c_BN_free c_BN_bn2bin c_BN_bin2bn c_DH_free c_DH_size c_DH_checkc_DH_compute_keyc_DH_generate_keyc_DH_generate_parametersc_DH_newBIGNUMwithDH dhToDHParams codesToErrors withBIGNUMbin2bnbn2binnumBytesencode3decoderdecode4toB64fromB64low6lowByte validPairingnewSessionTypeParamsdhPairshash decodeMacKeygetTime newParamsrecoverAssociationhandleAssociationmacHashparseProvider'getSignedFields verifyDirectverifyWithAssociationresolver