packages feed

botan-low-0.0.2.0: test/Botan/Low/UtilitySpec.hs

module Main where

import Test.Prelude

import Botan.Low.Utility

import qualified Data.ByteString as ByteString

message = "Fee fi fo fum!"

hexMessage = "46656520666920666F2066756D21"

base64Message = "RmVlIGZpIGZvIGZ1bSE="

-- hexUpperMessage

main :: IO ()
main = hspec $ do
    it "constantTimeCompare" $ do
        equal <- constantTimeCompare "compare me" "compare me" (ByteString.length "compare me")
        equal `shouldBe` True
        pass
    -- TODO:
    -- it "scrubMem" $ do
    --     pass
    it "hexEncode" $ do
        hex <- hexEncode message HexUpperCase
        hex `shouldBe` hexMessage
        pass
    it "hexDecode" $ do
        msg <- hexDecode hexMessage
        msg `shouldBe` message
        pass
    it "base64Encode" $ do
        base64 <- base64Encode message
        base64 `shouldBe` base64Message
        pass
    it "base64Decode" $ do
        msg <- base64Decode base64Message
        msg `shouldBe` message
        pass