{-# LANGUAGE CApiFFI #-}
module Botan.Bindings.PwdHash where
import Botan.Bindings.Prelude
pattern BOTAN_PBKDF_PBKDF2
, BOTAN_PBKDF_SCRYPT
, BOTAN_PBKDF_ARGON2D
, BOTAN_PBKDF_ARGON2I
, BOTAN_PBKDF_ARGON2ID
, BOTAN_PBKDF_BCRYPT_PBKDF
, BOTAN_PBKDF_OPENPGP_S2K
:: (Eq a, IsString a) => a
pattern $mBOTAN_PBKDF_PBKDF2 :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bBOTAN_PBKDF_PBKDF2 :: forall a. (Eq a, IsString a) => a
BOTAN_PBKDF_PBKDF2 = "PBKDF2"
pattern $mBOTAN_PBKDF_SCRYPT :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bBOTAN_PBKDF_SCRYPT :: forall a. (Eq a, IsString a) => a
BOTAN_PBKDF_SCRYPT = "Scrypt"
pattern $mBOTAN_PBKDF_ARGON2D :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bBOTAN_PBKDF_ARGON2D :: forall a. (Eq a, IsString a) => a
BOTAN_PBKDF_ARGON2D = "Argon2d"
pattern $mBOTAN_PBKDF_ARGON2I :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bBOTAN_PBKDF_ARGON2I :: forall a. (Eq a, IsString a) => a
BOTAN_PBKDF_ARGON2I = "Argon2i"
pattern $mBOTAN_PBKDF_ARGON2ID :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bBOTAN_PBKDF_ARGON2ID :: forall a. (Eq a, IsString a) => a
BOTAN_PBKDF_ARGON2ID = "Argon2id"
pattern $mBOTAN_PBKDF_BCRYPT_PBKDF :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bBOTAN_PBKDF_BCRYPT_PBKDF :: forall a. (Eq a, IsString a) => a
BOTAN_PBKDF_BCRYPT_PBKDF = "Bcrypt-PBKDF"
pattern $mBOTAN_PBKDF_OPENPGP_S2K :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bBOTAN_PBKDF_OPENPGP_S2K :: forall a. (Eq a, IsString a) => a
BOTAN_PBKDF_OPENPGP_S2K = "OpenPGP-S2K"
foreign import capi safe "botan/ffi.h botan_pwdhash"
botan_pwdhash
:: ConstPtr CChar
-> CSize
-> CSize
-> CSize
-> Ptr Word8
-> CSize
-> ConstPtr CChar
-> CSize
-> ConstPtr Word8
-> CSize
-> IO CInt
foreign import capi safe "botan/ffi.h botan_pwdhash_timed"
botan_pwdhash_timed
:: ConstPtr CChar
-> Word32
-> Ptr CSize
-> Ptr CSize
-> Ptr CSize
-> Ptr Word8
-> CSize
-> ConstPtr CChar
-> CSize
-> ConstPtr Word8
-> CSize
-> IO CInt