{-# LANGUAGE ForeignFunctionInterface #-}
module OpenSSL.ERR
    ( getError
    , peekError

    , errorString
    )
    where
import Foreign
import Foreign.C

foreign import ccall unsafe "ERR_get_error"
    getError :: IO CULong

foreign import ccall unsafe "ERR_peek_error"
    peekError :: IO CULong

foreign import ccall unsafe "ERR_error_string"
    _error_string :: CULong -> CString -> IO CString

errorString :: CULong -> IO String
errorString code
    = _error_string code nullPtr >>= peekCString