botan-bindings-0.0.1.0: src/Botan/Bindings/X509/Store.hs
module Botan.Bindings.X509.Store where
import Botan.Bindings.Error
import Botan.Bindings.Prelude
import Botan.Bindings.PubKey
import Botan.Bindings.RNG
import Botan.Bindings.X509
data X509CertStoreStruct
type X509CertStorePtr = Ptr X509CertStoreStruct
foreign import ccall unsafe "&botan_x509_cert_store_destroy" botan_x509_cert_store_destroy :: FinalizerPtr X509CertStoreStruct
foreign import ccall unsafe botan_x509_cert_store_find_cert
:: Ptr X509CertPtr
-> X509CertStorePtr
-> Ptr Word8 -> CSize
-> Ptr Word8 -> CSize
-> IO BotanErrorCode
-- // NOTE: Returns an array of results
-- // SEE: Discussion on arrays / ownership
-- NOTE: FFI function is actually x509_cert_t** but should be x509_cert_t* like here
foreign import ccall unsafe botan_x509_cert_store_find_all_certs
:: Ptr X509CertPtr -> Ptr CSize
-> X509CertStorePtr
-> Ptr Word8 -> CSize
-> Ptr Word8 -> CSize
-> IO BotanErrorCode
foreign import ccall unsafe botan_x509_cert_store_find_cert_by_pubkey_sha1
:: Ptr X509CertPtr
-> X509CertStorePtr
-> Ptr Word8 -- NOTE: SHA1 hash length is static, so we can just drop the size_t
-> IO BotanErrorCode
foreign import ccall unsafe botan_x509_cert_store_find_cert_by_raw_subject_dn_sha256
:: Ptr X509CertPtr
-> X509CertStorePtr
-> Ptr Word8 -- NOTE: SHA1 hash length is static, so we can just drop the size_t
-> IO BotanErrorCode
foreign import ccall unsafe botan_x509_cert_store_find_crl_for
:: Ptr X509CRLPtr
-> X509CertStorePtr
-> X509CertPtr
-> IO BotanErrorCode
-- // NOTE: Returns cert_store.certificate_known ? 0 : -1;
foreign import ccall unsafe botan_x509_cert_store_certificate_known
:: X509CertStorePtr
-> X509CertPtr
-> IO BotanErrorCode
{-
In-memory cert store
-}
foreign import ccall unsafe botan_x509_cert_store_in_memory_load_dir
:: Ptr X509CertStorePtr
-> Ptr CChar
-> IO BotanErrorCode
foreign import ccall unsafe botan_x509_cert_store_in_memory_load_cert
:: Ptr X509CertStorePtr
-> X509CertPtr
-> IO BotanErrorCode
foreign import ccall unsafe botan_x509_cert_store_in_memory_create
:: Ptr X509CertStorePtr
-> IO BotanErrorCode
foreign import ccall unsafe botan_x509_cert_store_in_memory_add_certificate
:: X509CertStorePtr
-> X509CertPtr
-> IO BotanErrorCode
foreign import ccall unsafe botan_x509_cert_store_in_memory_add_crl
:: X509CertStorePtr
-> X509CRLPtr
-> IO BotanErrorCode
{-
Flatfile cert store
-}
foreign import ccall unsafe botan_x509_cert_store_flatfile_create
:: Ptr X509CertStorePtr
-> Ptr CChar
-> CBool
-> IO BotanErrorCode
{-
SQL cert store
-}
-- NOTE: Returns boolean success code
foreign import ccall unsafe botan_x509_cert_store_sql_insert_cert
:: X509CertStorePtr
-> X509CertPtr
-> IO BotanErrorCode
-- NOTE: Returns boolean success code
foreign import ccall unsafe botan_x509_cert_store_sql_remove_cert
:: X509CertStorePtr
-> X509CertPtr
-> IO BotanErrorCode
-- NOTE: Returns nullPtr if not found
foreign import ccall unsafe botan_x509_cert_store_sql_find_key
:: Ptr PrivKeyPtr
-> X509CertStorePtr
-> X509CertPtr
-> IO BotanErrorCode
-- NOTE: See notes about returning arrays of things, improper return pointer type
foreign import ccall unsafe botan_x509_cert_store_sql_find_certs_for_key
:: Ptr X509CertPtr -> Ptr CSize
-> X509CertStorePtr
-> PrivKeyPtr
-> IO BotanErrorCode
-- NOTE: Returns boolean success code
foreign import ccall unsafe botan_x509_cert_store_sql_insert_key
:: X509CertStorePtr
-> X509CertPtr
-> PrivKeyPtr
-> IO BotanErrorCode
-- NOTE: *DOES NOT* return boolean success code
foreign import ccall unsafe botan_x509_cert_store_sql_remove_key
:: X509CertStorePtr
-> PrivKeyPtr
-> IO BotanErrorCode
foreign import ccall unsafe botan_x509_cert_store_sql_revoke_cert
:: X509CertStorePtr
-> X509CertPtr
-> Word32
-> Word64
-> IO BotanErrorCode
foreign import ccall unsafe botan_x509_cert_store_sql_affirm_cert
:: X509CertStorePtr
-> X509CertPtr
-> IO BotanErrorCode
-- NOTE: See notes about returning arrays of things, improper return pointer type
foreign import ccall unsafe botan_x509_cert_store_sql_generate_crls
:: Ptr X509CRLPtr -> Ptr CSize
-> X509CertStorePtr
-> IO BotanErrorCode
{-
SQLite3 cert store
-}
foreign import ccall unsafe botan_x509_cert_store_sqlite3_create
:: Ptr X509CertStorePtr
-> Ptr CChar
-> Ptr CChar
-> RNGPtr
-> Ptr CChar
-> IO BotanErrorCode
{-
System cert store
-}
foreign import ccall unsafe botan_x509_cert_store_system_create
:: Ptr X509CertStorePtr
-> IO BotanErrorCode
{-
MacOS cert store
-}
foreign import ccall unsafe botan_x509_cert_store_macos_create
:: Ptr X509CertStorePtr
-> IO BotanErrorCode
{-
Windows cert store
-}
foreign import ccall unsafe botan_x509_cert_store_windows_create
:: Ptr X509CertStorePtr
-> IO BotanErrorCode