yu-auth-0.1.0.0: test-src/test-core.hs
module Main where
import Control.Monad.Random
import Data.Char
import Data.String
import System.Exit
import System.Random
import Yu.Auth.Core
import qualified Yu.Import.ByteString as B
main :: IO ()
main = do
putStrLn "Yu.Auth.Core test"
str <- mkRandomStrMax 100
let token = generateHash SHA1 str
rt1 = verifyHash SHA1 str token
rt2 = verifyHash SHA1 (B.init str) token
print (rt1,rt2)
if rt1 && (not rt2) then exitSuccess
else exitFailure
mkRandomStr :: IsString str => Int -> IO str
mkRandomStr len = fromString . ((chr . (`mod` 128)) <$>) . take len <$> getRandoms
mkRandomStrMax :: IsString str => Int -> IO str
mkRandomStrMax len = (`mod` len) <$> getRandom >>= mkRandomStr