openid 0.2.0.2 → 0.2.1.0
raw patch · 7 files changed
+20/−13 lines, 7 filesdep +base-compatdep +network-uridep ~HsOpenSSLdep ~networkPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: base-compat, network-uri
Dependency ranges changed: HsOpenSSL, network
API changes (from Hackage documentation)
- Codec.Encryption.DH: dhGenerator :: DHParams -> Generator
- Codec.Encryption.DH: dhModulus :: DHParams -> Modulus
- Codec.Encryption.DH: dhPrivateKey :: DHParams -> [Word8]
- Codec.Encryption.DH: dhPublicKey :: DHParams -> [Word8]
- Codec.Encryption.DH: instance Show DHParamError
- Codec.Encryption.DH: instance Show DHParams
- Network.OpenID.Association: createParams :: AssocEnv m -> SessionType -> m (Maybe DHParams)
- Network.OpenID.Association: currentTime :: AssocEnv m -> m UTCTime
- Network.OpenID.Association: instance Monad m => ExceptionM (Assoc m) Error
- Network.OpenID.Association: instance Monad m => Functor (Assoc m)
- Network.OpenID.Association: instance Monad m => Monad (Assoc m)
- Network.OpenID.Association: instance Monad m => ReaderM (Assoc m) (AssocEnv m)
- Network.OpenID.Association: instance MonadT Assoc
- Network.OpenID.Association.Map: instance AssociationManager AssociationMap
- Network.OpenID.Association.Map: instance Read AssociationMap
- Network.OpenID.Association.Map: instance Show AssociationMap
- Network.OpenID.AttributeExchange: instance Eq AXFieldTy
- Network.OpenID.AttributeExchange: instance Ord AXFieldTy
- Network.OpenID.AttributeExchange: instance Read AXFieldTy
- Network.OpenID.AttributeExchange: instance Show AXFieldTy
- Network.OpenID.Authentication: instance Read CheckIdMode
- Network.OpenID.Authentication: instance Show CheckIdMode
- Network.OpenID.SSL: instance Stream SSLHandle
- Network.OpenID.Types: assocExpiresIn :: Association -> Int
- Network.OpenID.Types: assocHandle :: Association -> String
- Network.OpenID.Types: assocMacKey :: Association -> [Word8]
- Network.OpenID.Types: assocType :: Association -> AssocType
- Network.OpenID.Types: getIdentifier :: Identifier -> String
- Network.OpenID.Types: instance Eq Identifier
- Network.OpenID.Types: instance Eq Provider
- Network.OpenID.Types: instance Read AssocType
- Network.OpenID.Types: instance Read Association
- Network.OpenID.Types: instance Read Identifier
- Network.OpenID.Types: instance Read SessionType
- Network.OpenID.Types: instance Show AssocType
- Network.OpenID.Types: instance Show Association
- Network.OpenID.Types: instance Show Error
- Network.OpenID.Types: instance Show Identifier
- Network.OpenID.Types: instance Show Provider
- Network.OpenID.Types: instance Show SessionType
- Text.XRDS: instance Show Service
- Text.XRDS: serviceExtra :: Service -> [Element]
- Text.XRDS: serviceLocalIDs :: Service -> [String]
- Text.XRDS: serviceMediaTypes :: Service -> [String]
- Text.XRDS: servicePriority :: Service -> Maybe Int
- Text.XRDS: serviceTypes :: Service -> [String]
- Text.XRDS: serviceURIs :: Service -> [String]
+ Codec.Encryption.DH: [dhGenerator] :: DHParams -> Generator
+ Codec.Encryption.DH: [dhModulus] :: DHParams -> Modulus
+ Codec.Encryption.DH: [dhPrivateKey] :: DHParams -> [Word8]
+ Codec.Encryption.DH: [dhPublicKey] :: DHParams -> [Word8]
+ Codec.Encryption.DH: instance GHC.Show.Show Codec.Encryption.DH.DHParamError
+ Codec.Encryption.DH: instance GHC.Show.Show Codec.Encryption.DH.DHParams
+ Network.OpenID.Association: [createParams] :: AssocEnv m -> SessionType -> m (Maybe DHParams)
+ Network.OpenID.Association: [currentTime] :: AssocEnv m -> m UTCTime
+ Network.OpenID.Association: instance GHC.Base.Monad m => GHC.Base.Applicative (Network.OpenID.Association.Assoc m)
+ Network.OpenID.Association: instance GHC.Base.Monad m => GHC.Base.Functor (Network.OpenID.Association.Assoc m)
+ Network.OpenID.Association: instance GHC.Base.Monad m => GHC.Base.Monad (Network.OpenID.Association.Assoc m)
+ Network.OpenID.Association: instance GHC.Base.Monad m => MonadLib.ExceptionM (Network.OpenID.Association.Assoc m) Network.OpenID.Types.Error
+ Network.OpenID.Association: instance GHC.Base.Monad m => MonadLib.ReaderM (Network.OpenID.Association.Assoc m) (Network.OpenID.Association.AssocEnv m)
+ Network.OpenID.Association: instance MonadLib.MonadT Network.OpenID.Association.Assoc
+ Network.OpenID.Association.Map: instance GHC.Read.Read Network.OpenID.Association.Map.AssociationMap
+ Network.OpenID.Association.Map: instance GHC.Show.Show Network.OpenID.Association.Map.AssociationMap
+ Network.OpenID.Association.Map: instance Network.OpenID.Association.Manager.AssociationManager Network.OpenID.Association.Map.AssociationMap
+ Network.OpenID.AttributeExchange: instance GHC.Classes.Eq Network.OpenID.AttributeExchange.AXFieldTy
+ Network.OpenID.AttributeExchange: instance GHC.Classes.Ord Network.OpenID.AttributeExchange.AXFieldTy
+ Network.OpenID.AttributeExchange: instance GHC.Read.Read Network.OpenID.AttributeExchange.AXFieldTy
+ Network.OpenID.AttributeExchange: instance GHC.Show.Show Network.OpenID.AttributeExchange.AXFieldTy
+ Network.OpenID.Authentication: instance GHC.Read.Read Network.OpenID.Authentication.CheckIdMode
+ Network.OpenID.Authentication: instance GHC.Show.Show Network.OpenID.Authentication.CheckIdMode
+ Network.OpenID.SSL: instance Network.Stream.Stream Network.OpenID.SSL.SSLHandle
+ Network.OpenID.Types: [assocExpiresIn] :: Association -> Int
+ Network.OpenID.Types: [assocHandle] :: Association -> String
+ Network.OpenID.Types: [assocMacKey] :: Association -> [Word8]
+ Network.OpenID.Types: [assocType] :: Association -> AssocType
+ Network.OpenID.Types: [getIdentifier] :: Identifier -> String
+ Network.OpenID.Types: instance GHC.Classes.Eq Network.OpenID.Types.Identifier
+ Network.OpenID.Types: instance GHC.Classes.Eq Network.OpenID.Types.Provider
+ Network.OpenID.Types: instance GHC.Read.Read Network.OpenID.Types.AssocType
+ Network.OpenID.Types: instance GHC.Read.Read Network.OpenID.Types.Association
+ Network.OpenID.Types: instance GHC.Read.Read Network.OpenID.Types.Identifier
+ Network.OpenID.Types: instance GHC.Read.Read Network.OpenID.Types.SessionType
+ Network.OpenID.Types: instance GHC.Show.Show Network.OpenID.Types.AssocType
+ Network.OpenID.Types: instance GHC.Show.Show Network.OpenID.Types.Association
+ Network.OpenID.Types: instance GHC.Show.Show Network.OpenID.Types.Error
+ Network.OpenID.Types: instance GHC.Show.Show Network.OpenID.Types.Identifier
+ Network.OpenID.Types: instance GHC.Show.Show Network.OpenID.Types.Provider
+ Network.OpenID.Types: instance GHC.Show.Show Network.OpenID.Types.SessionType
+ Text.XRDS: [serviceExtra] :: Service -> [Element]
+ Text.XRDS: [serviceLocalIDs] :: Service -> [String]
+ Text.XRDS: [serviceMediaTypes] :: Service -> [String]
+ Text.XRDS: [servicePriority] :: Service -> Maybe Int
+ Text.XRDS: [serviceTypes] :: Service -> [String]
+ Text.XRDS: [serviceURIs] :: Service -> [String]
+ Text.XRDS: instance GHC.Show.Show Text.XRDS.Service
Files
- openid.cabal +5/−3
- src/Data/Digest/OpenSSL/SHA.hs +4/−3
- src/Network/OpenID/Association.hs +3/−1
- src/Network/OpenID/Association/Map.hs +2/−2
- src/Network/OpenID/AttributeExchange.hs +2/−1
- src/Network/OpenID/Discovery.hs +2/−2
- src/Network/OpenID/SSL.hs +2/−1
openid.cabal view
@@ -1,5 +1,5 @@ name: openid-version: 0.2.0.2+version: 0.2.1.0 cabal-version: >= 1.8 synopsis: An implementation of the OpenID-2.0 spec. description: An implementation of the OpenID-2.0 spec.@@ -27,14 +27,16 @@ library build-depends: base >= 4.0.0.0 && < 5,+ base-compat, bytestring >= 0.9.1.0, containers >= 0.2.0.0, HTTP >= 4000.0.9, monadLib >= 3.6.0.0,- network >= 2.2.0.0,+ network >= 2.6.0.0,+ network-uri>= 2.6.0.0, time >= 1.1.0.0, xml >= 1.3.0.0,- HsOpenSSL >= 0.9.0.0+ HsOpenSSL >= 0.11.4 hs-source-dirs: src exposed-modules: Codec.Binary.Base64, Codec.Encryption.DH,
src/Data/Digest/OpenSSL/SHA.hs view
@@ -16,6 +16,7 @@ import Control.Exception import Foreign import Foreign.C+import System.IO.Unsafe (unsafePerformIO) data EVP_MD data EVP_MD_CTX@@ -38,11 +39,11 @@ bracket c_EVP_MD_CTX_create c_EVP_MD_CTX_destroy $ \ evp_md_ctx -> withArrayLen (map (toEnum . fromEnum) bs) $ \ len arr -> do h <- hf- c_EVP_DigestInit_ex evp_md_ctx h nullPtr- c_EVP_DigestUpdate evp_md_ctx arr (toEnum len)+ _ <- c_EVP_DigestInit_ex evp_md_ctx h nullPtr+ _ <- c_EVP_DigestUpdate evp_md_ctx arr (toEnum len) allocaArray 64 $ \ hash -> alloca $ \ num -> do- c_EVP_DigestFinal_ex evp_md_ctx hash num+ _ <- c_EVP_DigestFinal_ex evp_md_ctx hash num n <- peek num hs <- peekArray (fromEnum n) hash return $ map (toEnum . fromEnum) hs
src/Network/OpenID/Association.hs view
@@ -36,6 +36,8 @@ import Network.OpenID.Utils -- Libraries+import Prelude()+import Prelude.Compat import Data.Bits import Data.Maybe import Data.Time@@ -123,7 +125,7 @@ -- | Association monad newtype Assoc m a = Assoc (ReaderT (AssocEnv m) (ExceptionT Error m) a)- deriving (Functor,Monad)+ deriving (Functor,Applicative,Monad) instance MonadT Assoc where lift = Assoc . lift . lift
src/Network/OpenID/Association/Map.hs view
@@ -32,8 +32,8 @@ instance AssociationManager AssociationMap where findAssociation (AM m) p = snd `fmap` Map.lookup (showProvider p) m - addAssociation (AM m) now p a = AM (Map.insert (showProvider p) (expire,a) m)- where expire = addUTCTime (toEnum (assocExpiresIn a)) now+ addAssociation (AM m) now p a = AM (Map.insert (showProvider p) (ex,a) m)+ where ex = addUTCTime (toEnum (assocExpiresIn a)) now expire (AM m) now = AM (Map.filter ((now >) . fst) m)
src/Network/OpenID/AttributeExchange.hs view
@@ -9,7 +9,8 @@ getAxFields ) where -import Control.Applicative+import Prelude()+import Prelude.Compat import Control.Monad (guard) import Network.OpenID.Types
src/Network/OpenID/Discovery.hs view
@@ -54,10 +54,10 @@ uri = fromMaybe (getIdentifier ident) mb_loc case parseURI uri of Nothing -> err "Unable to parse identifier as a URI"- Just uri -> do+ Just u -> do estr <- lift $ resolve Request { rqMethod = GET- , rqURI = uri+ , rqURI = u , rqHeaders = [] , rqBody = "" }
src/Network/OpenID/SSL.hs view
@@ -15,12 +15,13 @@ sslConnect ) where +import Prelude()+import Prelude.Compat import OpenSSL.Session as Session import qualified Control.Exception as E import Network.Socket import Network.Stream import qualified Data.ByteString as B-import Control.Applicative import Data.ByteString.Internal (w2c, c2w) import Data.Word