crypto-totp 0.1.0.0 → 0.1.0.1
raw patch · 2 files changed
+14/−8 lines, 2 files
Files
- Crypto/MAC/TOTP/Verifier.hs +5/−6
- crypto-totp.cabal +9/−2
Crypto/MAC/TOTP/Verifier.hs view
@@ -16,7 +16,6 @@ import qualified Data.ByteString as BS import Data.ByteString (ByteString) import qualified Data.List as List -import Data.Int import qualified Data.Set as Set import System.Posix.Time import System.Posix.Types (EpochTime) @@ -80,12 +79,12 @@ t <- forkIO (tryRefreshEvery verifier' delay verifierRef) return (t, verifierRef) -graceCount :: CTime -> CTime -> Int64 -graceCount (CTime graceSeconds) (CTime validSeconds) = +graceCount :: CTime -> CTime -> CTime +graceCount graceSeconds validSeconds = let (d, m) = graceSeconds `divMod` validSeconds in d + if m > 0 then 1 else 0 -graceCountV :: Verifier -> Int64 +graceCountV :: Verifier -> CTime graceCountV v = graceCount (graceSeconds v) (Factory.validSeconds . factory $ v) @@ -94,7 +93,7 @@ let initGraceAux n accum = let gf = Factory.initGrace factory' n in (GraceVerifier gf Set.empty):accum - in foldr initGraceAux [] (map CTime [1..graceCount graceSeconds validSeconds]) + in foldr initGraceAux [] [1..graceCount graceSeconds validSeconds] refreshGrace :: Verifier -> Verifier -> Verifier refreshGrace verifierOld verifierNew = @@ -106,7 +105,7 @@ (GraceVerifier gf Set.empty):accum Just f -> f:accum - in verifierNew { grace = foldr refreshGraceAux [] (map CTime [1..graceCountV verifierNew]) } + in verifierNew { grace = foldr refreshGraceAux [] [1..graceCountV verifierNew] } shouldRefresh :: EpochTime -> Verifier -> Bool shouldRefresh time v =
crypto-totp.cabal view
@@ -2,9 +2,16 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: crypto-totp -version: 0.1.0.0 +version: 0.1.0.1 synopsis: Provides generation and verification services for time-based one-time keys. -description: Please see http://tools.ietf.org/html/rfc6238 +description: + Generate and verify one-time keys. + . + Please see <http://tools.ietf.org/html/rfc6238>. + . + Changes: + . + 0.1.0.1: Hopefully works with 32-bit integer CTime. license: BSD3 license-file: LICENSE author: Jeff Shaw