From 6c289708280f721338a3f334196cf92f99ea2d14 Mon Sep 17 00:00:00 2001 From: Piyush P Kurur Date: Wed, 22 Mar 2017 11:04:54 +0530 Subject: one more instance of showBase16 removed. --- HTTP/ProofOfWork.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'HTTP') diff --git a/HTTP/ProofOfWork.hs b/HTTP/ProofOfWork.hs index 61fea20..a8d24f7 100644 --- a/HTTP/ProofOfWork.hs +++ b/HTTP/ProofOfWork.hs @@ -109,7 +109,7 @@ mkRequestID secret = mkRequeestID' secret <$> mkRandomSalt mkRequeestID' :: RequestIDSecret -> RandomSalt -> RequestID mkRequeestID' (RequestIDSecret key) salt = let hmac = Raaz.hmacSha256 key (encodeUtf8 $ fromRandomSalt salt) - in RequestID salt (T.pack (showBase16 hmac)) + in RequestID salt $ T.toByteString (Raaz.encode hmac :: Base16) validRequestID :: RequestIDSecret -> RequestID -> Bool validRequestID secret rid = -- cgit v1.2.3 From 93ca7719e1889e16cfe6704f2d69a1b0bdc1272e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 22 Mar 2017 09:43:46 -0400 Subject: fix indent --- HTTP/ProofOfWork.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'HTTP') diff --git a/HTTP/ProofOfWork.hs b/HTTP/ProofOfWork.hs index a8d24f7..0237347 100644 --- a/HTTP/ProofOfWork.hs +++ b/HTTP/ProofOfWork.hs @@ -109,7 +109,7 @@ mkRequestID secret = mkRequeestID' secret <$> mkRandomSalt mkRequeestID' :: RequestIDSecret -> RandomSalt -> RequestID mkRequeestID' (RequestIDSecret key) salt = let hmac = Raaz.hmacSha256 key (encodeUtf8 $ fromRandomSalt salt) - in RequestID salt $ T.toByteString (Raaz.encode hmac :: Base16) + in RequestID salt $ T.toByteString (Raaz.encode hmac :: Base16) validRequestID :: RequestIDSecret -> RequestID -> Bool validRequestID secret rid = -- cgit v1.2.3 From 11dff5f1cae3c434e32c1619b339c7c7cb8af218 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 3 Apr 2017 15:04:55 -0400 Subject: fix bad patch in 6c289708280f721338a3f334196cf92f99ea2d14 That did not compile it seems and seems I didn't test it either before applying. This should do the same thing. --- HTTP/ProofOfWork.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'HTTP') diff --git a/HTTP/ProofOfWork.hs b/HTTP/ProofOfWork.hs index 0237347..54e2223 100644 --- a/HTTP/ProofOfWork.hs +++ b/HTTP/ProofOfWork.hs @@ -16,7 +16,7 @@ import ByteStrings import GHC.Generics import qualified Data.Text as T import qualified Data.ByteString as B -import Data.Text.Encoding (encodeUtf8) +import Data.Text.Encoding (decodeUtf8, encodeUtf8) import Raaz.Core.Encode import qualified Raaz import Data.BloomFilter.Hash @@ -109,7 +109,7 @@ mkRequestID secret = mkRequeestID' secret <$> mkRandomSalt mkRequeestID' :: RequestIDSecret -> RandomSalt -> RequestID mkRequeestID' (RequestIDSecret key) salt = let hmac = Raaz.hmacSha256 key (encodeUtf8 $ fromRandomSalt salt) - in RequestID salt $ T.toByteString (Raaz.encode hmac :: Base16) + in RequestID salt $ decodeUtf8 $ Raaz.toByteString (Raaz.encode hmac :: Base16) validRequestID :: RequestIDSecret -> RequestID -> Bool validRequestID secret rid = -- cgit v1.2.3 From 13fa279af67fad0305697682ee3c039061cb94bf Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 3 Apr 2017 15:10:32 -0400 Subject: Fix build with some versions of servant. Application is exported by Servant 0.8.1, but apparently not by some other versions that the cabal file allows to be used. Explictly import from Network.Wai --- CHANGELOG | 6 ++++++ HTTP/Server.hs | 1 + 2 files changed, 7 insertions(+) (limited to 'HTTP') diff --git a/CHANGELOG b/CHANGELOG index 60167a0..bd5e4ee 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +keysafe (0.20170304) UNRELEASED; urgency=medium + + * Fix build with some versions of servant. + + -- Joey Hess Mon, 03 Apr 2017 15:09:28 -0400 + keysafe (0.20170303) unstable; urgency=medium * Updated to use raaz-0.1.1. diff --git a/HTTP/Server.hs b/HTTP/Server.hs index 61bdbfd..1abcc56 100644 --- a/HTTP/Server.hs +++ b/HTTP/Server.hs @@ -18,6 +18,7 @@ import CmdLine (ServerConfig(..)) import Storage.Local import Serialization () import Servant +import Network.Wai (Application) import Network.Wai.Handler.Warp import Control.Monad.IO.Class import Control.Concurrent -- cgit v1.2.3 From a40c18436fb5a58c1636a0980f704ac8e0e2867c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 10 Aug 2017 14:52:04 -0400 Subject: updated to http-client 0.5.3, servant 0.11 and stackage lts-9.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit servant broke backwards compatibility; did not try to maintain back-compat (would be possible). New http-client exported some stuff I need; simplified code; did not try to maintain back-compat, although it would not be hard. Test suite passes. This commit was sponsored by Øyvind Andersen Holm. --- CmdLine.hs | 1 + HTTP/Client.hs | 25 ++++++++----------------- keysafe.cabal | 16 ++++++++-------- stack.yaml | 17 +++++------------ 4 files changed, 22 insertions(+), 37 deletions(-) (limited to 'HTTP') diff --git a/CmdLine.hs b/CmdLine.hs index 3ba4e23..0f89fe4 100644 --- a/CmdLine.hs +++ b/CmdLine.hs @@ -14,6 +14,7 @@ import Storage.Network import Tunables import qualified Gpg import Options.Applicative +import Data.Monoid import qualified Data.ByteString.UTF8 as BU8 import qualified Data.Text as T import System.Directory diff --git a/HTTP/Client.hs b/HTTP/Client.hs index 25ff536..9626eab 100644 --- a/HTTP/Client.hs +++ b/HTTP/Client.hs @@ -15,11 +15,8 @@ import Servant.API import Servant.Client import Data.Proxy import Network.HTTP.Client hiding (port, host, Proxy) -import Network.HTTP.Client.Internal (Connection, makeConnection) -import Control.Monad.Trans.Except (ExceptT, runExceptT) +import Network.HTTP.Client.Internal (Connection) import Control.Exception -import qualified Network.Socket -import Network.Socket.ByteString (sendAll, recv) import Network.Socks5 import qualified Data.ByteString.UTF8 as BU8 import Data.List @@ -28,10 +25,10 @@ import Data.Char httpAPI :: Proxy HttpAPI httpAPI = Proxy -motd :: Manager -> BaseUrl -> ClientM Motd -getObject :: StorableObjectIdent -> Maybe ProofOfWork -> Manager -> BaseUrl -> ClientM (POWGuarded StorableObject) -putObject :: StorableObjectIdent -> Maybe ProofOfWork -> StorableObject -> Manager -> BaseUrl -> ClientM (POWGuarded StoreResult) -countObjects :: Maybe ProofOfWork -> Manager -> BaseUrl -> ClientM (POWGuarded CountResult) +motd :: ClientM Motd +getObject :: StorableObjectIdent -> Maybe ProofOfWork -> ClientM (POWGuarded StorableObject) +putObject :: StorableObjectIdent -> Maybe ProofOfWork -> StorableObject -> ClientM (POWGuarded StoreResult) +countObjects :: Maybe ProofOfWork -> ClientM (POWGuarded CountResult) motd :<|> getObject :<|> putObject :<|> countObjects = client httpAPI tryA :: IO a -> IO (Either SomeException a) @@ -43,7 +40,7 @@ serverRequest -> (String -> a) -> (r -> a) -> p - -> (Maybe ProofOfWork -> Manager -> BaseUrl -> ExceptT ServantError IO (POWGuarded r)) + -> (Maybe ProofOfWork -> ClientM (POWGuarded r)) -> IO a serverRequest srv onerr onsuccess p a = do r <- tryA $ go Nothing maxProofOfWork @@ -69,7 +66,7 @@ serverRequest srv onerr onsuccess p a = do -- comparing IP addresses (which are masked somewhat by using tor). serverRequest' :: Server - -> (Manager -> BaseUrl -> ExceptT ServantError IO r) + -> (ClientM r) -> IO (Either String r) serverRequest' srv a = go Nothing (serverUrls srv) where @@ -77,7 +74,7 @@ serverRequest' srv a = go Nothing (serverUrls srv) maybe "no known address" (\err -> "server failure: " ++ show err) lasterr go _ (url:urls) = do manager <- torableManager - res <- runExceptT $ a manager url + res <- runClientM a (ClientEnv manager url) case res of Left err -> go (Just err) urls Right r -> return (Right r) @@ -104,12 +101,6 @@ torConnection onionaddress p = do socksdomain = SocksAddrDomainName (BU8.fromString onionaddress) socksaddr = SocksAddress socksdomain (fromIntegral p) -socketConnection :: Network.Socket.Socket -> Int -> IO Connection -socketConnection socket chunksize = makeConnection - (recv socket chunksize) - (sendAll socket) - (Network.Socket.close socket) - serverUrls :: Server -> [BaseUrl] serverUrls srv = map go (serverAddress srv) where diff --git a/keysafe.cabal b/keysafe.cabal index 99330e4..dd574bc 100644 --- a/keysafe.cabal +++ b/keysafe.cabal @@ -51,18 +51,18 @@ Executable keysafe , unix == 2.7.* , filepath == 1.4.* , split == 0.2.* - , directory == 1.2.* + , directory (>= 1.2 && < 1.4) , process (>= 1.2 && < 1.5) - , optparse-applicative == 0.12.* + , optparse-applicative (>= 0.12 && < 0.14) , readline == 1.0.* , zxcvbn-c == 1.0.* - , servant (>= 0.7 && < 0.9) - , servant-server (>= 0.7 && < 0.9) - , servant-client (>= 0.7 && < 0.9) - , aeson == 0.11.* + , servant (>= 0.7 && < 0.12) + , servant-server (>= 0.7 && < 0.12) + , servant-client (>= 0.7 && < 0.12) + , aeson (>= 0.11 && < 1.2) , wai == 3.2.* , warp == 3.2.* - , http-client == 0.4.* + , http-client (>= 0.5.3 && < 0.6) , transformers (>= 0.4 && < 0.6) , stm == 2.4.* , socks == 0.5.* @@ -78,7 +78,7 @@ Executable keysafe , unix-compat == 0.4.* , exceptions == 0.8.* , random-shuffle == 0.0.* - , MonadRandom == 0.4.* + , MonadRandom (>= 0.4 && < 0.6) Other-Modules: AutoStart BackupLog diff --git a/stack.yaml b/stack.yaml index 0deb662..6704d6b 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,16 +1,9 @@ packages: - '.' -resolver: lts-6.12 +resolver: lts-9.0 extra-deps: - - secret-sharing-1.0.0.3 - - dice-entropy-conduit-1.0.0.1 - - polynomial-0.7.2 - - finite-field-0.8.0 - - raaz-0.1.1 - - zxcvbn-c-1.0.0 - - servant-0.7.1 - - servant-server-0.7.1 - - servant-client-0.7.1 - - token-bucket-0.1.0.1 - - argon2-1.2.0 +- argon2-1.2.0 +- secret-sharing-1.0.0.3 +- dice-entropy-conduit-1.0.0.1 +- polynomial-0.7.3 explicit-setup-deps: -- cgit v1.2.3