botan-bindings-0.3.0.0: src/Botan/Bindings/PubKey/Verify.hsc
{-|
Module : Botan.Bindings.Verify
Description : Signature Verification
Copyright : (c) 2023-2024, Apotheca Labs
(c) 2024-2025, Haskell Foundation
License : BSD-3-Clause
Maintainer : joris@well-typed.com, leo@apotheca.io
Stability : experimental
Portability : POSIX
-}
{-# LANGUAGE CApiFFI #-}
module Botan.Bindings.PubKey.Verify (
BotanPKOpVerifyStruct
, BotanPKOpVerify (..)
, botan_pk_op_verify_destroy
, botan_pk_op_verify_create
, botan_pk_op_verify_update
, botan_pk_op_verify_finish
, pattern BOTAN_PUBKEY_STD_FORMAT_SIGNATURE
, pattern BOTAN_PUBKEY_DER_FORMAT_SIGNATURE
) where
import Botan.Bindings.ConstPtr
import Botan.Bindings.PubKey
import Botan.Bindings.PubKey.Sign
import Data.Word
import Foreign.C.Types
import Foreign.ForeignPtr
import Foreign.Ptr
import Foreign.Storable
-- | Opaque verify struct
data {-# CTYPE "botan/ffi.h" "struct botan_pk_op_verify_struct" #-} BotanPKOpVerifyStruct
-- | Botan verify object
newtype {-# CTYPE "botan/ffi.h" "botan_pk_op_verify_t" #-} BotanPKOpVerify
= MkBotanPKOpVerify { ptr :: Ptr BotanPKOpVerifyStruct }
deriving newtype (Eq, Ord, Storable)
-- | Destroy a verify object
foreign import capi safe "botan/ffi.h &botan_pk_op_verify_destroy"
botan_pk_op_verify_destroy
:: FinalizerPtr BotanPKOpVerifyStruct
-- | Uses the same flags as botan_pk_op_sign_create
foreign import capi safe "botan/ffi.h botan_pk_op_verify_create"
botan_pk_op_verify_create
:: Ptr BotanPKOpVerify -- ^ __op__
-> BotanPubKey -- ^ __key__
-> ConstPtr CChar -- ^ __hash_and_padding__
-> Word32 -- ^ __flags__
-> IO CInt
foreign import capi safe "botan/ffi.h botan_pk_op_verify_update"
botan_pk_op_verify_update
:: BotanPKOpVerify -- ^ __op__
-> ConstPtr Word8 -- ^ __in[]__
-> CSize -- ^ __in_len__
-> IO CInt
foreign import capi safe "botan/ffi.h botan_pk_op_verify_finish"
botan_pk_op_verify_finish
:: BotanPKOpVerify -- ^ __op__
-> ConstPtr Word8 -- ^ __sig[]__
-> CSize -- ^ __sig_len__
-> IO CInt