packages feed

xml-verify-0.1.0.0: src/Crypto/PubKey/Xml/Arrows.hs

{-|
Description: Arrow interface for signing and verifying XML documents
-}

module Crypto.PubKey.Xml.Arrows where

import qualified Crypto.PubKey.Xml as X
import Crypto.PubKey.Xml.Errors

import Text.XML.HXT.Core
import Data.X509

-- | Filters out XML if key validation fails
isSigned :: (ArrowIOIf a) => PubKey -> a XmlTree XmlTree
isSigned key = isIOA $ \ xml -> throwXmlError $ X.verifyXml xml key

-- | Filters out XML if key validation fails
isSignedPem :: (ArrowIOIf a) => FilePath -> a XmlTree XmlTree
isSignedPem pem = isIOA $ \xml -> throwXmlError $ X.verifyXmlPem xml pem