{-# LANGUAGE TypeSynonymInstances #-}
module Crypto.PubKey.Xml.Errors where
import Control.Exception
import Data.Either
data XmlVerifyError = XmlSecInitFailed
| XmlSecIncomp
| XmlSecCryptoFail
| CryptoInitFailed
| XmlCryptoFailed
| XmlParseFail
| XmlNoStartNode
| XmlSigCreateFail
| XmlPemLoadFail
| XmlPemNameFail
| VeryifyFail
instance Show XmlVerifyError where
show :: XmlVerifyError -> String
show XmlVerifyError
XmlSecInitFailed = String
"xmlsec initialization failed"
show XmlVerifyError
XmlSecIncomp = String
"loaded xmlsec library version is not compatible"
show XmlVerifyError
XmlSecCryptoFail = String
"unable to load default xmlsec-crypto library"
show XmlVerifyError
CryptoInitFailed = String
"crypto initialization failed"
show XmlVerifyError
XmlCryptoFailed = String
"xmlsec-crypto initialization failed"
show XmlVerifyError
XmlParseFail = String
"unable to parse file"
show XmlVerifyError
XmlNoStartNode = String
"start node not found"
show XmlVerifyError
XmlSigCreateFail = String
"failed to create signature context"
show XmlVerifyError
XmlPemLoadFail = String
"failed to load public pem key"
show XmlVerifyError
XmlPemNameFail = String
"failed to set key name for key"
show XmlVerifyError
VeryifyFail = String
"signature verify fail"
instance Exception XmlVerifyError
throwXmlError :: IO (Either XmlVerifyError a) -> IO a
throwXmlError :: IO (Either XmlVerifyError a) -> IO a
throwXmlError IO (Either XmlVerifyError a)
res = IO (Either XmlVerifyError a)
res IO (Either XmlVerifyError a)
-> (Either XmlVerifyError a -> IO a) -> IO a
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (XmlVerifyError -> IO a)
-> (a -> IO a) -> Either XmlVerifyError a -> IO a
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either XmlVerifyError -> IO a
forall e a. Exception e => e -> IO a
throwIO a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return