packages feed

botan-low-0.1.0.0: test/Test/Botan/Low/HOTP.hs

{-# LANGUAGE OverloadedStrings #-}

module Test.Botan.Low.HOTP (tests) where

import           Botan.Low.HOTP
import           Data.ByteString
import           Test.Hspec
import           Test.Tasty
import           Test.Tasty.Hspec
import           Test.Util.ByteString
import           Test.Util.Hspec

tests :: IO TestTree
tests = do
    specs <- testSpec "spec_HOTP" spec_HOTP
    pure $ testGroup "Test.Botan.Low.HOTP" [
        specs
      ]

key :: ByteString
key = "Fee fi fo fum"

counter :: HOTPCounter
counter = 12345

spec_HOTP :: Spec
spec_HOTP = testSuite hotpHashes chars $ \ h -> do
    it "hotpInit" $ do
        _ctx <- hotpInit key h 6
        pass
    it "hotpGenerate" $ do
        ctx <- hotpInit key h 6
        _code <- hotpGenerate ctx counter
        pass
    it "hotpCheck" $ do
        ctx <- hotpInit key h 6
        code <- hotpGenerate ctx counter
        (success,_next) <- hotpCheck ctx code counter 0
        success `shouldBe` True