-- | -- Module : Crypto.Store.PEM -- License : BSD-style -- Maintainer : Olivier Chéron -- Stability : experimental -- Portability : unknown -- -- Extend module "Data.PEM". module Crypto.Store.PEM ( readPEMs , writePEMs , pemsWriteBS , pemsWriteLBS , module Data.PEM ) where import Data.PEM import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L -- | Read a PEM file from disk. readPEMs :: FilePath -> IO [PEM] readPEMs filepath = either error id . pemParseLBS <$> L.readFile filepath -- | Convert a list of PEM elements to a bytestring. pemsWriteBS :: [PEM] -> B.ByteString pemsWriteBS = L.toStrict . pemsWriteLBS -- | Convert a list of PEM elements to a lazy bytestring. pemsWriteLBS :: [PEM] -> L.ByteString pemsWriteLBS = L.concat . map pemWriteLBS -- | Write a PEM file to disk. writePEMs :: FilePath -> [PEM] -> IO () writePEMs filepath = L.writeFile filepath . pemsWriteLBS