2019-09-08 10:48:57 +00:00
|
|
|
module Types.Reader where
|
|
|
|
|
|
|
|
import Network.HTTP.Client (Manager)
|
|
|
|
|
|
|
|
import Servant (Handler)
|
2019-09-16 07:44:46 +00:00
|
|
|
import Servant.Client (ClientEnv)
|
2019-09-08 10:48:57 +00:00
|
|
|
|
|
|
|
import Control.Monad.Reader (ReaderT)
|
|
|
|
|
2019-12-20 07:49:06 +00:00
|
|
|
import qualified Data.Text as T
|
2019-09-08 15:27:38 +00:00
|
|
|
import Data.Text.I18n
|
|
|
|
|
2019-09-17 19:29:56 +00:00
|
|
|
import Crypto.KDF.PBKDF2
|
|
|
|
import Crypto.Hash.Algorithms
|
|
|
|
|
2019-09-08 10:48:57 +00:00
|
|
|
data ReadState = ReadState
|
2019-09-16 07:44:46 +00:00
|
|
|
-- { rsManager :: Manager
|
2019-12-20 07:49:06 +00:00
|
|
|
{ rsL10n :: L10n
|
|
|
|
, rsBackend :: ClientEnv
|
|
|
|
, rsHashParams :: HashParams
|
|
|
|
, rsCurrencySymbol :: T.Text
|
|
|
|
, rsBackendVersion :: T.Text
|
2019-09-08 10:48:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
type UserHandler = ReaderT ReadState Handler
|
2019-09-17 19:29:56 +00:00
|
|
|
|
|
|
|
data HashParams = HashParams
|
|
|
|
{ hashIterations :: Int
|
|
|
|
, hashSaltLength :: Int
|
|
|
|
, hashOutputLength :: Int
|
|
|
|
}
|
|
|
|
|
|
|
|
recommendedHashParams = HashParams
|
|
|
|
{ hashIterations = 8000
|
|
|
|
, hashSaltLength = 23
|
|
|
|
, hashOutputLength = 512
|
|
|
|
}
|