{-# LANGUAGE CApiFFI #-}
module Botan.Bindings.Bcrypt (
pattern BOTAN_BCRYPT_WORK_FACTOR_FAST
, pattern BOTAN_BCRYPT_WORK_FACTOR_GOOD
, pattern BOTAN_BCRYPT_WORK_FACTOR_STRONG
, botan_bcrypt_generate
, botan_bcrypt_is_valid
) where
import Botan.Bindings.ConstPtr
import Botan.Bindings.RNG
import Data.Word
import Foreign.C.Types
import Foreign.Ptr
pattern BOTAN_BCRYPT_WORK_FACTOR_FAST
, BOTAN_BCRYPT_WORK_FACTOR_GOOD
, BOTAN_BCRYPT_WORK_FACTOR_STRONG
:: (Eq a, Num a) => a
pattern $bBOTAN_BCRYPT_WORK_FACTOR_FAST :: forall a. (Eq a, Num a) => a
$mBOTAN_BCRYPT_WORK_FACTOR_FAST :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
BOTAN_BCRYPT_WORK_FACTOR_FAST = 12
pattern $bBOTAN_BCRYPT_WORK_FACTOR_GOOD :: forall a. (Eq a, Num a) => a
$mBOTAN_BCRYPT_WORK_FACTOR_GOOD :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
BOTAN_BCRYPT_WORK_FACTOR_GOOD = 14
pattern $bBOTAN_BCRYPT_WORK_FACTOR_STRONG :: forall a. (Eq a, Num a) => a
$mBOTAN_BCRYPT_WORK_FACTOR_STRONG :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
BOTAN_BCRYPT_WORK_FACTOR_STRONG = 16
foreign import capi safe "botan/ffi.h botan_bcrypt_generate"
botan_bcrypt_generate
:: Ptr Word8
-> Ptr CSize
-> ConstPtr CChar
-> BotanRNG
-> CSize
-> Word32
-> IO CInt
foreign import capi safe "botan/ffi.h botan_bcrypt_is_valid"
botan_bcrypt_is_valid
:: ConstPtr CChar
-> ConstPtr CChar
-> IO CInt