crypton-pem-0.2.4: Data/PEM/Types.hs
-- |
-- Module : Data.PEM.Types
-- License : BSD-style
-- Maintainer : Vincent Hanquez <vincent@snarc.org>
-- Stability : experimental
-- Portability : portable
--
module Data.PEM.Types where
import Data.ByteString (ByteString)
import Basement.NormalForm
-- | Represent one PEM section
--
-- for now headers are not serialized at all.
-- this is just available here as a placeholder for a later implementation.
data PEM = PEM
{ pemName :: String -- ^ the name of the section, found after the dash BEGIN tag.
, pemHeader :: [(String, ByteString)] -- ^ optionals key value pair header
, pemContent :: ByteString -- ^ binary content of the section
} deriving (Show,Eq)
instance NormalForm PEM where
toNormalForm pem =
toNormalForm (pemName pem) `seq` nfLbs (pemHeader pem) `seq` pemContent pem `seq` ()
where
nfLbs [] = ()
nfLbs ((s,bs):l) = toNormalForm s `seq` bs `seq` nfLbs l