{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TemplateHaskell #-}
module Codec.Encryption.OpenPGP.Types.Internal.Pkt where
import GHC.Generics (Generic)
import Codec.Encryption.OpenPGP.Types.Internal.Base
import Codec.Encryption.OpenPGP.Types.Internal.PKITypes
import Codec.Encryption.OpenPGP.Types.Internal.PrettyUtils (prettyLBS)
import Control.Lens (makeLenses)
import Data.Aeson ((.=), object)
import qualified Data.Aeson as A
import Data.ByteString.Lazy (ByteString)
import qualified Data.ByteString.Lazy as BL
import Data.Data (Data(..), Constr, mkDataType, mkConstr, Fixity(Prefix))
import qualified Data.Data as DD
import Data.Hashable (Hashable(..))
import Data.List.NonEmpty (NonEmpty)
import qualified Data.List.NonEmpty as NE
import Data.Ord (comparing)
import Data.Text (Text)
import qualified Data.Text as T
import Data.Time.Clock (UTCTime)
import Data.Typeable (Typeable)
import Data.Word (Word8)
import Prettyprinter (Pretty(..), (<+>))
data PKESKPayloadVersion = PKESKV3 | PKESKV6
deriving (Typeable PKESKPayloadVersion
Typeable PKESKPayloadVersion =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PKESKPayloadVersion
-> c PKESKPayloadVersion)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayloadVersion)
-> (PKESKPayloadVersion -> Constr)
-> (PKESKPayloadVersion -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayloadVersion))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayloadVersion))
-> ((forall b. Data b => b -> b)
-> PKESKPayloadVersion -> PKESKPayloadVersion)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadVersion -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadVersion -> r)
-> (forall u.
(forall d. Data d => d -> u) -> PKESKPayloadVersion -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> PKESKPayloadVersion -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadVersion -> m PKESKPayloadVersion)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadVersion -> m PKESKPayloadVersion)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadVersion -> m PKESKPayloadVersion)
-> Data PKESKPayloadVersion
PKESKPayloadVersion -> Constr
PKESKPayloadVersion -> DataType
(forall b. Data b => b -> b)
-> PKESKPayloadVersion -> PKESKPayloadVersion
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> PKESKPayloadVersion -> u
forall u.
(forall d. Data d => d -> u) -> PKESKPayloadVersion -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadVersion -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadVersion -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadVersion -> m PKESKPayloadVersion
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadVersion -> m PKESKPayloadVersion
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayloadVersion
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PKESKPayloadVersion
-> c PKESKPayloadVersion
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayloadVersion)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayloadVersion)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PKESKPayloadVersion
-> c PKESKPayloadVersion
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> PKESKPayloadVersion
-> c PKESKPayloadVersion
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayloadVersion
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayloadVersion
$ctoConstr :: PKESKPayloadVersion -> Constr
toConstr :: PKESKPayloadVersion -> Constr
$cdataTypeOf :: PKESKPayloadVersion -> DataType
dataTypeOf :: PKESKPayloadVersion -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayloadVersion)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayloadVersion)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayloadVersion)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayloadVersion)
$cgmapT :: (forall b. Data b => b -> b)
-> PKESKPayloadVersion -> PKESKPayloadVersion
gmapT :: (forall b. Data b => b -> b)
-> PKESKPayloadVersion -> PKESKPayloadVersion
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadVersion -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadVersion -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadVersion -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadVersion -> r
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> PKESKPayloadVersion -> [u]
gmapQ :: forall u.
(forall d. Data d => d -> u) -> PKESKPayloadVersion -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PKESKPayloadVersion -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PKESKPayloadVersion -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadVersion -> m PKESKPayloadVersion
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadVersion -> m PKESKPayloadVersion
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadVersion -> m PKESKPayloadVersion
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadVersion -> m PKESKPayloadVersion
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadVersion -> m PKESKPayloadVersion
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadVersion -> m PKESKPayloadVersion
Data, PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
(PKESKPayloadVersion -> PKESKPayloadVersion -> Bool)
-> (PKESKPayloadVersion -> PKESKPayloadVersion -> Bool)
-> Eq PKESKPayloadVersion
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
== :: PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
$c/= :: PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
/= :: PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
Eq, (forall x. PKESKPayloadVersion -> Rep PKESKPayloadVersion x)
-> (forall x. Rep PKESKPayloadVersion x -> PKESKPayloadVersion)
-> Generic PKESKPayloadVersion
forall x. Rep PKESKPayloadVersion x -> PKESKPayloadVersion
forall x. PKESKPayloadVersion -> Rep PKESKPayloadVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PKESKPayloadVersion -> Rep PKESKPayloadVersion x
from :: forall x. PKESKPayloadVersion -> Rep PKESKPayloadVersion x
$cto :: forall x. Rep PKESKPayloadVersion x -> PKESKPayloadVersion
to :: forall x. Rep PKESKPayloadVersion x -> PKESKPayloadVersion
Generic, Eq PKESKPayloadVersion
Eq PKESKPayloadVersion =>
(Int -> PKESKPayloadVersion -> Int)
-> (PKESKPayloadVersion -> Int) -> Hashable PKESKPayloadVersion
Int -> PKESKPayloadVersion -> Int
PKESKPayloadVersion -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> PKESKPayloadVersion -> Int
hashWithSalt :: Int -> PKESKPayloadVersion -> Int
$chash :: PKESKPayloadVersion -> Int
hash :: PKESKPayloadVersion -> Int
Hashable, Eq PKESKPayloadVersion
Eq PKESKPayloadVersion =>
(PKESKPayloadVersion -> PKESKPayloadVersion -> Ordering)
-> (PKESKPayloadVersion -> PKESKPayloadVersion -> Bool)
-> (PKESKPayloadVersion -> PKESKPayloadVersion -> Bool)
-> (PKESKPayloadVersion -> PKESKPayloadVersion -> Bool)
-> (PKESKPayloadVersion -> PKESKPayloadVersion -> Bool)
-> (PKESKPayloadVersion
-> PKESKPayloadVersion -> PKESKPayloadVersion)
-> (PKESKPayloadVersion
-> PKESKPayloadVersion -> PKESKPayloadVersion)
-> Ord PKESKPayloadVersion
PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
PKESKPayloadVersion -> PKESKPayloadVersion -> Ordering
PKESKPayloadVersion -> PKESKPayloadVersion -> PKESKPayloadVersion
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PKESKPayloadVersion -> PKESKPayloadVersion -> Ordering
compare :: PKESKPayloadVersion -> PKESKPayloadVersion -> Ordering
$c< :: PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
< :: PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
$c<= :: PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
<= :: PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
$c> :: PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
> :: PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
$c>= :: PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
>= :: PKESKPayloadVersion -> PKESKPayloadVersion -> Bool
$cmax :: PKESKPayloadVersion -> PKESKPayloadVersion -> PKESKPayloadVersion
max :: PKESKPayloadVersion -> PKESKPayloadVersion -> PKESKPayloadVersion
$cmin :: PKESKPayloadVersion -> PKESKPayloadVersion -> PKESKPayloadVersion
min :: PKESKPayloadVersion -> PKESKPayloadVersion -> PKESKPayloadVersion
Ord, Int -> PKESKPayloadVersion -> ShowS
[PKESKPayloadVersion] -> ShowS
PKESKPayloadVersion -> String
(Int -> PKESKPayloadVersion -> ShowS)
-> (PKESKPayloadVersion -> String)
-> ([PKESKPayloadVersion] -> ShowS)
-> Show PKESKPayloadVersion
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PKESKPayloadVersion -> ShowS
showsPrec :: Int -> PKESKPayloadVersion -> ShowS
$cshow :: PKESKPayloadVersion -> String
show :: PKESKPayloadVersion -> String
$cshowList :: [PKESKPayloadVersion] -> ShowS
showList :: [PKESKPayloadVersion] -> ShowS
Show, Typeable)
data PKESKPayloadV3 =
PKESKPayloadV3
PacketVersion
EightOctetKeyId
PubKeyAlgorithm
(NonEmpty MPI)
deriving (Typeable PKESKPayloadV3
Typeable PKESKPayloadV3 =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PKESKPayloadV3 -> c PKESKPayloadV3)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayloadV3)
-> (PKESKPayloadV3 -> Constr)
-> (PKESKPayloadV3 -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayloadV3))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayloadV3))
-> ((forall b. Data b => b -> b)
-> PKESKPayloadV3 -> PKESKPayloadV3)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV3 -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV3 -> r)
-> (forall u.
(forall d. Data d => d -> u) -> PKESKPayloadV3 -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> PKESKPayloadV3 -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV3 -> m PKESKPayloadV3)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV3 -> m PKESKPayloadV3)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV3 -> m PKESKPayloadV3)
-> Data PKESKPayloadV3
PKESKPayloadV3 -> Constr
PKESKPayloadV3 -> DataType
(forall b. Data b => b -> b) -> PKESKPayloadV3 -> PKESKPayloadV3
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> PKESKPayloadV3 -> u
forall u. (forall d. Data d => d -> u) -> PKESKPayloadV3 -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV3 -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV3 -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV3 -> m PKESKPayloadV3
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV3 -> m PKESKPayloadV3
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayloadV3
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PKESKPayloadV3 -> c PKESKPayloadV3
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayloadV3)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayloadV3)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PKESKPayloadV3 -> c PKESKPayloadV3
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PKESKPayloadV3 -> c PKESKPayloadV3
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayloadV3
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayloadV3
$ctoConstr :: PKESKPayloadV3 -> Constr
toConstr :: PKESKPayloadV3 -> Constr
$cdataTypeOf :: PKESKPayloadV3 -> DataType
dataTypeOf :: PKESKPayloadV3 -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayloadV3)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayloadV3)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayloadV3)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayloadV3)
$cgmapT :: (forall b. Data b => b -> b) -> PKESKPayloadV3 -> PKESKPayloadV3
gmapT :: (forall b. Data b => b -> b) -> PKESKPayloadV3 -> PKESKPayloadV3
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV3 -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV3 -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV3 -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV3 -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PKESKPayloadV3 -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> PKESKPayloadV3 -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PKESKPayloadV3 -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PKESKPayloadV3 -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV3 -> m PKESKPayloadV3
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV3 -> m PKESKPayloadV3
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV3 -> m PKESKPayloadV3
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV3 -> m PKESKPayloadV3
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV3 -> m PKESKPayloadV3
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV3 -> m PKESKPayloadV3
Data, PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
(PKESKPayloadV3 -> PKESKPayloadV3 -> Bool)
-> (PKESKPayloadV3 -> PKESKPayloadV3 -> Bool) -> Eq PKESKPayloadV3
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
== :: PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
$c/= :: PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
/= :: PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
Eq, (forall x. PKESKPayloadV3 -> Rep PKESKPayloadV3 x)
-> (forall x. Rep PKESKPayloadV3 x -> PKESKPayloadV3)
-> Generic PKESKPayloadV3
forall x. Rep PKESKPayloadV3 x -> PKESKPayloadV3
forall x. PKESKPayloadV3 -> Rep PKESKPayloadV3 x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PKESKPayloadV3 -> Rep PKESKPayloadV3 x
from :: forall x. PKESKPayloadV3 -> Rep PKESKPayloadV3 x
$cto :: forall x. Rep PKESKPayloadV3 x -> PKESKPayloadV3
to :: forall x. Rep PKESKPayloadV3 x -> PKESKPayloadV3
Generic, Eq PKESKPayloadV3
Eq PKESKPayloadV3 =>
(Int -> PKESKPayloadV3 -> Int)
-> (PKESKPayloadV3 -> Int) -> Hashable PKESKPayloadV3
Int -> PKESKPayloadV3 -> Int
PKESKPayloadV3 -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> PKESKPayloadV3 -> Int
hashWithSalt :: Int -> PKESKPayloadV3 -> Int
$chash :: PKESKPayloadV3 -> Int
hash :: PKESKPayloadV3 -> Int
Hashable, Eq PKESKPayloadV3
Eq PKESKPayloadV3 =>
(PKESKPayloadV3 -> PKESKPayloadV3 -> Ordering)
-> (PKESKPayloadV3 -> PKESKPayloadV3 -> Bool)
-> (PKESKPayloadV3 -> PKESKPayloadV3 -> Bool)
-> (PKESKPayloadV3 -> PKESKPayloadV3 -> Bool)
-> (PKESKPayloadV3 -> PKESKPayloadV3 -> Bool)
-> (PKESKPayloadV3 -> PKESKPayloadV3 -> PKESKPayloadV3)
-> (PKESKPayloadV3 -> PKESKPayloadV3 -> PKESKPayloadV3)
-> Ord PKESKPayloadV3
PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
PKESKPayloadV3 -> PKESKPayloadV3 -> Ordering
PKESKPayloadV3 -> PKESKPayloadV3 -> PKESKPayloadV3
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PKESKPayloadV3 -> PKESKPayloadV3 -> Ordering
compare :: PKESKPayloadV3 -> PKESKPayloadV3 -> Ordering
$c< :: PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
< :: PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
$c<= :: PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
<= :: PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
$c> :: PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
> :: PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
$c>= :: PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
>= :: PKESKPayloadV3 -> PKESKPayloadV3 -> Bool
$cmax :: PKESKPayloadV3 -> PKESKPayloadV3 -> PKESKPayloadV3
max :: PKESKPayloadV3 -> PKESKPayloadV3 -> PKESKPayloadV3
$cmin :: PKESKPayloadV3 -> PKESKPayloadV3 -> PKESKPayloadV3
min :: PKESKPayloadV3 -> PKESKPayloadV3 -> PKESKPayloadV3
Ord, Int -> PKESKPayloadV3 -> ShowS
[PKESKPayloadV3] -> ShowS
PKESKPayloadV3 -> String
(Int -> PKESKPayloadV3 -> ShowS)
-> (PKESKPayloadV3 -> String)
-> ([PKESKPayloadV3] -> ShowS)
-> Show PKESKPayloadV3
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PKESKPayloadV3 -> ShowS
showsPrec :: Int -> PKESKPayloadV3 -> ShowS
$cshow :: PKESKPayloadV3 -> String
show :: PKESKPayloadV3 -> String
$cshowList :: [PKESKPayloadV3] -> ShowS
showList :: [PKESKPayloadV3] -> ShowS
Show, Typeable)
data PKESKPayloadV6 =
PKESKPayloadV6
BL.ByteString
PubKeyAlgorithm
BL.ByteString
deriving (Typeable PKESKPayloadV6
Typeable PKESKPayloadV6 =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PKESKPayloadV6 -> c PKESKPayloadV6)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayloadV6)
-> (PKESKPayloadV6 -> Constr)
-> (PKESKPayloadV6 -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayloadV6))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayloadV6))
-> ((forall b. Data b => b -> b)
-> PKESKPayloadV6 -> PKESKPayloadV6)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV6 -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV6 -> r)
-> (forall u.
(forall d. Data d => d -> u) -> PKESKPayloadV6 -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> PKESKPayloadV6 -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV6 -> m PKESKPayloadV6)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV6 -> m PKESKPayloadV6)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV6 -> m PKESKPayloadV6)
-> Data PKESKPayloadV6
PKESKPayloadV6 -> Constr
PKESKPayloadV6 -> DataType
(forall b. Data b => b -> b) -> PKESKPayloadV6 -> PKESKPayloadV6
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> PKESKPayloadV6 -> u
forall u. (forall d. Data d => d -> u) -> PKESKPayloadV6 -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV6 -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV6 -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV6 -> m PKESKPayloadV6
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV6 -> m PKESKPayloadV6
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayloadV6
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PKESKPayloadV6 -> c PKESKPayloadV6
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayloadV6)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayloadV6)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PKESKPayloadV6 -> c PKESKPayloadV6
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PKESKPayloadV6 -> c PKESKPayloadV6
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayloadV6
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayloadV6
$ctoConstr :: PKESKPayloadV6 -> Constr
toConstr :: PKESKPayloadV6 -> Constr
$cdataTypeOf :: PKESKPayloadV6 -> DataType
dataTypeOf :: PKESKPayloadV6 -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayloadV6)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayloadV6)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayloadV6)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayloadV6)
$cgmapT :: (forall b. Data b => b -> b) -> PKESKPayloadV6 -> PKESKPayloadV6
gmapT :: (forall b. Data b => b -> b) -> PKESKPayloadV6 -> PKESKPayloadV6
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV6 -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV6 -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV6 -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayloadV6 -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PKESKPayloadV6 -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> PKESKPayloadV6 -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PKESKPayloadV6 -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PKESKPayloadV6 -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV6 -> m PKESKPayloadV6
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV6 -> m PKESKPayloadV6
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV6 -> m PKESKPayloadV6
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV6 -> m PKESKPayloadV6
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV6 -> m PKESKPayloadV6
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PKESKPayloadV6 -> m PKESKPayloadV6
Data, PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
(PKESKPayloadV6 -> PKESKPayloadV6 -> Bool)
-> (PKESKPayloadV6 -> PKESKPayloadV6 -> Bool) -> Eq PKESKPayloadV6
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
== :: PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
$c/= :: PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
/= :: PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
Eq, (forall x. PKESKPayloadV6 -> Rep PKESKPayloadV6 x)
-> (forall x. Rep PKESKPayloadV6 x -> PKESKPayloadV6)
-> Generic PKESKPayloadV6
forall x. Rep PKESKPayloadV6 x -> PKESKPayloadV6
forall x. PKESKPayloadV6 -> Rep PKESKPayloadV6 x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PKESKPayloadV6 -> Rep PKESKPayloadV6 x
from :: forall x. PKESKPayloadV6 -> Rep PKESKPayloadV6 x
$cto :: forall x. Rep PKESKPayloadV6 x -> PKESKPayloadV6
to :: forall x. Rep PKESKPayloadV6 x -> PKESKPayloadV6
Generic, Eq PKESKPayloadV6
Eq PKESKPayloadV6 =>
(Int -> PKESKPayloadV6 -> Int)
-> (PKESKPayloadV6 -> Int) -> Hashable PKESKPayloadV6
Int -> PKESKPayloadV6 -> Int
PKESKPayloadV6 -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> PKESKPayloadV6 -> Int
hashWithSalt :: Int -> PKESKPayloadV6 -> Int
$chash :: PKESKPayloadV6 -> Int
hash :: PKESKPayloadV6 -> Int
Hashable, Eq PKESKPayloadV6
Eq PKESKPayloadV6 =>
(PKESKPayloadV6 -> PKESKPayloadV6 -> Ordering)
-> (PKESKPayloadV6 -> PKESKPayloadV6 -> Bool)
-> (PKESKPayloadV6 -> PKESKPayloadV6 -> Bool)
-> (PKESKPayloadV6 -> PKESKPayloadV6 -> Bool)
-> (PKESKPayloadV6 -> PKESKPayloadV6 -> Bool)
-> (PKESKPayloadV6 -> PKESKPayloadV6 -> PKESKPayloadV6)
-> (PKESKPayloadV6 -> PKESKPayloadV6 -> PKESKPayloadV6)
-> Ord PKESKPayloadV6
PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
PKESKPayloadV6 -> PKESKPayloadV6 -> Ordering
PKESKPayloadV6 -> PKESKPayloadV6 -> PKESKPayloadV6
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PKESKPayloadV6 -> PKESKPayloadV6 -> Ordering
compare :: PKESKPayloadV6 -> PKESKPayloadV6 -> Ordering
$c< :: PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
< :: PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
$c<= :: PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
<= :: PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
$c> :: PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
> :: PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
$c>= :: PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
>= :: PKESKPayloadV6 -> PKESKPayloadV6 -> Bool
$cmax :: PKESKPayloadV6 -> PKESKPayloadV6 -> PKESKPayloadV6
max :: PKESKPayloadV6 -> PKESKPayloadV6 -> PKESKPayloadV6
$cmin :: PKESKPayloadV6 -> PKESKPayloadV6 -> PKESKPayloadV6
min :: PKESKPayloadV6 -> PKESKPayloadV6 -> PKESKPayloadV6
Ord, Int -> PKESKPayloadV6 -> ShowS
[PKESKPayloadV6] -> ShowS
PKESKPayloadV6 -> String
(Int -> PKESKPayloadV6 -> ShowS)
-> (PKESKPayloadV6 -> String)
-> ([PKESKPayloadV6] -> ShowS)
-> Show PKESKPayloadV6
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PKESKPayloadV6 -> ShowS
showsPrec :: Int -> PKESKPayloadV6 -> ShowS
$cshow :: PKESKPayloadV6 -> String
show :: PKESKPayloadV6 -> String
$cshowList :: [PKESKPayloadV6] -> ShowS
showList :: [PKESKPayloadV6] -> ShowS
Show, Typeable)
data PKESKPayload
= PKESKPayloadV3Packet PKESKPayloadV3
| PKESKPayloadV6Packet PKESKPayloadV6
deriving (Typeable PKESKPayload
Typeable PKESKPayload =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PKESKPayload -> c PKESKPayload)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayload)
-> (PKESKPayload -> Constr)
-> (PKESKPayload -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayload))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayload))
-> ((forall b. Data b => b -> b) -> PKESKPayload -> PKESKPayload)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayload -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayload -> r)
-> (forall u. (forall d. Data d => d -> u) -> PKESKPayload -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> PKESKPayload -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PKESKPayload -> m PKESKPayload)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PKESKPayload -> m PKESKPayload)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PKESKPayload -> m PKESKPayload)
-> Data PKESKPayload
PKESKPayload -> Constr
PKESKPayload -> DataType
(forall b. Data b => b -> b) -> PKESKPayload -> PKESKPayload
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> PKESKPayload -> u
forall u. (forall d. Data d => d -> u) -> PKESKPayload -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayload -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayload -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PKESKPayload -> m PKESKPayload
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PKESKPayload -> m PKESKPayload
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayload
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PKESKPayload -> c PKESKPayload
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayload)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayload)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PKESKPayload -> c PKESKPayload
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PKESKPayload -> c PKESKPayload
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayload
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PKESKPayload
$ctoConstr :: PKESKPayload -> Constr
toConstr :: PKESKPayload -> Constr
$cdataTypeOf :: PKESKPayload -> DataType
dataTypeOf :: PKESKPayload -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayload)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PKESKPayload)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayload)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PKESKPayload)
$cgmapT :: (forall b. Data b => b -> b) -> PKESKPayload -> PKESKPayload
gmapT :: (forall b. Data b => b -> b) -> PKESKPayload -> PKESKPayload
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayload -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayload -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayload -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PKESKPayload -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PKESKPayload -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> PKESKPayload -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> PKESKPayload -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> PKESKPayload -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PKESKPayload -> m PKESKPayload
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PKESKPayload -> m PKESKPayload
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PKESKPayload -> m PKESKPayload
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PKESKPayload -> m PKESKPayload
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PKESKPayload -> m PKESKPayload
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PKESKPayload -> m PKESKPayload
Data, PKESKPayload -> PKESKPayload -> Bool
(PKESKPayload -> PKESKPayload -> Bool)
-> (PKESKPayload -> PKESKPayload -> Bool) -> Eq PKESKPayload
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PKESKPayload -> PKESKPayload -> Bool
== :: PKESKPayload -> PKESKPayload -> Bool
$c/= :: PKESKPayload -> PKESKPayload -> Bool
/= :: PKESKPayload -> PKESKPayload -> Bool
Eq, (forall x. PKESKPayload -> Rep PKESKPayload x)
-> (forall x. Rep PKESKPayload x -> PKESKPayload)
-> Generic PKESKPayload
forall x. Rep PKESKPayload x -> PKESKPayload
forall x. PKESKPayload -> Rep PKESKPayload x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PKESKPayload -> Rep PKESKPayload x
from :: forall x. PKESKPayload -> Rep PKESKPayload x
$cto :: forall x. Rep PKESKPayload x -> PKESKPayload
to :: forall x. Rep PKESKPayload x -> PKESKPayload
Generic, Eq PKESKPayload
Eq PKESKPayload =>
(Int -> PKESKPayload -> Int)
-> (PKESKPayload -> Int) -> Hashable PKESKPayload
Int -> PKESKPayload -> Int
PKESKPayload -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> PKESKPayload -> Int
hashWithSalt :: Int -> PKESKPayload -> Int
$chash :: PKESKPayload -> Int
hash :: PKESKPayload -> Int
Hashable, Eq PKESKPayload
Eq PKESKPayload =>
(PKESKPayload -> PKESKPayload -> Ordering)
-> (PKESKPayload -> PKESKPayload -> Bool)
-> (PKESKPayload -> PKESKPayload -> Bool)
-> (PKESKPayload -> PKESKPayload -> Bool)
-> (PKESKPayload -> PKESKPayload -> Bool)
-> (PKESKPayload -> PKESKPayload -> PKESKPayload)
-> (PKESKPayload -> PKESKPayload -> PKESKPayload)
-> Ord PKESKPayload
PKESKPayload -> PKESKPayload -> Bool
PKESKPayload -> PKESKPayload -> Ordering
PKESKPayload -> PKESKPayload -> PKESKPayload
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PKESKPayload -> PKESKPayload -> Ordering
compare :: PKESKPayload -> PKESKPayload -> Ordering
$c< :: PKESKPayload -> PKESKPayload -> Bool
< :: PKESKPayload -> PKESKPayload -> Bool
$c<= :: PKESKPayload -> PKESKPayload -> Bool
<= :: PKESKPayload -> PKESKPayload -> Bool
$c> :: PKESKPayload -> PKESKPayload -> Bool
> :: PKESKPayload -> PKESKPayload -> Bool
$c>= :: PKESKPayload -> PKESKPayload -> Bool
>= :: PKESKPayload -> PKESKPayload -> Bool
$cmax :: PKESKPayload -> PKESKPayload -> PKESKPayload
max :: PKESKPayload -> PKESKPayload -> PKESKPayload
$cmin :: PKESKPayload -> PKESKPayload -> PKESKPayload
min :: PKESKPayload -> PKESKPayload -> PKESKPayload
Ord, Int -> PKESKPayload -> ShowS
[PKESKPayload] -> ShowS
PKESKPayload -> String
(Int -> PKESKPayload -> ShowS)
-> (PKESKPayload -> String)
-> ([PKESKPayload] -> ShowS)
-> Show PKESKPayload
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PKESKPayload -> ShowS
showsPrec :: Int -> PKESKPayload -> ShowS
$cshow :: PKESKPayload -> String
show :: PKESKPayload -> String
$cshowList :: [PKESKPayload] -> ShowS
showList :: [PKESKPayload] -> ShowS
Show, Typeable)
data SKESKPayloadVersion = SKESKV4 | SKESKV6
deriving (Typeable SKESKPayloadVersion
Typeable SKESKPayloadVersion =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> SKESKPayloadVersion
-> c SKESKPayloadVersion)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayloadVersion)
-> (SKESKPayloadVersion -> Constr)
-> (SKESKPayloadVersion -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayloadVersion))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayloadVersion))
-> ((forall b. Data b => b -> b)
-> SKESKPayloadVersion -> SKESKPayloadVersion)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadVersion -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadVersion -> r)
-> (forall u.
(forall d. Data d => d -> u) -> SKESKPayloadVersion -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> SKESKPayloadVersion -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadVersion -> m SKESKPayloadVersion)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadVersion -> m SKESKPayloadVersion)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadVersion -> m SKESKPayloadVersion)
-> Data SKESKPayloadVersion
SKESKPayloadVersion -> Constr
SKESKPayloadVersion -> DataType
(forall b. Data b => b -> b)
-> SKESKPayloadVersion -> SKESKPayloadVersion
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> SKESKPayloadVersion -> u
forall u.
(forall d. Data d => d -> u) -> SKESKPayloadVersion -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadVersion -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadVersion -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadVersion -> m SKESKPayloadVersion
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadVersion -> m SKESKPayloadVersion
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayloadVersion
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> SKESKPayloadVersion
-> c SKESKPayloadVersion
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayloadVersion)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayloadVersion)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> SKESKPayloadVersion
-> c SKESKPayloadVersion
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> SKESKPayloadVersion
-> c SKESKPayloadVersion
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayloadVersion
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayloadVersion
$ctoConstr :: SKESKPayloadVersion -> Constr
toConstr :: SKESKPayloadVersion -> Constr
$cdataTypeOf :: SKESKPayloadVersion -> DataType
dataTypeOf :: SKESKPayloadVersion -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayloadVersion)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayloadVersion)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayloadVersion)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayloadVersion)
$cgmapT :: (forall b. Data b => b -> b)
-> SKESKPayloadVersion -> SKESKPayloadVersion
gmapT :: (forall b. Data b => b -> b)
-> SKESKPayloadVersion -> SKESKPayloadVersion
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadVersion -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadVersion -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadVersion -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadVersion -> r
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> SKESKPayloadVersion -> [u]
gmapQ :: forall u.
(forall d. Data d => d -> u) -> SKESKPayloadVersion -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> SKESKPayloadVersion -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> SKESKPayloadVersion -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadVersion -> m SKESKPayloadVersion
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadVersion -> m SKESKPayloadVersion
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadVersion -> m SKESKPayloadVersion
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadVersion -> m SKESKPayloadVersion
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadVersion -> m SKESKPayloadVersion
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadVersion -> m SKESKPayloadVersion
Data, SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
(SKESKPayloadVersion -> SKESKPayloadVersion -> Bool)
-> (SKESKPayloadVersion -> SKESKPayloadVersion -> Bool)
-> Eq SKESKPayloadVersion
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
== :: SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
$c/= :: SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
/= :: SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
Eq, (forall x. SKESKPayloadVersion -> Rep SKESKPayloadVersion x)
-> (forall x. Rep SKESKPayloadVersion x -> SKESKPayloadVersion)
-> Generic SKESKPayloadVersion
forall x. Rep SKESKPayloadVersion x -> SKESKPayloadVersion
forall x. SKESKPayloadVersion -> Rep SKESKPayloadVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SKESKPayloadVersion -> Rep SKESKPayloadVersion x
from :: forall x. SKESKPayloadVersion -> Rep SKESKPayloadVersion x
$cto :: forall x. Rep SKESKPayloadVersion x -> SKESKPayloadVersion
to :: forall x. Rep SKESKPayloadVersion x -> SKESKPayloadVersion
Generic, Eq SKESKPayloadVersion
Eq SKESKPayloadVersion =>
(Int -> SKESKPayloadVersion -> Int)
-> (SKESKPayloadVersion -> Int) -> Hashable SKESKPayloadVersion
Int -> SKESKPayloadVersion -> Int
SKESKPayloadVersion -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> SKESKPayloadVersion -> Int
hashWithSalt :: Int -> SKESKPayloadVersion -> Int
$chash :: SKESKPayloadVersion -> Int
hash :: SKESKPayloadVersion -> Int
Hashable, Eq SKESKPayloadVersion
Eq SKESKPayloadVersion =>
(SKESKPayloadVersion -> SKESKPayloadVersion -> Ordering)
-> (SKESKPayloadVersion -> SKESKPayloadVersion -> Bool)
-> (SKESKPayloadVersion -> SKESKPayloadVersion -> Bool)
-> (SKESKPayloadVersion -> SKESKPayloadVersion -> Bool)
-> (SKESKPayloadVersion -> SKESKPayloadVersion -> Bool)
-> (SKESKPayloadVersion
-> SKESKPayloadVersion -> SKESKPayloadVersion)
-> (SKESKPayloadVersion
-> SKESKPayloadVersion -> SKESKPayloadVersion)
-> Ord SKESKPayloadVersion
SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
SKESKPayloadVersion -> SKESKPayloadVersion -> Ordering
SKESKPayloadVersion -> SKESKPayloadVersion -> SKESKPayloadVersion
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SKESKPayloadVersion -> SKESKPayloadVersion -> Ordering
compare :: SKESKPayloadVersion -> SKESKPayloadVersion -> Ordering
$c< :: SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
< :: SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
$c<= :: SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
<= :: SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
$c> :: SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
> :: SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
$c>= :: SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
>= :: SKESKPayloadVersion -> SKESKPayloadVersion -> Bool
$cmax :: SKESKPayloadVersion -> SKESKPayloadVersion -> SKESKPayloadVersion
max :: SKESKPayloadVersion -> SKESKPayloadVersion -> SKESKPayloadVersion
$cmin :: SKESKPayloadVersion -> SKESKPayloadVersion -> SKESKPayloadVersion
min :: SKESKPayloadVersion -> SKESKPayloadVersion -> SKESKPayloadVersion
Ord, Int -> SKESKPayloadVersion -> ShowS
[SKESKPayloadVersion] -> ShowS
SKESKPayloadVersion -> String
(Int -> SKESKPayloadVersion -> ShowS)
-> (SKESKPayloadVersion -> String)
-> ([SKESKPayloadVersion] -> ShowS)
-> Show SKESKPayloadVersion
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SKESKPayloadVersion -> ShowS
showsPrec :: Int -> SKESKPayloadVersion -> ShowS
$cshow :: SKESKPayloadVersion -> String
show :: SKESKPayloadVersion -> String
$cshowList :: [SKESKPayloadVersion] -> ShowS
showList :: [SKESKPayloadVersion] -> ShowS
Show, Typeable)
data SKESKPayloadV4 =
SKESKPayloadV4
SymmetricAlgorithm
S2K
(Maybe BL.ByteString)
deriving (Typeable SKESKPayloadV4
Typeable SKESKPayloadV4 =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SKESKPayloadV4 -> c SKESKPayloadV4)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayloadV4)
-> (SKESKPayloadV4 -> Constr)
-> (SKESKPayloadV4 -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayloadV4))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayloadV4))
-> ((forall b. Data b => b -> b)
-> SKESKPayloadV4 -> SKESKPayloadV4)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV4 -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV4 -> r)
-> (forall u.
(forall d. Data d => d -> u) -> SKESKPayloadV4 -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> SKESKPayloadV4 -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV4 -> m SKESKPayloadV4)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV4 -> m SKESKPayloadV4)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV4 -> m SKESKPayloadV4)
-> Data SKESKPayloadV4
SKESKPayloadV4 -> Constr
SKESKPayloadV4 -> DataType
(forall b. Data b => b -> b) -> SKESKPayloadV4 -> SKESKPayloadV4
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> SKESKPayloadV4 -> u
forall u. (forall d. Data d => d -> u) -> SKESKPayloadV4 -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV4 -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV4 -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV4 -> m SKESKPayloadV4
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV4 -> m SKESKPayloadV4
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayloadV4
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SKESKPayloadV4 -> c SKESKPayloadV4
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayloadV4)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayloadV4)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SKESKPayloadV4 -> c SKESKPayloadV4
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SKESKPayloadV4 -> c SKESKPayloadV4
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayloadV4
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayloadV4
$ctoConstr :: SKESKPayloadV4 -> Constr
toConstr :: SKESKPayloadV4 -> Constr
$cdataTypeOf :: SKESKPayloadV4 -> DataType
dataTypeOf :: SKESKPayloadV4 -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayloadV4)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayloadV4)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayloadV4)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayloadV4)
$cgmapT :: (forall b. Data b => b -> b) -> SKESKPayloadV4 -> SKESKPayloadV4
gmapT :: (forall b. Data b => b -> b) -> SKESKPayloadV4 -> SKESKPayloadV4
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV4 -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV4 -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV4 -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV4 -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> SKESKPayloadV4 -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> SKESKPayloadV4 -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> SKESKPayloadV4 -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> SKESKPayloadV4 -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV4 -> m SKESKPayloadV4
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV4 -> m SKESKPayloadV4
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV4 -> m SKESKPayloadV4
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV4 -> m SKESKPayloadV4
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV4 -> m SKESKPayloadV4
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV4 -> m SKESKPayloadV4
Data, SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
(SKESKPayloadV4 -> SKESKPayloadV4 -> Bool)
-> (SKESKPayloadV4 -> SKESKPayloadV4 -> Bool) -> Eq SKESKPayloadV4
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
== :: SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
$c/= :: SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
/= :: SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
Eq, (forall x. SKESKPayloadV4 -> Rep SKESKPayloadV4 x)
-> (forall x. Rep SKESKPayloadV4 x -> SKESKPayloadV4)
-> Generic SKESKPayloadV4
forall x. Rep SKESKPayloadV4 x -> SKESKPayloadV4
forall x. SKESKPayloadV4 -> Rep SKESKPayloadV4 x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SKESKPayloadV4 -> Rep SKESKPayloadV4 x
from :: forall x. SKESKPayloadV4 -> Rep SKESKPayloadV4 x
$cto :: forall x. Rep SKESKPayloadV4 x -> SKESKPayloadV4
to :: forall x. Rep SKESKPayloadV4 x -> SKESKPayloadV4
Generic, Eq SKESKPayloadV4
Eq SKESKPayloadV4 =>
(Int -> SKESKPayloadV4 -> Int)
-> (SKESKPayloadV4 -> Int) -> Hashable SKESKPayloadV4
Int -> SKESKPayloadV4 -> Int
SKESKPayloadV4 -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> SKESKPayloadV4 -> Int
hashWithSalt :: Int -> SKESKPayloadV4 -> Int
$chash :: SKESKPayloadV4 -> Int
hash :: SKESKPayloadV4 -> Int
Hashable, Eq SKESKPayloadV4
Eq SKESKPayloadV4 =>
(SKESKPayloadV4 -> SKESKPayloadV4 -> Ordering)
-> (SKESKPayloadV4 -> SKESKPayloadV4 -> Bool)
-> (SKESKPayloadV4 -> SKESKPayloadV4 -> Bool)
-> (SKESKPayloadV4 -> SKESKPayloadV4 -> Bool)
-> (SKESKPayloadV4 -> SKESKPayloadV4 -> Bool)
-> (SKESKPayloadV4 -> SKESKPayloadV4 -> SKESKPayloadV4)
-> (SKESKPayloadV4 -> SKESKPayloadV4 -> SKESKPayloadV4)
-> Ord SKESKPayloadV4
SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
SKESKPayloadV4 -> SKESKPayloadV4 -> Ordering
SKESKPayloadV4 -> SKESKPayloadV4 -> SKESKPayloadV4
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SKESKPayloadV4 -> SKESKPayloadV4 -> Ordering
compare :: SKESKPayloadV4 -> SKESKPayloadV4 -> Ordering
$c< :: SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
< :: SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
$c<= :: SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
<= :: SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
$c> :: SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
> :: SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
$c>= :: SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
>= :: SKESKPayloadV4 -> SKESKPayloadV4 -> Bool
$cmax :: SKESKPayloadV4 -> SKESKPayloadV4 -> SKESKPayloadV4
max :: SKESKPayloadV4 -> SKESKPayloadV4 -> SKESKPayloadV4
$cmin :: SKESKPayloadV4 -> SKESKPayloadV4 -> SKESKPayloadV4
min :: SKESKPayloadV4 -> SKESKPayloadV4 -> SKESKPayloadV4
Ord, Int -> SKESKPayloadV4 -> ShowS
[SKESKPayloadV4] -> ShowS
SKESKPayloadV4 -> String
(Int -> SKESKPayloadV4 -> ShowS)
-> (SKESKPayloadV4 -> String)
-> ([SKESKPayloadV4] -> ShowS)
-> Show SKESKPayloadV4
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SKESKPayloadV4 -> ShowS
showsPrec :: Int -> SKESKPayloadV4 -> ShowS
$cshow :: SKESKPayloadV4 -> String
show :: SKESKPayloadV4 -> String
$cshowList :: [SKESKPayloadV4] -> ShowS
showList :: [SKESKPayloadV4] -> ShowS
Show, Typeable)
data SKESKPayloadV6 =
SKESKPayloadV6
SymmetricAlgorithm
AEADAlgorithm
S2K
BL.ByteString
BL.ByteString
BL.ByteString
deriving (Typeable SKESKPayloadV6
Typeable SKESKPayloadV6 =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SKESKPayloadV6 -> c SKESKPayloadV6)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayloadV6)
-> (SKESKPayloadV6 -> Constr)
-> (SKESKPayloadV6 -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayloadV6))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayloadV6))
-> ((forall b. Data b => b -> b)
-> SKESKPayloadV6 -> SKESKPayloadV6)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV6 -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV6 -> r)
-> (forall u.
(forall d. Data d => d -> u) -> SKESKPayloadV6 -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> SKESKPayloadV6 -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV6 -> m SKESKPayloadV6)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV6 -> m SKESKPayloadV6)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV6 -> m SKESKPayloadV6)
-> Data SKESKPayloadV6
SKESKPayloadV6 -> Constr
SKESKPayloadV6 -> DataType
(forall b. Data b => b -> b) -> SKESKPayloadV6 -> SKESKPayloadV6
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> SKESKPayloadV6 -> u
forall u. (forall d. Data d => d -> u) -> SKESKPayloadV6 -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV6 -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV6 -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV6 -> m SKESKPayloadV6
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV6 -> m SKESKPayloadV6
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayloadV6
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SKESKPayloadV6 -> c SKESKPayloadV6
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayloadV6)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayloadV6)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SKESKPayloadV6 -> c SKESKPayloadV6
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SKESKPayloadV6 -> c SKESKPayloadV6
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayloadV6
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayloadV6
$ctoConstr :: SKESKPayloadV6 -> Constr
toConstr :: SKESKPayloadV6 -> Constr
$cdataTypeOf :: SKESKPayloadV6 -> DataType
dataTypeOf :: SKESKPayloadV6 -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayloadV6)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayloadV6)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayloadV6)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayloadV6)
$cgmapT :: (forall b. Data b => b -> b) -> SKESKPayloadV6 -> SKESKPayloadV6
gmapT :: (forall b. Data b => b -> b) -> SKESKPayloadV6 -> SKESKPayloadV6
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV6 -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV6 -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV6 -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayloadV6 -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> SKESKPayloadV6 -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> SKESKPayloadV6 -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> SKESKPayloadV6 -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> SKESKPayloadV6 -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV6 -> m SKESKPayloadV6
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV6 -> m SKESKPayloadV6
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV6 -> m SKESKPayloadV6
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV6 -> m SKESKPayloadV6
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV6 -> m SKESKPayloadV6
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> SKESKPayloadV6 -> m SKESKPayloadV6
Data, SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
(SKESKPayloadV6 -> SKESKPayloadV6 -> Bool)
-> (SKESKPayloadV6 -> SKESKPayloadV6 -> Bool) -> Eq SKESKPayloadV6
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
== :: SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
$c/= :: SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
/= :: SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
Eq, (forall x. SKESKPayloadV6 -> Rep SKESKPayloadV6 x)
-> (forall x. Rep SKESKPayloadV6 x -> SKESKPayloadV6)
-> Generic SKESKPayloadV6
forall x. Rep SKESKPayloadV6 x -> SKESKPayloadV6
forall x. SKESKPayloadV6 -> Rep SKESKPayloadV6 x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SKESKPayloadV6 -> Rep SKESKPayloadV6 x
from :: forall x. SKESKPayloadV6 -> Rep SKESKPayloadV6 x
$cto :: forall x. Rep SKESKPayloadV6 x -> SKESKPayloadV6
to :: forall x. Rep SKESKPayloadV6 x -> SKESKPayloadV6
Generic, Eq SKESKPayloadV6
Eq SKESKPayloadV6 =>
(Int -> SKESKPayloadV6 -> Int)
-> (SKESKPayloadV6 -> Int) -> Hashable SKESKPayloadV6
Int -> SKESKPayloadV6 -> Int
SKESKPayloadV6 -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> SKESKPayloadV6 -> Int
hashWithSalt :: Int -> SKESKPayloadV6 -> Int
$chash :: SKESKPayloadV6 -> Int
hash :: SKESKPayloadV6 -> Int
Hashable, Eq SKESKPayloadV6
Eq SKESKPayloadV6 =>
(SKESKPayloadV6 -> SKESKPayloadV6 -> Ordering)
-> (SKESKPayloadV6 -> SKESKPayloadV6 -> Bool)
-> (SKESKPayloadV6 -> SKESKPayloadV6 -> Bool)
-> (SKESKPayloadV6 -> SKESKPayloadV6 -> Bool)
-> (SKESKPayloadV6 -> SKESKPayloadV6 -> Bool)
-> (SKESKPayloadV6 -> SKESKPayloadV6 -> SKESKPayloadV6)
-> (SKESKPayloadV6 -> SKESKPayloadV6 -> SKESKPayloadV6)
-> Ord SKESKPayloadV6
SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
SKESKPayloadV6 -> SKESKPayloadV6 -> Ordering
SKESKPayloadV6 -> SKESKPayloadV6 -> SKESKPayloadV6
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SKESKPayloadV6 -> SKESKPayloadV6 -> Ordering
compare :: SKESKPayloadV6 -> SKESKPayloadV6 -> Ordering
$c< :: SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
< :: SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
$c<= :: SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
<= :: SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
$c> :: SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
> :: SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
$c>= :: SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
>= :: SKESKPayloadV6 -> SKESKPayloadV6 -> Bool
$cmax :: SKESKPayloadV6 -> SKESKPayloadV6 -> SKESKPayloadV6
max :: SKESKPayloadV6 -> SKESKPayloadV6 -> SKESKPayloadV6
$cmin :: SKESKPayloadV6 -> SKESKPayloadV6 -> SKESKPayloadV6
min :: SKESKPayloadV6 -> SKESKPayloadV6 -> SKESKPayloadV6
Ord, Int -> SKESKPayloadV6 -> ShowS
[SKESKPayloadV6] -> ShowS
SKESKPayloadV6 -> String
(Int -> SKESKPayloadV6 -> ShowS)
-> (SKESKPayloadV6 -> String)
-> ([SKESKPayloadV6] -> ShowS)
-> Show SKESKPayloadV6
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SKESKPayloadV6 -> ShowS
showsPrec :: Int -> SKESKPayloadV6 -> ShowS
$cshow :: SKESKPayloadV6 -> String
show :: SKESKPayloadV6 -> String
$cshowList :: [SKESKPayloadV6] -> ShowS
showList :: [SKESKPayloadV6] -> ShowS
Show, Typeable)
data SKESKPayload
= SKESKPayloadV4Packet SKESKPayloadV4
| SKESKPayloadV6Packet SKESKPayloadV6
deriving (Typeable SKESKPayload
Typeable SKESKPayload =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SKESKPayload -> c SKESKPayload)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayload)
-> (SKESKPayload -> Constr)
-> (SKESKPayload -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayload))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayload))
-> ((forall b. Data b => b -> b) -> SKESKPayload -> SKESKPayload)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayload -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayload -> r)
-> (forall u. (forall d. Data d => d -> u) -> SKESKPayload -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> SKESKPayload -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> SKESKPayload -> m SKESKPayload)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SKESKPayload -> m SKESKPayload)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SKESKPayload -> m SKESKPayload)
-> Data SKESKPayload
SKESKPayload -> Constr
SKESKPayload -> DataType
(forall b. Data b => b -> b) -> SKESKPayload -> SKESKPayload
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> SKESKPayload -> u
forall u. (forall d. Data d => d -> u) -> SKESKPayload -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayload -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayload -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> SKESKPayload -> m SKESKPayload
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SKESKPayload -> m SKESKPayload
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayload
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SKESKPayload -> c SKESKPayload
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayload)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayload)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SKESKPayload -> c SKESKPayload
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SKESKPayload -> c SKESKPayload
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayload
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SKESKPayload
$ctoConstr :: SKESKPayload -> Constr
toConstr :: SKESKPayload -> Constr
$cdataTypeOf :: SKESKPayload -> DataType
dataTypeOf :: SKESKPayload -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayload)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SKESKPayload)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayload)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SKESKPayload)
$cgmapT :: (forall b. Data b => b -> b) -> SKESKPayload -> SKESKPayload
gmapT :: (forall b. Data b => b -> b) -> SKESKPayload -> SKESKPayload
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayload -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayload -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayload -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SKESKPayload -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> SKESKPayload -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> SKESKPayload -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> SKESKPayload -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> SKESKPayload -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> SKESKPayload -> m SKESKPayload
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> SKESKPayload -> m SKESKPayload
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SKESKPayload -> m SKESKPayload
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SKESKPayload -> m SKESKPayload
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SKESKPayload -> m SKESKPayload
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SKESKPayload -> m SKESKPayload
Data, SKESKPayload -> SKESKPayload -> Bool
(SKESKPayload -> SKESKPayload -> Bool)
-> (SKESKPayload -> SKESKPayload -> Bool) -> Eq SKESKPayload
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SKESKPayload -> SKESKPayload -> Bool
== :: SKESKPayload -> SKESKPayload -> Bool
$c/= :: SKESKPayload -> SKESKPayload -> Bool
/= :: SKESKPayload -> SKESKPayload -> Bool
Eq, (forall x. SKESKPayload -> Rep SKESKPayload x)
-> (forall x. Rep SKESKPayload x -> SKESKPayload)
-> Generic SKESKPayload
forall x. Rep SKESKPayload x -> SKESKPayload
forall x. SKESKPayload -> Rep SKESKPayload x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SKESKPayload -> Rep SKESKPayload x
from :: forall x. SKESKPayload -> Rep SKESKPayload x
$cto :: forall x. Rep SKESKPayload x -> SKESKPayload
to :: forall x. Rep SKESKPayload x -> SKESKPayload
Generic, Eq SKESKPayload
Eq SKESKPayload =>
(Int -> SKESKPayload -> Int)
-> (SKESKPayload -> Int) -> Hashable SKESKPayload
Int -> SKESKPayload -> Int
SKESKPayload -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> SKESKPayload -> Int
hashWithSalt :: Int -> SKESKPayload -> Int
$chash :: SKESKPayload -> Int
hash :: SKESKPayload -> Int
Hashable, Eq SKESKPayload
Eq SKESKPayload =>
(SKESKPayload -> SKESKPayload -> Ordering)
-> (SKESKPayload -> SKESKPayload -> Bool)
-> (SKESKPayload -> SKESKPayload -> Bool)
-> (SKESKPayload -> SKESKPayload -> Bool)
-> (SKESKPayload -> SKESKPayload -> Bool)
-> (SKESKPayload -> SKESKPayload -> SKESKPayload)
-> (SKESKPayload -> SKESKPayload -> SKESKPayload)
-> Ord SKESKPayload
SKESKPayload -> SKESKPayload -> Bool
SKESKPayload -> SKESKPayload -> Ordering
SKESKPayload -> SKESKPayload -> SKESKPayload
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SKESKPayload -> SKESKPayload -> Ordering
compare :: SKESKPayload -> SKESKPayload -> Ordering
$c< :: SKESKPayload -> SKESKPayload -> Bool
< :: SKESKPayload -> SKESKPayload -> Bool
$c<= :: SKESKPayload -> SKESKPayload -> Bool
<= :: SKESKPayload -> SKESKPayload -> Bool
$c> :: SKESKPayload -> SKESKPayload -> Bool
> :: SKESKPayload -> SKESKPayload -> Bool
$c>= :: SKESKPayload -> SKESKPayload -> Bool
>= :: SKESKPayload -> SKESKPayload -> Bool
$cmax :: SKESKPayload -> SKESKPayload -> SKESKPayload
max :: SKESKPayload -> SKESKPayload -> SKESKPayload
$cmin :: SKESKPayload -> SKESKPayload -> SKESKPayload
min :: SKESKPayload -> SKESKPayload -> SKESKPayload
Ord, Int -> SKESKPayload -> ShowS
[SKESKPayload] -> ShowS
SKESKPayload -> String
(Int -> SKESKPayload -> ShowS)
-> (SKESKPayload -> String)
-> ([SKESKPayload] -> ShowS)
-> Show SKESKPayload
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SKESKPayload -> ShowS
showsPrec :: Int -> SKESKPayload -> ShowS
$cshow :: SKESKPayload -> String
show :: SKESKPayload -> String
$cshowList :: [SKESKPayload] -> ShowS
showList :: [SKESKPayload] -> ShowS
Show, Typeable)
data OnePassSignatureVersion = OPSV3 | OPSV6
deriving (Typeable OnePassSignatureVersion
Typeable OnePassSignatureVersion =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OnePassSignatureVersion
-> c OnePassSignatureVersion)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OnePassSignatureVersion)
-> (OnePassSignatureVersion -> Constr)
-> (OnePassSignatureVersion -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OnePassSignatureVersion))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OnePassSignatureVersion))
-> ((forall b. Data b => b -> b)
-> OnePassSignatureVersion -> OnePassSignatureVersion)
-> (forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignatureVersion
-> r)
-> (forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignatureVersion
-> r)
-> (forall u.
(forall d. Data d => d -> u) -> OnePassSignatureVersion -> [u])
-> (forall u.
Int
-> (forall d. Data d => d -> u) -> OnePassSignatureVersion -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OnePassSignatureVersion -> m OnePassSignatureVersion)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignatureVersion -> m OnePassSignatureVersion)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignatureVersion -> m OnePassSignatureVersion)
-> Data OnePassSignatureVersion
OnePassSignatureVersion -> Constr
OnePassSignatureVersion -> DataType
(forall b. Data b => b -> b)
-> OnePassSignatureVersion -> OnePassSignatureVersion
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> OnePassSignatureVersion -> u
forall u.
(forall d. Data d => d -> u) -> OnePassSignatureVersion -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignatureVersion
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignatureVersion
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OnePassSignatureVersion -> m OnePassSignatureVersion
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignatureVersion -> m OnePassSignatureVersion
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OnePassSignatureVersion
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OnePassSignatureVersion
-> c OnePassSignatureVersion
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OnePassSignatureVersion)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OnePassSignatureVersion)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OnePassSignatureVersion
-> c OnePassSignatureVersion
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OnePassSignatureVersion
-> c OnePassSignatureVersion
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OnePassSignatureVersion
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OnePassSignatureVersion
$ctoConstr :: OnePassSignatureVersion -> Constr
toConstr :: OnePassSignatureVersion -> Constr
$cdataTypeOf :: OnePassSignatureVersion -> DataType
dataTypeOf :: OnePassSignatureVersion -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OnePassSignatureVersion)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OnePassSignatureVersion)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OnePassSignatureVersion)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OnePassSignatureVersion)
$cgmapT :: (forall b. Data b => b -> b)
-> OnePassSignatureVersion -> OnePassSignatureVersion
gmapT :: (forall b. Data b => b -> b)
-> OnePassSignatureVersion -> OnePassSignatureVersion
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignatureVersion
-> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignatureVersion
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignatureVersion
-> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignatureVersion
-> r
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> OnePassSignatureVersion -> [u]
gmapQ :: forall u.
(forall d. Data d => d -> u) -> OnePassSignatureVersion -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> OnePassSignatureVersion -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> OnePassSignatureVersion -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OnePassSignatureVersion -> m OnePassSignatureVersion
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OnePassSignatureVersion -> m OnePassSignatureVersion
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignatureVersion -> m OnePassSignatureVersion
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignatureVersion -> m OnePassSignatureVersion
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignatureVersion -> m OnePassSignatureVersion
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignatureVersion -> m OnePassSignatureVersion
Data, OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
(OnePassSignatureVersion -> OnePassSignatureVersion -> Bool)
-> (OnePassSignatureVersion -> OnePassSignatureVersion -> Bool)
-> Eq OnePassSignatureVersion
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
== :: OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
$c/= :: OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
/= :: OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
Eq, (forall x.
OnePassSignatureVersion -> Rep OnePassSignatureVersion x)
-> (forall x.
Rep OnePassSignatureVersion x -> OnePassSignatureVersion)
-> Generic OnePassSignatureVersion
forall x. Rep OnePassSignatureVersion x -> OnePassSignatureVersion
forall x. OnePassSignatureVersion -> Rep OnePassSignatureVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. OnePassSignatureVersion -> Rep OnePassSignatureVersion x
from :: forall x. OnePassSignatureVersion -> Rep OnePassSignatureVersion x
$cto :: forall x. Rep OnePassSignatureVersion x -> OnePassSignatureVersion
to :: forall x. Rep OnePassSignatureVersion x -> OnePassSignatureVersion
Generic, Eq OnePassSignatureVersion
Eq OnePassSignatureVersion =>
(Int -> OnePassSignatureVersion -> Int)
-> (OnePassSignatureVersion -> Int)
-> Hashable OnePassSignatureVersion
Int -> OnePassSignatureVersion -> Int
OnePassSignatureVersion -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> OnePassSignatureVersion -> Int
hashWithSalt :: Int -> OnePassSignatureVersion -> Int
$chash :: OnePassSignatureVersion -> Int
hash :: OnePassSignatureVersion -> Int
Hashable, Eq OnePassSignatureVersion
Eq OnePassSignatureVersion =>
(OnePassSignatureVersion -> OnePassSignatureVersion -> Ordering)
-> (OnePassSignatureVersion -> OnePassSignatureVersion -> Bool)
-> (OnePassSignatureVersion -> OnePassSignatureVersion -> Bool)
-> (OnePassSignatureVersion -> OnePassSignatureVersion -> Bool)
-> (OnePassSignatureVersion -> OnePassSignatureVersion -> Bool)
-> (OnePassSignatureVersion
-> OnePassSignatureVersion -> OnePassSignatureVersion)
-> (OnePassSignatureVersion
-> OnePassSignatureVersion -> OnePassSignatureVersion)
-> Ord OnePassSignatureVersion
OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
OnePassSignatureVersion -> OnePassSignatureVersion -> Ordering
OnePassSignatureVersion
-> OnePassSignatureVersion -> OnePassSignatureVersion
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: OnePassSignatureVersion -> OnePassSignatureVersion -> Ordering
compare :: OnePassSignatureVersion -> OnePassSignatureVersion -> Ordering
$c< :: OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
< :: OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
$c<= :: OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
<= :: OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
$c> :: OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
> :: OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
$c>= :: OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
>= :: OnePassSignatureVersion -> OnePassSignatureVersion -> Bool
$cmax :: OnePassSignatureVersion
-> OnePassSignatureVersion -> OnePassSignatureVersion
max :: OnePassSignatureVersion
-> OnePassSignatureVersion -> OnePassSignatureVersion
$cmin :: OnePassSignatureVersion
-> OnePassSignatureVersion -> OnePassSignatureVersion
min :: OnePassSignatureVersion
-> OnePassSignatureVersion -> OnePassSignatureVersion
Ord, Int -> OnePassSignatureVersion -> ShowS
[OnePassSignatureVersion] -> ShowS
OnePassSignatureVersion -> String
(Int -> OnePassSignatureVersion -> ShowS)
-> (OnePassSignatureVersion -> String)
-> ([OnePassSignatureVersion] -> ShowS)
-> Show OnePassSignatureVersion
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OnePassSignatureVersion -> ShowS
showsPrec :: Int -> OnePassSignatureVersion -> ShowS
$cshow :: OnePassSignatureVersion -> String
show :: OnePassSignatureVersion -> String
$cshowList :: [OnePassSignatureVersion] -> ShowS
showList :: [OnePassSignatureVersion] -> ShowS
Show, Typeable)
data OPSPayloadV3 =
OPSPayloadV3
PacketVersion
SigType
HashAlgorithm
PubKeyAlgorithm
EightOctetKeyId
NestedFlag
deriving (Typeable OPSPayloadV3
Typeable OPSPayloadV3 =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OPSPayloadV3 -> c OPSPayloadV3)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OPSPayloadV3)
-> (OPSPayloadV3 -> Constr)
-> (OPSPayloadV3 -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OPSPayloadV3))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OPSPayloadV3))
-> ((forall b. Data b => b -> b) -> OPSPayloadV3 -> OPSPayloadV3)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV3 -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV3 -> r)
-> (forall u. (forall d. Data d => d -> u) -> OPSPayloadV3 -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> OPSPayloadV3 -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> OPSPayloadV3 -> m OPSPayloadV3)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV3 -> m OPSPayloadV3)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV3 -> m OPSPayloadV3)
-> Data OPSPayloadV3
OPSPayloadV3 -> Constr
OPSPayloadV3 -> DataType
(forall b. Data b => b -> b) -> OPSPayloadV3 -> OPSPayloadV3
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> OPSPayloadV3 -> u
forall u. (forall d. Data d => d -> u) -> OPSPayloadV3 -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV3 -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV3 -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> OPSPayloadV3 -> m OPSPayloadV3
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV3 -> m OPSPayloadV3
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OPSPayloadV3
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OPSPayloadV3 -> c OPSPayloadV3
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OPSPayloadV3)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OPSPayloadV3)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OPSPayloadV3 -> c OPSPayloadV3
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OPSPayloadV3 -> c OPSPayloadV3
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OPSPayloadV3
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OPSPayloadV3
$ctoConstr :: OPSPayloadV3 -> Constr
toConstr :: OPSPayloadV3 -> Constr
$cdataTypeOf :: OPSPayloadV3 -> DataType
dataTypeOf :: OPSPayloadV3 -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OPSPayloadV3)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OPSPayloadV3)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OPSPayloadV3)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OPSPayloadV3)
$cgmapT :: (forall b. Data b => b -> b) -> OPSPayloadV3 -> OPSPayloadV3
gmapT :: (forall b. Data b => b -> b) -> OPSPayloadV3 -> OPSPayloadV3
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV3 -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV3 -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV3 -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV3 -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> OPSPayloadV3 -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> OPSPayloadV3 -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> OPSPayloadV3 -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> OPSPayloadV3 -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> OPSPayloadV3 -> m OPSPayloadV3
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> OPSPayloadV3 -> m OPSPayloadV3
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV3 -> m OPSPayloadV3
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV3 -> m OPSPayloadV3
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV3 -> m OPSPayloadV3
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV3 -> m OPSPayloadV3
Data, OPSPayloadV3 -> OPSPayloadV3 -> Bool
(OPSPayloadV3 -> OPSPayloadV3 -> Bool)
-> (OPSPayloadV3 -> OPSPayloadV3 -> Bool) -> Eq OPSPayloadV3
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OPSPayloadV3 -> OPSPayloadV3 -> Bool
== :: OPSPayloadV3 -> OPSPayloadV3 -> Bool
$c/= :: OPSPayloadV3 -> OPSPayloadV3 -> Bool
/= :: OPSPayloadV3 -> OPSPayloadV3 -> Bool
Eq, (forall x. OPSPayloadV3 -> Rep OPSPayloadV3 x)
-> (forall x. Rep OPSPayloadV3 x -> OPSPayloadV3)
-> Generic OPSPayloadV3
forall x. Rep OPSPayloadV3 x -> OPSPayloadV3
forall x. OPSPayloadV3 -> Rep OPSPayloadV3 x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. OPSPayloadV3 -> Rep OPSPayloadV3 x
from :: forall x. OPSPayloadV3 -> Rep OPSPayloadV3 x
$cto :: forall x. Rep OPSPayloadV3 x -> OPSPayloadV3
to :: forall x. Rep OPSPayloadV3 x -> OPSPayloadV3
Generic, Eq OPSPayloadV3
Eq OPSPayloadV3 =>
(Int -> OPSPayloadV3 -> Int)
-> (OPSPayloadV3 -> Int) -> Hashable OPSPayloadV3
Int -> OPSPayloadV3 -> Int
OPSPayloadV3 -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> OPSPayloadV3 -> Int
hashWithSalt :: Int -> OPSPayloadV3 -> Int
$chash :: OPSPayloadV3 -> Int
hash :: OPSPayloadV3 -> Int
Hashable, Eq OPSPayloadV3
Eq OPSPayloadV3 =>
(OPSPayloadV3 -> OPSPayloadV3 -> Ordering)
-> (OPSPayloadV3 -> OPSPayloadV3 -> Bool)
-> (OPSPayloadV3 -> OPSPayloadV3 -> Bool)
-> (OPSPayloadV3 -> OPSPayloadV3 -> Bool)
-> (OPSPayloadV3 -> OPSPayloadV3 -> Bool)
-> (OPSPayloadV3 -> OPSPayloadV3 -> OPSPayloadV3)
-> (OPSPayloadV3 -> OPSPayloadV3 -> OPSPayloadV3)
-> Ord OPSPayloadV3
OPSPayloadV3 -> OPSPayloadV3 -> Bool
OPSPayloadV3 -> OPSPayloadV3 -> Ordering
OPSPayloadV3 -> OPSPayloadV3 -> OPSPayloadV3
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: OPSPayloadV3 -> OPSPayloadV3 -> Ordering
compare :: OPSPayloadV3 -> OPSPayloadV3 -> Ordering
$c< :: OPSPayloadV3 -> OPSPayloadV3 -> Bool
< :: OPSPayloadV3 -> OPSPayloadV3 -> Bool
$c<= :: OPSPayloadV3 -> OPSPayloadV3 -> Bool
<= :: OPSPayloadV3 -> OPSPayloadV3 -> Bool
$c> :: OPSPayloadV3 -> OPSPayloadV3 -> Bool
> :: OPSPayloadV3 -> OPSPayloadV3 -> Bool
$c>= :: OPSPayloadV3 -> OPSPayloadV3 -> Bool
>= :: OPSPayloadV3 -> OPSPayloadV3 -> Bool
$cmax :: OPSPayloadV3 -> OPSPayloadV3 -> OPSPayloadV3
max :: OPSPayloadV3 -> OPSPayloadV3 -> OPSPayloadV3
$cmin :: OPSPayloadV3 -> OPSPayloadV3 -> OPSPayloadV3
min :: OPSPayloadV3 -> OPSPayloadV3 -> OPSPayloadV3
Ord, Int -> OPSPayloadV3 -> ShowS
[OPSPayloadV3] -> ShowS
OPSPayloadV3 -> String
(Int -> OPSPayloadV3 -> ShowS)
-> (OPSPayloadV3 -> String)
-> ([OPSPayloadV3] -> ShowS)
-> Show OPSPayloadV3
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OPSPayloadV3 -> ShowS
showsPrec :: Int -> OPSPayloadV3 -> ShowS
$cshow :: OPSPayloadV3 -> String
show :: OPSPayloadV3 -> String
$cshowList :: [OPSPayloadV3] -> ShowS
showList :: [OPSPayloadV3] -> ShowS
Show, Typeable)
data OPSPayloadV6 =
OPSPayloadV6
SigType
HashAlgorithm
PubKeyAlgorithm
SignatureSalt
BL.ByteString
NestedFlag
deriving (Typeable OPSPayloadV6
Typeable OPSPayloadV6 =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OPSPayloadV6 -> c OPSPayloadV6)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OPSPayloadV6)
-> (OPSPayloadV6 -> Constr)
-> (OPSPayloadV6 -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OPSPayloadV6))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OPSPayloadV6))
-> ((forall b. Data b => b -> b) -> OPSPayloadV6 -> OPSPayloadV6)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV6 -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV6 -> r)
-> (forall u. (forall d. Data d => d -> u) -> OPSPayloadV6 -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> OPSPayloadV6 -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> OPSPayloadV6 -> m OPSPayloadV6)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV6 -> m OPSPayloadV6)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV6 -> m OPSPayloadV6)
-> Data OPSPayloadV6
OPSPayloadV6 -> Constr
OPSPayloadV6 -> DataType
(forall b. Data b => b -> b) -> OPSPayloadV6 -> OPSPayloadV6
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> OPSPayloadV6 -> u
forall u. (forall d. Data d => d -> u) -> OPSPayloadV6 -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV6 -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV6 -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> OPSPayloadV6 -> m OPSPayloadV6
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV6 -> m OPSPayloadV6
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OPSPayloadV6
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OPSPayloadV6 -> c OPSPayloadV6
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OPSPayloadV6)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OPSPayloadV6)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OPSPayloadV6 -> c OPSPayloadV6
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> OPSPayloadV6 -> c OPSPayloadV6
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OPSPayloadV6
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OPSPayloadV6
$ctoConstr :: OPSPayloadV6 -> Constr
toConstr :: OPSPayloadV6 -> Constr
$cdataTypeOf :: OPSPayloadV6 -> DataType
dataTypeOf :: OPSPayloadV6 -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OPSPayloadV6)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OPSPayloadV6)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OPSPayloadV6)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OPSPayloadV6)
$cgmapT :: (forall b. Data b => b -> b) -> OPSPayloadV6 -> OPSPayloadV6
gmapT :: (forall b. Data b => b -> b) -> OPSPayloadV6 -> OPSPayloadV6
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV6 -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV6 -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV6 -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> OPSPayloadV6 -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> OPSPayloadV6 -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> OPSPayloadV6 -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> OPSPayloadV6 -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> OPSPayloadV6 -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> OPSPayloadV6 -> m OPSPayloadV6
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> OPSPayloadV6 -> m OPSPayloadV6
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV6 -> m OPSPayloadV6
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV6 -> m OPSPayloadV6
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV6 -> m OPSPayloadV6
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> OPSPayloadV6 -> m OPSPayloadV6
Data, OPSPayloadV6 -> OPSPayloadV6 -> Bool
(OPSPayloadV6 -> OPSPayloadV6 -> Bool)
-> (OPSPayloadV6 -> OPSPayloadV6 -> Bool) -> Eq OPSPayloadV6
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OPSPayloadV6 -> OPSPayloadV6 -> Bool
== :: OPSPayloadV6 -> OPSPayloadV6 -> Bool
$c/= :: OPSPayloadV6 -> OPSPayloadV6 -> Bool
/= :: OPSPayloadV6 -> OPSPayloadV6 -> Bool
Eq, (forall x. OPSPayloadV6 -> Rep OPSPayloadV6 x)
-> (forall x. Rep OPSPayloadV6 x -> OPSPayloadV6)
-> Generic OPSPayloadV6
forall x. Rep OPSPayloadV6 x -> OPSPayloadV6
forall x. OPSPayloadV6 -> Rep OPSPayloadV6 x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. OPSPayloadV6 -> Rep OPSPayloadV6 x
from :: forall x. OPSPayloadV6 -> Rep OPSPayloadV6 x
$cto :: forall x. Rep OPSPayloadV6 x -> OPSPayloadV6
to :: forall x. Rep OPSPayloadV6 x -> OPSPayloadV6
Generic, Eq OPSPayloadV6
Eq OPSPayloadV6 =>
(Int -> OPSPayloadV6 -> Int)
-> (OPSPayloadV6 -> Int) -> Hashable OPSPayloadV6
Int -> OPSPayloadV6 -> Int
OPSPayloadV6 -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> OPSPayloadV6 -> Int
hashWithSalt :: Int -> OPSPayloadV6 -> Int
$chash :: OPSPayloadV6 -> Int
hash :: OPSPayloadV6 -> Int
Hashable, Eq OPSPayloadV6
Eq OPSPayloadV6 =>
(OPSPayloadV6 -> OPSPayloadV6 -> Ordering)
-> (OPSPayloadV6 -> OPSPayloadV6 -> Bool)
-> (OPSPayloadV6 -> OPSPayloadV6 -> Bool)
-> (OPSPayloadV6 -> OPSPayloadV6 -> Bool)
-> (OPSPayloadV6 -> OPSPayloadV6 -> Bool)
-> (OPSPayloadV6 -> OPSPayloadV6 -> OPSPayloadV6)
-> (OPSPayloadV6 -> OPSPayloadV6 -> OPSPayloadV6)
-> Ord OPSPayloadV6
OPSPayloadV6 -> OPSPayloadV6 -> Bool
OPSPayloadV6 -> OPSPayloadV6 -> Ordering
OPSPayloadV6 -> OPSPayloadV6 -> OPSPayloadV6
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: OPSPayloadV6 -> OPSPayloadV6 -> Ordering
compare :: OPSPayloadV6 -> OPSPayloadV6 -> Ordering
$c< :: OPSPayloadV6 -> OPSPayloadV6 -> Bool
< :: OPSPayloadV6 -> OPSPayloadV6 -> Bool
$c<= :: OPSPayloadV6 -> OPSPayloadV6 -> Bool
<= :: OPSPayloadV6 -> OPSPayloadV6 -> Bool
$c> :: OPSPayloadV6 -> OPSPayloadV6 -> Bool
> :: OPSPayloadV6 -> OPSPayloadV6 -> Bool
$c>= :: OPSPayloadV6 -> OPSPayloadV6 -> Bool
>= :: OPSPayloadV6 -> OPSPayloadV6 -> Bool
$cmax :: OPSPayloadV6 -> OPSPayloadV6 -> OPSPayloadV6
max :: OPSPayloadV6 -> OPSPayloadV6 -> OPSPayloadV6
$cmin :: OPSPayloadV6 -> OPSPayloadV6 -> OPSPayloadV6
min :: OPSPayloadV6 -> OPSPayloadV6 -> OPSPayloadV6
Ord, Int -> OPSPayloadV6 -> ShowS
[OPSPayloadV6] -> ShowS
OPSPayloadV6 -> String
(Int -> OPSPayloadV6 -> ShowS)
-> (OPSPayloadV6 -> String)
-> ([OPSPayloadV6] -> ShowS)
-> Show OPSPayloadV6
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OPSPayloadV6 -> ShowS
showsPrec :: Int -> OPSPayloadV6 -> ShowS
$cshow :: OPSPayloadV6 -> String
show :: OPSPayloadV6 -> String
$cshowList :: [OPSPayloadV6] -> ShowS
showList :: [OPSPayloadV6] -> ShowS
Show, Typeable)
data OnePassSignaturePayload
= OPSPayloadV3Packet OPSPayloadV3
| OPSPayloadV6Packet OPSPayloadV6
deriving (Typeable OnePassSignaturePayload
Typeable OnePassSignaturePayload =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OnePassSignaturePayload
-> c OnePassSignaturePayload)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OnePassSignaturePayload)
-> (OnePassSignaturePayload -> Constr)
-> (OnePassSignaturePayload -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OnePassSignaturePayload))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OnePassSignaturePayload))
-> ((forall b. Data b => b -> b)
-> OnePassSignaturePayload -> OnePassSignaturePayload)
-> (forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignaturePayload
-> r)
-> (forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignaturePayload
-> r)
-> (forall u.
(forall d. Data d => d -> u) -> OnePassSignaturePayload -> [u])
-> (forall u.
Int
-> (forall d. Data d => d -> u) -> OnePassSignaturePayload -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OnePassSignaturePayload -> m OnePassSignaturePayload)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignaturePayload -> m OnePassSignaturePayload)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignaturePayload -> m OnePassSignaturePayload)
-> Data OnePassSignaturePayload
OnePassSignaturePayload -> Constr
OnePassSignaturePayload -> DataType
(forall b. Data b => b -> b)
-> OnePassSignaturePayload -> OnePassSignaturePayload
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> OnePassSignaturePayload -> u
forall u.
(forall d. Data d => d -> u) -> OnePassSignaturePayload -> [u]
forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignaturePayload
-> r
forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignaturePayload
-> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OnePassSignaturePayload -> m OnePassSignaturePayload
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignaturePayload -> m OnePassSignaturePayload
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OnePassSignaturePayload
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OnePassSignaturePayload
-> c OnePassSignaturePayload
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OnePassSignaturePayload)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OnePassSignaturePayload)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OnePassSignaturePayload
-> c OnePassSignaturePayload
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> OnePassSignaturePayload
-> c OnePassSignaturePayload
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OnePassSignaturePayload
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c OnePassSignaturePayload
$ctoConstr :: OnePassSignaturePayload -> Constr
toConstr :: OnePassSignaturePayload -> Constr
$cdataTypeOf :: OnePassSignaturePayload -> DataType
dataTypeOf :: OnePassSignaturePayload -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OnePassSignaturePayload)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c OnePassSignaturePayload)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OnePassSignaturePayload)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c OnePassSignaturePayload)
$cgmapT :: (forall b. Data b => b -> b)
-> OnePassSignaturePayload -> OnePassSignaturePayload
gmapT :: (forall b. Data b => b -> b)
-> OnePassSignaturePayload -> OnePassSignaturePayload
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignaturePayload
-> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignaturePayload
-> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignaturePayload
-> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r
-> (forall d. Data d => d -> r')
-> OnePassSignaturePayload
-> r
$cgmapQ :: forall u.
(forall d. Data d => d -> u) -> OnePassSignaturePayload -> [u]
gmapQ :: forall u.
(forall d. Data d => d -> u) -> OnePassSignaturePayload -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> OnePassSignaturePayload -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> OnePassSignaturePayload -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OnePassSignaturePayload -> m OnePassSignaturePayload
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> OnePassSignaturePayload -> m OnePassSignaturePayload
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignaturePayload -> m OnePassSignaturePayload
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignaturePayload -> m OnePassSignaturePayload
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignaturePayload -> m OnePassSignaturePayload
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> OnePassSignaturePayload -> m OnePassSignaturePayload
Data, OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
(OnePassSignaturePayload -> OnePassSignaturePayload -> Bool)
-> (OnePassSignaturePayload -> OnePassSignaturePayload -> Bool)
-> Eq OnePassSignaturePayload
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
== :: OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
$c/= :: OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
/= :: OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
Eq, (forall x.
OnePassSignaturePayload -> Rep OnePassSignaturePayload x)
-> (forall x.
Rep OnePassSignaturePayload x -> OnePassSignaturePayload)
-> Generic OnePassSignaturePayload
forall x. Rep OnePassSignaturePayload x -> OnePassSignaturePayload
forall x. OnePassSignaturePayload -> Rep OnePassSignaturePayload x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. OnePassSignaturePayload -> Rep OnePassSignaturePayload x
from :: forall x. OnePassSignaturePayload -> Rep OnePassSignaturePayload x
$cto :: forall x. Rep OnePassSignaturePayload x -> OnePassSignaturePayload
to :: forall x. Rep OnePassSignaturePayload x -> OnePassSignaturePayload
Generic, Eq OnePassSignaturePayload
Eq OnePassSignaturePayload =>
(Int -> OnePassSignaturePayload -> Int)
-> (OnePassSignaturePayload -> Int)
-> Hashable OnePassSignaturePayload
Int -> OnePassSignaturePayload -> Int
OnePassSignaturePayload -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> OnePassSignaturePayload -> Int
hashWithSalt :: Int -> OnePassSignaturePayload -> Int
$chash :: OnePassSignaturePayload -> Int
hash :: OnePassSignaturePayload -> Int
Hashable, Eq OnePassSignaturePayload
Eq OnePassSignaturePayload =>
(OnePassSignaturePayload -> OnePassSignaturePayload -> Ordering)
-> (OnePassSignaturePayload -> OnePassSignaturePayload -> Bool)
-> (OnePassSignaturePayload -> OnePassSignaturePayload -> Bool)
-> (OnePassSignaturePayload -> OnePassSignaturePayload -> Bool)
-> (OnePassSignaturePayload -> OnePassSignaturePayload -> Bool)
-> (OnePassSignaturePayload
-> OnePassSignaturePayload -> OnePassSignaturePayload)
-> (OnePassSignaturePayload
-> OnePassSignaturePayload -> OnePassSignaturePayload)
-> Ord OnePassSignaturePayload
OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
OnePassSignaturePayload -> OnePassSignaturePayload -> Ordering
OnePassSignaturePayload
-> OnePassSignaturePayload -> OnePassSignaturePayload
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: OnePassSignaturePayload -> OnePassSignaturePayload -> Ordering
compare :: OnePassSignaturePayload -> OnePassSignaturePayload -> Ordering
$c< :: OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
< :: OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
$c<= :: OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
<= :: OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
$c> :: OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
> :: OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
$c>= :: OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
>= :: OnePassSignaturePayload -> OnePassSignaturePayload -> Bool
$cmax :: OnePassSignaturePayload
-> OnePassSignaturePayload -> OnePassSignaturePayload
max :: OnePassSignaturePayload
-> OnePassSignaturePayload -> OnePassSignaturePayload
$cmin :: OnePassSignaturePayload
-> OnePassSignaturePayload -> OnePassSignaturePayload
min :: OnePassSignaturePayload
-> OnePassSignaturePayload -> OnePassSignaturePayload
Ord, Int -> OnePassSignaturePayload -> ShowS
[OnePassSignaturePayload] -> ShowS
OnePassSignaturePayload -> String
(Int -> OnePassSignaturePayload -> ShowS)
-> (OnePassSignaturePayload -> String)
-> ([OnePassSignaturePayload] -> ShowS)
-> Show OnePassSignaturePayload
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OnePassSignaturePayload -> ShowS
showsPrec :: Int -> OnePassSignaturePayload -> ShowS
$cshow :: OnePassSignaturePayload -> String
show :: OnePassSignaturePayload -> String
$cshowList :: [OnePassSignaturePayload] -> ShowS
showList :: [OnePassSignaturePayload] -> ShowS
Show, Typeable)
data SEIPDPayload
= SEIPD1 PacketVersion BL.ByteString
| SEIPD2 SymmetricAlgorithm AEADAlgorithm Word8 Salt BL.ByteString
deriving (Typeable SEIPDPayload
Typeable SEIPDPayload =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SEIPDPayload -> c SEIPDPayload)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SEIPDPayload)
-> (SEIPDPayload -> Constr)
-> (SEIPDPayload -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SEIPDPayload))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SEIPDPayload))
-> ((forall b. Data b => b -> b) -> SEIPDPayload -> SEIPDPayload)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SEIPDPayload -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SEIPDPayload -> r)
-> (forall u. (forall d. Data d => d -> u) -> SEIPDPayload -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> SEIPDPayload -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> SEIPDPayload -> m SEIPDPayload)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SEIPDPayload -> m SEIPDPayload)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SEIPDPayload -> m SEIPDPayload)
-> Data SEIPDPayload
SEIPDPayload -> Constr
SEIPDPayload -> DataType
(forall b. Data b => b -> b) -> SEIPDPayload -> SEIPDPayload
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> SEIPDPayload -> u
forall u. (forall d. Data d => d -> u) -> SEIPDPayload -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SEIPDPayload -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SEIPDPayload -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> SEIPDPayload -> m SEIPDPayload
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SEIPDPayload -> m SEIPDPayload
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SEIPDPayload
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SEIPDPayload -> c SEIPDPayload
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SEIPDPayload)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SEIPDPayload)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SEIPDPayload -> c SEIPDPayload
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SEIPDPayload -> c SEIPDPayload
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SEIPDPayload
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SEIPDPayload
$ctoConstr :: SEIPDPayload -> Constr
toConstr :: SEIPDPayload -> Constr
$cdataTypeOf :: SEIPDPayload -> DataType
dataTypeOf :: SEIPDPayload -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SEIPDPayload)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SEIPDPayload)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SEIPDPayload)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c SEIPDPayload)
$cgmapT :: (forall b. Data b => b -> b) -> SEIPDPayload -> SEIPDPayload
gmapT :: (forall b. Data b => b -> b) -> SEIPDPayload -> SEIPDPayload
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SEIPDPayload -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SEIPDPayload -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SEIPDPayload -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SEIPDPayload -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> SEIPDPayload -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> SEIPDPayload -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> SEIPDPayload -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> SEIPDPayload -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> SEIPDPayload -> m SEIPDPayload
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> SEIPDPayload -> m SEIPDPayload
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SEIPDPayload -> m SEIPDPayload
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SEIPDPayload -> m SEIPDPayload
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SEIPDPayload -> m SEIPDPayload
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SEIPDPayload -> m SEIPDPayload
Data, SEIPDPayload -> SEIPDPayload -> Bool
(SEIPDPayload -> SEIPDPayload -> Bool)
-> (SEIPDPayload -> SEIPDPayload -> Bool) -> Eq SEIPDPayload
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SEIPDPayload -> SEIPDPayload -> Bool
== :: SEIPDPayload -> SEIPDPayload -> Bool
$c/= :: SEIPDPayload -> SEIPDPayload -> Bool
/= :: SEIPDPayload -> SEIPDPayload -> Bool
Eq, (forall x. SEIPDPayload -> Rep SEIPDPayload x)
-> (forall x. Rep SEIPDPayload x -> SEIPDPayload)
-> Generic SEIPDPayload
forall x. Rep SEIPDPayload x -> SEIPDPayload
forall x. SEIPDPayload -> Rep SEIPDPayload x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SEIPDPayload -> Rep SEIPDPayload x
from :: forall x. SEIPDPayload -> Rep SEIPDPayload x
$cto :: forall x. Rep SEIPDPayload x -> SEIPDPayload
to :: forall x. Rep SEIPDPayload x -> SEIPDPayload
Generic, Eq SEIPDPayload
Eq SEIPDPayload =>
(Int -> SEIPDPayload -> Int)
-> (SEIPDPayload -> Int) -> Hashable SEIPDPayload
Int -> SEIPDPayload -> Int
SEIPDPayload -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> SEIPDPayload -> Int
hashWithSalt :: Int -> SEIPDPayload -> Int
$chash :: SEIPDPayload -> Int
hash :: SEIPDPayload -> Int
Hashable, Eq SEIPDPayload
Eq SEIPDPayload =>
(SEIPDPayload -> SEIPDPayload -> Ordering)
-> (SEIPDPayload -> SEIPDPayload -> Bool)
-> (SEIPDPayload -> SEIPDPayload -> Bool)
-> (SEIPDPayload -> SEIPDPayload -> Bool)
-> (SEIPDPayload -> SEIPDPayload -> Bool)
-> (SEIPDPayload -> SEIPDPayload -> SEIPDPayload)
-> (SEIPDPayload -> SEIPDPayload -> SEIPDPayload)
-> Ord SEIPDPayload
SEIPDPayload -> SEIPDPayload -> Bool
SEIPDPayload -> SEIPDPayload -> Ordering
SEIPDPayload -> SEIPDPayload -> SEIPDPayload
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SEIPDPayload -> SEIPDPayload -> Ordering
compare :: SEIPDPayload -> SEIPDPayload -> Ordering
$c< :: SEIPDPayload -> SEIPDPayload -> Bool
< :: SEIPDPayload -> SEIPDPayload -> Bool
$c<= :: SEIPDPayload -> SEIPDPayload -> Bool
<= :: SEIPDPayload -> SEIPDPayload -> Bool
$c> :: SEIPDPayload -> SEIPDPayload -> Bool
> :: SEIPDPayload -> SEIPDPayload -> Bool
$c>= :: SEIPDPayload -> SEIPDPayload -> Bool
>= :: SEIPDPayload -> SEIPDPayload -> Bool
$cmax :: SEIPDPayload -> SEIPDPayload -> SEIPDPayload
max :: SEIPDPayload -> SEIPDPayload -> SEIPDPayload
$cmin :: SEIPDPayload -> SEIPDPayload -> SEIPDPayload
min :: SEIPDPayload -> SEIPDPayload -> SEIPDPayload
Ord, Int -> SEIPDPayload -> ShowS
[SEIPDPayload] -> ShowS
SEIPDPayload -> String
(Int -> SEIPDPayload -> ShowS)
-> (SEIPDPayload -> String)
-> ([SEIPDPayload] -> ShowS)
-> Show SEIPDPayload
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SEIPDPayload -> ShowS
showsPrec :: Int -> SEIPDPayload -> ShowS
$cshow :: SEIPDPayload -> String
show :: SEIPDPayload -> String
$cshowList :: [SEIPDPayload] -> ShowS
showList :: [SEIPDPayload] -> ShowS
Show, Typeable)
data KeyPktKind
= PublicPkt
| SecretPkt
deriving (Typeable KeyPktKind
Typeable KeyPktKind =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> KeyPktKind -> c KeyPktKind)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c KeyPktKind)
-> (KeyPktKind -> Constr)
-> (KeyPktKind -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c KeyPktKind))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c KeyPktKind))
-> ((forall b. Data b => b -> b) -> KeyPktKind -> KeyPktKind)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktKind -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktKind -> r)
-> (forall u. (forall d. Data d => d -> u) -> KeyPktKind -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> KeyPktKind -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> KeyPktKind -> m KeyPktKind)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktKind -> m KeyPktKind)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktKind -> m KeyPktKind)
-> Data KeyPktKind
KeyPktKind -> Constr
KeyPktKind -> DataType
(forall b. Data b => b -> b) -> KeyPktKind -> KeyPktKind
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> KeyPktKind -> u
forall u. (forall d. Data d => d -> u) -> KeyPktKind -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktKind -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktKind -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> KeyPktKind -> m KeyPktKind
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktKind -> m KeyPktKind
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c KeyPktKind
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> KeyPktKind -> c KeyPktKind
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c KeyPktKind)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c KeyPktKind)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> KeyPktKind -> c KeyPktKind
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> KeyPktKind -> c KeyPktKind
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c KeyPktKind
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c KeyPktKind
$ctoConstr :: KeyPktKind -> Constr
toConstr :: KeyPktKind -> Constr
$cdataTypeOf :: KeyPktKind -> DataType
dataTypeOf :: KeyPktKind -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c KeyPktKind)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c KeyPktKind)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c KeyPktKind)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c KeyPktKind)
$cgmapT :: (forall b. Data b => b -> b) -> KeyPktKind -> KeyPktKind
gmapT :: (forall b. Data b => b -> b) -> KeyPktKind -> KeyPktKind
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktKind -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktKind -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktKind -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktKind -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> KeyPktKind -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> KeyPktKind -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> KeyPktKind -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> KeyPktKind -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> KeyPktKind -> m KeyPktKind
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> KeyPktKind -> m KeyPktKind
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktKind -> m KeyPktKind
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktKind -> m KeyPktKind
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktKind -> m KeyPktKind
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktKind -> m KeyPktKind
Data, KeyPktKind -> KeyPktKind -> Bool
(KeyPktKind -> KeyPktKind -> Bool)
-> (KeyPktKind -> KeyPktKind -> Bool) -> Eq KeyPktKind
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: KeyPktKind -> KeyPktKind -> Bool
== :: KeyPktKind -> KeyPktKind -> Bool
$c/= :: KeyPktKind -> KeyPktKind -> Bool
/= :: KeyPktKind -> KeyPktKind -> Bool
Eq, (forall x. KeyPktKind -> Rep KeyPktKind x)
-> (forall x. Rep KeyPktKind x -> KeyPktKind) -> Generic KeyPktKind
forall x. Rep KeyPktKind x -> KeyPktKind
forall x. KeyPktKind -> Rep KeyPktKind x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. KeyPktKind -> Rep KeyPktKind x
from :: forall x. KeyPktKind -> Rep KeyPktKind x
$cto :: forall x. Rep KeyPktKind x -> KeyPktKind
to :: forall x. Rep KeyPktKind x -> KeyPktKind
Generic, Eq KeyPktKind
Eq KeyPktKind =>
(Int -> KeyPktKind -> Int)
-> (KeyPktKind -> Int) -> Hashable KeyPktKind
Int -> KeyPktKind -> Int
KeyPktKind -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> KeyPktKind -> Int
hashWithSalt :: Int -> KeyPktKind -> Int
$chash :: KeyPktKind -> Int
hash :: KeyPktKind -> Int
Hashable, Eq KeyPktKind
Eq KeyPktKind =>
(KeyPktKind -> KeyPktKind -> Ordering)
-> (KeyPktKind -> KeyPktKind -> Bool)
-> (KeyPktKind -> KeyPktKind -> Bool)
-> (KeyPktKind -> KeyPktKind -> Bool)
-> (KeyPktKind -> KeyPktKind -> Bool)
-> (KeyPktKind -> KeyPktKind -> KeyPktKind)
-> (KeyPktKind -> KeyPktKind -> KeyPktKind)
-> Ord KeyPktKind
KeyPktKind -> KeyPktKind -> Bool
KeyPktKind -> KeyPktKind -> Ordering
KeyPktKind -> KeyPktKind -> KeyPktKind
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: KeyPktKind -> KeyPktKind -> Ordering
compare :: KeyPktKind -> KeyPktKind -> Ordering
$c< :: KeyPktKind -> KeyPktKind -> Bool
< :: KeyPktKind -> KeyPktKind -> Bool
$c<= :: KeyPktKind -> KeyPktKind -> Bool
<= :: KeyPktKind -> KeyPktKind -> Bool
$c> :: KeyPktKind -> KeyPktKind -> Bool
> :: KeyPktKind -> KeyPktKind -> Bool
$c>= :: KeyPktKind -> KeyPktKind -> Bool
>= :: KeyPktKind -> KeyPktKind -> Bool
$cmax :: KeyPktKind -> KeyPktKind -> KeyPktKind
max :: KeyPktKind -> KeyPktKind -> KeyPktKind
$cmin :: KeyPktKind -> KeyPktKind -> KeyPktKind
min :: KeyPktKind -> KeyPktKind -> KeyPktKind
Ord, Int -> KeyPktKind -> ShowS
[KeyPktKind] -> ShowS
KeyPktKind -> String
(Int -> KeyPktKind -> ShowS)
-> (KeyPktKind -> String)
-> ([KeyPktKind] -> ShowS)
-> Show KeyPktKind
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> KeyPktKind -> ShowS
showsPrec :: Int -> KeyPktKind -> ShowS
$cshow :: KeyPktKind -> String
show :: KeyPktKind -> String
$cshowList :: [KeyPktKind] -> ShowS
showList :: [KeyPktKind] -> ShowS
Show, Typeable)
data KeyPktRole
= KeyPktPrimary
| KeyPktSubkey
deriving (Typeable KeyPktRole
Typeable KeyPktRole =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> KeyPktRole -> c KeyPktRole)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c KeyPktRole)
-> (KeyPktRole -> Constr)
-> (KeyPktRole -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c KeyPktRole))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c KeyPktRole))
-> ((forall b. Data b => b -> b) -> KeyPktRole -> KeyPktRole)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktRole -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktRole -> r)
-> (forall u. (forall d. Data d => d -> u) -> KeyPktRole -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> KeyPktRole -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> KeyPktRole -> m KeyPktRole)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktRole -> m KeyPktRole)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktRole -> m KeyPktRole)
-> Data KeyPktRole
KeyPktRole -> Constr
KeyPktRole -> DataType
(forall b. Data b => b -> b) -> KeyPktRole -> KeyPktRole
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> KeyPktRole -> u
forall u. (forall d. Data d => d -> u) -> KeyPktRole -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktRole -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktRole -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> KeyPktRole -> m KeyPktRole
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktRole -> m KeyPktRole
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c KeyPktRole
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> KeyPktRole -> c KeyPktRole
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c KeyPktRole)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c KeyPktRole)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> KeyPktRole -> c KeyPktRole
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> KeyPktRole -> c KeyPktRole
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c KeyPktRole
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c KeyPktRole
$ctoConstr :: KeyPktRole -> Constr
toConstr :: KeyPktRole -> Constr
$cdataTypeOf :: KeyPktRole -> DataType
dataTypeOf :: KeyPktRole -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c KeyPktRole)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c KeyPktRole)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c KeyPktRole)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c KeyPktRole)
$cgmapT :: (forall b. Data b => b -> b) -> KeyPktRole -> KeyPktRole
gmapT :: (forall b. Data b => b -> b) -> KeyPktRole -> KeyPktRole
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktRole -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktRole -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktRole -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> KeyPktRole -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> KeyPktRole -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> KeyPktRole -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> KeyPktRole -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> KeyPktRole -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> KeyPktRole -> m KeyPktRole
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> KeyPktRole -> m KeyPktRole
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktRole -> m KeyPktRole
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktRole -> m KeyPktRole
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktRole -> m KeyPktRole
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> KeyPktRole -> m KeyPktRole
Data, KeyPktRole -> KeyPktRole -> Bool
(KeyPktRole -> KeyPktRole -> Bool)
-> (KeyPktRole -> KeyPktRole -> Bool) -> Eq KeyPktRole
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: KeyPktRole -> KeyPktRole -> Bool
== :: KeyPktRole -> KeyPktRole -> Bool
$c/= :: KeyPktRole -> KeyPktRole -> Bool
/= :: KeyPktRole -> KeyPktRole -> Bool
Eq, (forall x. KeyPktRole -> Rep KeyPktRole x)
-> (forall x. Rep KeyPktRole x -> KeyPktRole) -> Generic KeyPktRole
forall x. Rep KeyPktRole x -> KeyPktRole
forall x. KeyPktRole -> Rep KeyPktRole x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. KeyPktRole -> Rep KeyPktRole x
from :: forall x. KeyPktRole -> Rep KeyPktRole x
$cto :: forall x. Rep KeyPktRole x -> KeyPktRole
to :: forall x. Rep KeyPktRole x -> KeyPktRole
Generic, Eq KeyPktRole
Eq KeyPktRole =>
(Int -> KeyPktRole -> Int)
-> (KeyPktRole -> Int) -> Hashable KeyPktRole
Int -> KeyPktRole -> Int
KeyPktRole -> Int
forall a. Eq a => (Int -> a -> Int) -> (a -> Int) -> Hashable a
$chashWithSalt :: Int -> KeyPktRole -> Int
hashWithSalt :: Int -> KeyPktRole -> Int
$chash :: KeyPktRole -> Int
hash :: KeyPktRole -> Int
Hashable, Eq KeyPktRole
Eq KeyPktRole =>
(KeyPktRole -> KeyPktRole -> Ordering)
-> (KeyPktRole -> KeyPktRole -> Bool)
-> (KeyPktRole -> KeyPktRole -> Bool)
-> (KeyPktRole -> KeyPktRole -> Bool)
-> (KeyPktRole -> KeyPktRole -> Bool)
-> (KeyPktRole -> KeyPktRole -> KeyPktRole)
-> (KeyPktRole -> KeyPktRole -> KeyPktRole)
-> Ord KeyPktRole
KeyPktRole -> KeyPktRole -> Bool
KeyPktRole -> KeyPktRole -> Ordering
KeyPktRole -> KeyPktRole -> KeyPktRole
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: KeyPktRole -> KeyPktRole -> Ordering
compare :: KeyPktRole -> KeyPktRole -> Ordering
$c< :: KeyPktRole -> KeyPktRole -> Bool
< :: KeyPktRole -> KeyPktRole -> Bool
$c<= :: KeyPktRole -> KeyPktRole -> Bool
<= :: KeyPktRole -> KeyPktRole -> Bool
$c> :: KeyPktRole -> KeyPktRole -> Bool
> :: KeyPktRole -> KeyPktRole -> Bool
$c>= :: KeyPktRole -> KeyPktRole -> Bool
>= :: KeyPktRole -> KeyPktRole -> Bool
$cmax :: KeyPktRole -> KeyPktRole -> KeyPktRole
max :: KeyPktRole -> KeyPktRole -> KeyPktRole
$cmin :: KeyPktRole -> KeyPktRole -> KeyPktRole
min :: KeyPktRole -> KeyPktRole -> KeyPktRole
Ord, Int -> KeyPktRole -> ShowS
[KeyPktRole] -> ShowS
KeyPktRole -> String
(Int -> KeyPktRole -> ShowS)
-> (KeyPktRole -> String)
-> ([KeyPktRole] -> ShowS)
-> Show KeyPktRole
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> KeyPktRole -> ShowS
showsPrec :: Int -> KeyPktRole -> ShowS
$cshow :: KeyPktRole -> String
show :: KeyPktRole -> String
$cshowList :: [KeyPktRole] -> ShowS
showList :: [KeyPktRole] -> ShowS
Show, Typeable)
data KeyPkt (k :: KeyPktKind) where
KeyPktPublicPrimary :: SomePKPayload -> KeyPkt 'PublicPkt
KeyPktPublicSubkey :: SomePKPayload -> KeyPkt 'PublicPkt
KeyPktSecretPrimary :: SomePKPayload -> SKAddendum -> KeyPkt 'SecretPkt
KeyPktSecretSubkey :: SomePKPayload -> SKAddendum -> KeyPkt 'SecretPkt
deriving instance Eq (KeyPkt k)
deriving instance Show (KeyPkt k)
instance Ord (KeyPkt k) where
compare :: KeyPkt k -> KeyPkt k -> Ordering
compare = (KeyPkt k -> Pkt) -> KeyPkt k -> KeyPkt k -> Ordering
forall a b. Ord a => (b -> a) -> b -> b -> Ordering
comparing KeyPkt k -> Pkt
forall (k :: KeyPktKind). KeyPkt k -> Pkt
keyPktToPkt
instance Hashable (KeyPkt k) where
hashWithSalt :: Int -> KeyPkt k -> Int
hashWithSalt Int
s KeyPkt k
kp = Int -> Pkt -> Int
forall a. Hashable a => Int -> a -> Int
hashWithSalt Int
s (KeyPkt k -> Pkt
forall (k :: KeyPktKind). KeyPkt k -> Pkt
keyPktToPkt KeyPkt k
kp)
instance Typeable k => Data (KeyPkt k) where
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> KeyPkt k -> c (KeyPkt k)
gfoldl forall d b. Data d => c (d -> b) -> d -> c b
f forall g. g -> c g
z (KeyPktPublicPrimary SomePKPayload
pkp) = (SomePKPayload -> KeyPkt k) -> c (SomePKPayload -> KeyPkt k)
forall g. g -> c g
z SomePKPayload -> KeyPkt k
SomePKPayload -> KeyPkt 'PublicPkt
KeyPktPublicPrimary c (SomePKPayload -> KeyPkt k) -> SomePKPayload -> c (KeyPkt k)
forall d b. Data d => c (d -> b) -> d -> c b
`f` SomePKPayload
pkp
gfoldl forall d b. Data d => c (d -> b) -> d -> c b
f forall g. g -> c g
z (KeyPktPublicSubkey SomePKPayload
pkp) = (SomePKPayload -> KeyPkt k) -> c (SomePKPayload -> KeyPkt k)
forall g. g -> c g
z SomePKPayload -> KeyPkt k
SomePKPayload -> KeyPkt 'PublicPkt
KeyPktPublicSubkey c (SomePKPayload -> KeyPkt k) -> SomePKPayload -> c (KeyPkt k)
forall d b. Data d => c (d -> b) -> d -> c b
`f` SomePKPayload
pkp
gfoldl forall d b. Data d => c (d -> b) -> d -> c b
f forall g. g -> c g
z (KeyPktSecretPrimary SomePKPayload
pkp SKAddendum
ska) = (SomePKPayload -> SKAddendum -> KeyPkt k)
-> c (SomePKPayload -> SKAddendum -> KeyPkt k)
forall g. g -> c g
z SomePKPayload -> SKAddendum -> KeyPkt k
SomePKPayload -> SKAddendum -> KeyPkt 'SecretPkt
KeyPktSecretPrimary c (SomePKPayload -> SKAddendum -> KeyPkt k)
-> SomePKPayload -> c (SKAddendum -> KeyPkt k)
forall d b. Data d => c (d -> b) -> d -> c b
`f` SomePKPayload
pkp c (SKAddendum -> KeyPkt k) -> SKAddendum -> c (KeyPkt k)
forall d b. Data d => c (d -> b) -> d -> c b
`f` SKAddendum
ska
gfoldl forall d b. Data d => c (d -> b) -> d -> c b
f forall g. g -> c g
z (KeyPktSecretSubkey SomePKPayload
pkp SKAddendum
ska) = (SomePKPayload -> SKAddendum -> KeyPkt k)
-> c (SomePKPayload -> SKAddendum -> KeyPkt k)
forall g. g -> c g
z SomePKPayload -> SKAddendum -> KeyPkt k
SomePKPayload -> SKAddendum -> KeyPkt 'SecretPkt
KeyPktSecretSubkey c (SomePKPayload -> SKAddendum -> KeyPkt k)
-> SomePKPayload -> c (SKAddendum -> KeyPkt k)
forall d b. Data d => c (d -> b) -> d -> c b
`f` SomePKPayload
pkp c (SKAddendum -> KeyPkt k) -> SKAddendum -> c (KeyPkt k)
forall d b. Data d => c (d -> b) -> d -> c b
`f` SKAddendum
ska
toConstr :: KeyPkt k -> Constr
toConstr (KeyPktPublicPrimary SomePKPayload
_) = Constr
conKeyPktPublicPrimary
toConstr (KeyPktPublicSubkey SomePKPayload
_) = Constr
conKeyPktPublicSubkey
toConstr (KeyPktSecretPrimary SomePKPayload
_ SKAddendum
_) = Constr
conKeyPktSecretPrimary
toConstr (KeyPktSecretSubkey SomePKPayload
_ SKAddendum
_) = Constr
conKeyPktSecretSubkey
dataTypeOf :: KeyPkt k -> DataType
dataTypeOf KeyPkt k
_ = DataType
tyKeyPkt
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (KeyPkt k)
gunfold forall b r. Data b => c (b -> r) -> c r
_ forall r. r -> c r
_ Constr
_ = String -> c (KeyPkt k)
forall a. HasCallStack => String -> a
error String
"KeyPkt: gunfold not supported for GADT"
tyKeyPkt :: DD.DataType
tyKeyPkt :: DataType
tyKeyPkt = String -> [Constr] -> DataType
mkDataType String
"Codec.Encryption.OpenPGP.Types.Internal.Pkt.KeyPkt"
[ Constr
conKeyPktPublicPrimary
, Constr
conKeyPktPublicSubkey
, Constr
conKeyPktSecretPrimary
, Constr
conKeyPktSecretSubkey
]
conKeyPktPublicPrimary, conKeyPktPublicSubkey,
conKeyPktSecretPrimary, conKeyPktSecretSubkey :: Constr
conKeyPktPublicPrimary :: Constr
conKeyPktPublicPrimary = DataType -> String -> [String] -> Fixity -> Constr
mkConstr DataType
tyKeyPkt String
"KeyPktPublicPrimary" [] Fixity
Prefix
conKeyPktPublicSubkey :: Constr
conKeyPktPublicSubkey = DataType -> String -> [String] -> Fixity -> Constr
mkConstr DataType
tyKeyPkt String
"KeyPktPublicSubkey" [] Fixity
Prefix
conKeyPktSecretPrimary :: Constr
conKeyPktSecretPrimary = DataType -> String -> [String] -> Fixity -> Constr
mkConstr DataType
tyKeyPkt String
"KeyPktSecretPrimary" [] Fixity
Prefix
conKeyPktSecretSubkey :: Constr
conKeyPktSecretSubkey = DataType -> String -> [String] -> Fixity -> Constr
mkConstr DataType
tyKeyPkt String
"KeyPktSecretSubkey" [] Fixity
Prefix
data SomeKeyPkt where
SomeKeyPkt :: KeyPkt k -> SomeKeyPkt
deriving instance Show SomeKeyPkt
instance Eq SomeKeyPkt where
SomeKeyPkt KeyPkt k
left == :: SomeKeyPkt -> SomeKeyPkt -> Bool
== SomeKeyPkt KeyPkt k
right = SomeKeyPkt -> Pkt
someKeyPktToPkt (KeyPkt k -> SomeKeyPkt
forall (k :: KeyPktKind). KeyPkt k -> SomeKeyPkt
SomeKeyPkt KeyPkt k
left) Pkt -> Pkt -> Bool
forall a. Eq a => a -> a -> Bool
== SomeKeyPkt -> Pkt
someKeyPktToPkt (KeyPkt k -> SomeKeyPkt
forall (k :: KeyPktKind). KeyPkt k -> SomeKeyPkt
SomeKeyPkt KeyPkt k
right)
data KeyPktCoercionError
= NotAKeyPacket Pkt
| ExpectedPublicKeyPacket Pkt
| ExpectedSecretKeyPacket Pkt
deriving (KeyPktCoercionError -> KeyPktCoercionError -> Bool
(KeyPktCoercionError -> KeyPktCoercionError -> Bool)
-> (KeyPktCoercionError -> KeyPktCoercionError -> Bool)
-> Eq KeyPktCoercionError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: KeyPktCoercionError -> KeyPktCoercionError -> Bool
== :: KeyPktCoercionError -> KeyPktCoercionError -> Bool
$c/= :: KeyPktCoercionError -> KeyPktCoercionError -> Bool
/= :: KeyPktCoercionError -> KeyPktCoercionError -> Bool
Eq, Int -> KeyPktCoercionError -> ShowS
[KeyPktCoercionError] -> ShowS
KeyPktCoercionError -> String
(Int -> KeyPktCoercionError -> ShowS)
-> (KeyPktCoercionError -> String)
-> ([KeyPktCoercionError] -> ShowS)
-> Show KeyPktCoercionError
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> KeyPktCoercionError -> ShowS
showsPrec :: Int -> KeyPktCoercionError -> ShowS
$cshow :: KeyPktCoercionError -> String
show :: KeyPktCoercionError -> String
$cshowList :: [KeyPktCoercionError] -> ShowS
showList :: [KeyPktCoercionError] -> ShowS
Show)
data Pkt
= PKESKPkt PKESKPayload
| SignaturePkt SignaturePayload
| SKESKPkt SKESKPayload
| OnePassSignaturePkt OnePassSignaturePayload
| SecretKeyPkt SomePKPayload SKAddendum
| PublicKeyPkt SomePKPayload
| SecretSubkeyPkt SomePKPayload SKAddendum
| CompressedDataPkt CompressionAlgorithm CompressedDataPayload
| SymEncDataPkt ByteString
| MarkerPkt ByteString
| LiteralDataPkt DataType FileName ThirtyTwoBitTimeStamp ByteString
| TrustPkt ByteString
| UserIdPkt Text
| PublicSubkeyPkt SomePKPayload
| UserAttributePkt [UserAttrSubPacket]
| SymEncIntegrityProtectedDataPkt SEIPDPayload
| ModificationDetectionCodePkt ByteString
| OtherPacketPkt Word8 ByteString
| BrokenPacketPkt String Word8 ByteString
deriving (Typeable Pkt
Typeable Pkt =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Pkt -> c Pkt)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Pkt)
-> (Pkt -> Constr)
-> (Pkt -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Pkt))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pkt))
-> ((forall b. Data b => b -> b) -> Pkt -> Pkt)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pkt -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pkt -> r)
-> (forall u. (forall d. Data d => d -> u) -> Pkt -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> Pkt -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Pkt -> m Pkt)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Pkt -> m Pkt)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Pkt -> m Pkt)
-> Data Pkt
Pkt -> Constr
Pkt -> DataType
(forall b. Data b => b -> b) -> Pkt -> Pkt
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> Pkt -> u
forall u. (forall d. Data d => d -> u) -> Pkt -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pkt -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pkt -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Pkt -> m Pkt
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Pkt -> m Pkt
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Pkt
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Pkt -> c Pkt
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Pkt)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pkt)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Pkt -> c Pkt
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Pkt -> c Pkt
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Pkt
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Pkt
$ctoConstr :: Pkt -> Constr
toConstr :: Pkt -> Constr
$cdataTypeOf :: Pkt -> DataType
dataTypeOf :: Pkt -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Pkt)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Pkt)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pkt)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pkt)
$cgmapT :: (forall b. Data b => b -> b) -> Pkt -> Pkt
gmapT :: (forall b. Data b => b -> b) -> Pkt -> Pkt
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pkt -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pkt -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pkt -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pkt -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> Pkt -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> Pkt -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Pkt -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Pkt -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Pkt -> m Pkt
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Pkt -> m Pkt
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Pkt -> m Pkt
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Pkt -> m Pkt
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Pkt -> m Pkt
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Pkt -> m Pkt
Data, Pkt -> Pkt -> Bool
(Pkt -> Pkt -> Bool) -> (Pkt -> Pkt -> Bool) -> Eq Pkt
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Pkt -> Pkt -> Bool
== :: Pkt -> Pkt -> Bool
$c/= :: Pkt -> Pkt -> Bool
/= :: Pkt -> Pkt -> Bool
Eq, (forall x. Pkt -> Rep Pkt x)
-> (forall x. Rep Pkt x -> Pkt) -> Generic Pkt
forall x. Rep Pkt x -> Pkt
forall x. Pkt -> Rep Pkt x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. Pkt -> Rep Pkt x
from :: forall x. Pkt -> Rep Pkt x
$cto :: forall x. Rep Pkt x -> Pkt
to :: forall x. Rep Pkt x -> Pkt
Generic, Int -> Pkt -> ShowS
[Pkt] -> ShowS
Pkt -> String
(Int -> Pkt -> ShowS)
-> (Pkt -> String) -> ([Pkt] -> ShowS) -> Show Pkt
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Pkt -> ShowS
showsPrec :: Int -> Pkt -> ShowS
$cshow :: Pkt -> String
show :: Pkt -> String
$cshowList :: [Pkt] -> ShowS
showList :: [Pkt] -> ShowS
Show, Typeable)
data PktWithWireRep =
PktWithWireRep
{ PktWithWireRep -> WireRepRef
_pktWireRepRef :: WireRepRef
, PktWithWireRep -> ByteRange
_pktRange :: ByteRange
, PktWithWireRep -> ByteString
_pktRaw :: ByteString
, PktWithWireRep -> Int
_pktIndex :: Int
, PktWithWireRep -> Pkt
_pktValue :: Pkt
}
deriving (Typeable PktWithWireRep
Typeable PktWithWireRep =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PktWithWireRep -> c PktWithWireRep)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PktWithWireRep)
-> (PktWithWireRep -> Constr)
-> (PktWithWireRep -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PktWithWireRep))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PktWithWireRep))
-> ((forall b. Data b => b -> b)
-> PktWithWireRep -> PktWithWireRep)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PktWithWireRep -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PktWithWireRep -> r)
-> (forall u.
(forall d. Data d => d -> u) -> PktWithWireRep -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> PktWithWireRep -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PktWithWireRep -> m PktWithWireRep)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PktWithWireRep -> m PktWithWireRep)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PktWithWireRep -> m PktWithWireRep)
-> Data PktWithWireRep
PktWithWireRep -> Constr
PktWithWireRep -> DataType
(forall b. Data b => b -> b) -> PktWithWireRep -> PktWithWireRep
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> PktWithWireRep -> u
forall u. (forall d. Data d => d -> u) -> PktWithWireRep -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PktWithWireRep -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PktWithWireRep -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PktWithWireRep -> m PktWithWireRep
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PktWithWireRep -> m PktWithWireRep
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PktWithWireRep
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PktWithWireRep -> c PktWithWireRep
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PktWithWireRep)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PktWithWireRep)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PktWithWireRep -> c PktWithWireRep
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PktWithWireRep -> c PktWithWireRep
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PktWithWireRep
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PktWithWireRep
$ctoConstr :: PktWithWireRep -> Constr
toConstr :: PktWithWireRep -> Constr
$cdataTypeOf :: PktWithWireRep -> DataType
dataTypeOf :: PktWithWireRep -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PktWithWireRep)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PktWithWireRep)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PktWithWireRep)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c PktWithWireRep)
$cgmapT :: (forall b. Data b => b -> b) -> PktWithWireRep -> PktWithWireRep
gmapT :: (forall b. Data b => b -> b) -> PktWithWireRep -> PktWithWireRep
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PktWithWireRep -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PktWithWireRep -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PktWithWireRep -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PktWithWireRep -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PktWithWireRep -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> PktWithWireRep -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PktWithWireRep -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> PktWithWireRep -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PktWithWireRep -> m PktWithWireRep
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> PktWithWireRep -> m PktWithWireRep
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PktWithWireRep -> m PktWithWireRep
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PktWithWireRep -> m PktWithWireRep
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PktWithWireRep -> m PktWithWireRep
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> PktWithWireRep -> m PktWithWireRep
Data, PktWithWireRep -> PktWithWireRep -> Bool
(PktWithWireRep -> PktWithWireRep -> Bool)
-> (PktWithWireRep -> PktWithWireRep -> Bool) -> Eq PktWithWireRep
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PktWithWireRep -> PktWithWireRep -> Bool
== :: PktWithWireRep -> PktWithWireRep -> Bool
$c/= :: PktWithWireRep -> PktWithWireRep -> Bool
/= :: PktWithWireRep -> PktWithWireRep -> Bool
Eq, (forall x. PktWithWireRep -> Rep PktWithWireRep x)
-> (forall x. Rep PktWithWireRep x -> PktWithWireRep)
-> Generic PktWithWireRep
forall x. Rep PktWithWireRep x -> PktWithWireRep
forall x. PktWithWireRep -> Rep PktWithWireRep x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PktWithWireRep -> Rep PktWithWireRep x
from :: forall x. PktWithWireRep -> Rep PktWithWireRep x
$cto :: forall x. Rep PktWithWireRep x -> PktWithWireRep
to :: forall x. Rep PktWithWireRep x -> PktWithWireRep
Generic, Int -> PktWithWireRep -> ShowS
[PktWithWireRep] -> ShowS
PktWithWireRep -> String
(Int -> PktWithWireRep -> ShowS)
-> (PktWithWireRep -> String)
-> ([PktWithWireRep] -> ShowS)
-> Show PktWithWireRep
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PktWithWireRep -> ShowS
showsPrec :: Int -> PktWithWireRep -> ShowS
$cshow :: PktWithWireRep -> String
show :: PktWithWireRep -> String
$cshowList :: [PktWithWireRep] -> ShowS
showList :: [PktWithWireRep] -> ShowS
Show, Typeable)
instance Hashable Pkt
instance Ord Pkt where
compare :: Pkt -> Pkt -> Ordering
compare Pkt
p1 Pkt
p2 = (Pkt -> Word8) -> Pkt -> Pkt -> Ordering
forall a b. Ord a => (b -> a) -> b -> b -> Ordering
comparing Pkt -> Word8
pktTag Pkt
p1 Pkt
p2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<> Pkt -> Pkt -> Ordering
compareFields Pkt
p1 Pkt
p2
where
compareFields :: Pkt -> Pkt -> Ordering
compareFields (PKESKPkt PKESKPayload
pkesk1) (PKESKPkt PKESKPayload
pkesk2) = PKESKPayload -> PKESKPayload -> Ordering
forall a. Ord a => a -> a -> Ordering
compare PKESKPayload
pkesk1 PKESKPayload
pkesk2
compareFields (SignaturePkt SignaturePayload
sp1) (SignaturePkt SignaturePayload
sp2) = SignaturePayload -> SignaturePayload -> Ordering
forall a. Ord a => a -> a -> Ordering
compare SignaturePayload
sp1 SignaturePayload
sp2
compareFields (SKESKPkt SKESKPayload
skesk1) (SKESKPkt SKESKPayload
skesk2) = SKESKPayload -> SKESKPayload -> Ordering
forall a. Ord a => a -> a -> Ordering
compare SKESKPayload
skesk1 SKESKPayload
skesk2
compareFields (OnePassSignaturePkt OnePassSignaturePayload
ops1) (OnePassSignaturePkt OnePassSignaturePayload
ops2) = OnePassSignaturePayload -> OnePassSignaturePayload -> Ordering
forall a. Ord a => a -> a -> Ordering
compare OnePassSignaturePayload
ops1 OnePassSignaturePayload
ops2
compareFields (SecretKeyPkt SomePKPayload
pkp1 SKAddendum
ska1) (SecretKeyPkt SomePKPayload
pkp2 SKAddendum
ska2) =
SomePKPayload -> SomePKPayload -> Ordering
forall a. Ord a => a -> a -> Ordering
compare SomePKPayload
pkp1 SomePKPayload
pkp2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<> SKAddendum -> SKAddendum -> Ordering
forall a. Ord a => a -> a -> Ordering
compare SKAddendum
ska1 SKAddendum
ska2
compareFields (PublicKeyPkt SomePKPayload
pkp1) (PublicKeyPkt SomePKPayload
pkp2) = SomePKPayload -> SomePKPayload -> Ordering
forall a. Ord a => a -> a -> Ordering
compare SomePKPayload
pkp1 SomePKPayload
pkp2
compareFields (SecretSubkeyPkt SomePKPayload
pkp1 SKAddendum
ska1) (SecretSubkeyPkt SomePKPayload
pkp2 SKAddendum
ska2) =
SomePKPayload -> SomePKPayload -> Ordering
forall a. Ord a => a -> a -> Ordering
compare SomePKPayload
pkp1 SomePKPayload
pkp2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<> SKAddendum -> SKAddendum -> Ordering
forall a. Ord a => a -> a -> Ordering
compare SKAddendum
ska1 SKAddendum
ska2
compareFields (CompressedDataPkt CompressionAlgorithm
ca1 ByteString
cdp1) (CompressedDataPkt CompressionAlgorithm
ca2 ByteString
cdp2) =
CompressionAlgorithm -> CompressionAlgorithm -> Ordering
forall a. Ord a => a -> a -> Ordering
compare CompressionAlgorithm
ca1 CompressionAlgorithm
ca2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<> ByteString -> ByteString -> Ordering
forall a. Ord a => a -> a -> Ordering
compare ByteString
cdp1 ByteString
cdp2
compareFields (SymEncDataPkt ByteString
bs1) (SymEncDataPkt ByteString
bs2) = ByteString -> ByteString -> Ordering
forall a. Ord a => a -> a -> Ordering
compare ByteString
bs1 ByteString
bs2
compareFields (MarkerPkt ByteString
bs1) (MarkerPkt ByteString
bs2) = ByteString -> ByteString -> Ordering
forall a. Ord a => a -> a -> Ordering
compare ByteString
bs1 ByteString
bs2
compareFields (LiteralDataPkt DataType
dt1 ByteString
fn1 ThirtyTwoBitTimeStamp
ts1 ByteString
bs1) (LiteralDataPkt DataType
dt2 ByteString
fn2 ThirtyTwoBitTimeStamp
ts2 ByteString
bs2) =
DataType -> DataType -> Ordering
forall a. Ord a => a -> a -> Ordering
compare DataType
dt1 DataType
dt2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<> ByteString -> ByteString -> Ordering
forall a. Ord a => a -> a -> Ordering
compare ByteString
fn1 ByteString
fn2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<> ThirtyTwoBitTimeStamp -> ThirtyTwoBitTimeStamp -> Ordering
forall a. Ord a => a -> a -> Ordering
compare ThirtyTwoBitTimeStamp
ts1 ThirtyTwoBitTimeStamp
ts2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<> ByteString -> ByteString -> Ordering
forall a. Ord a => a -> a -> Ordering
compare ByteString
bs1 ByteString
bs2
compareFields (TrustPkt ByteString
bs1) (TrustPkt ByteString
bs2) = ByteString -> ByteString -> Ordering
forall a. Ord a => a -> a -> Ordering
compare ByteString
bs1 ByteString
bs2
compareFields (UserIdPkt Text
u1) (UserIdPkt Text
u2) = Text -> Text -> Ordering
forall a. Ord a => a -> a -> Ordering
compare Text
u1 Text
u2
compareFields (PublicSubkeyPkt SomePKPayload
pkp1) (PublicSubkeyPkt SomePKPayload
pkp2) = SomePKPayload -> SomePKPayload -> Ordering
forall a. Ord a => a -> a -> Ordering
compare SomePKPayload
pkp1 SomePKPayload
pkp2
compareFields (UserAttributePkt [UserAttrSubPacket]
us1) (UserAttributePkt [UserAttrSubPacket]
us2) = [UserAttrSubPacket] -> [UserAttrSubPacket] -> Ordering
forall a. Ord a => a -> a -> Ordering
compare [UserAttrSubPacket]
us1 [UserAttrSubPacket]
us2
compareFields (SymEncIntegrityProtectedDataPkt SEIPDPayload
seipd1) (SymEncIntegrityProtectedDataPkt SEIPDPayload
seipd2) = SEIPDPayload -> SEIPDPayload -> Ordering
forall a. Ord a => a -> a -> Ordering
compare SEIPDPayload
seipd1 SEIPDPayload
seipd2
compareFields (ModificationDetectionCodePkt ByteString
bs1) (ModificationDetectionCodePkt ByteString
bs2) = ByteString -> ByteString -> Ordering
forall a. Ord a => a -> a -> Ordering
compare ByteString
bs1 ByteString
bs2
compareFields (OtherPacketPkt Word8
t1 ByteString
bs1) (OtherPacketPkt Word8
t2 ByteString
bs2) = Word8 -> Word8 -> Ordering
forall a. Ord a => a -> a -> Ordering
compare Word8
t1 Word8
t2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<> ByteString -> ByteString -> Ordering
forall a. Ord a => a -> a -> Ordering
compare ByteString
bs1 ByteString
bs2
compareFields (BrokenPacketPkt String
s1 Word8
t1 ByteString
bs1) (BrokenPacketPkt String
s2 Word8
t2 ByteString
bs2) =
String -> String -> Ordering
forall a. Ord a => a -> a -> Ordering
compare String
s1 String
s2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<> Word8 -> Word8 -> Ordering
forall a. Ord a => a -> a -> Ordering
compare Word8
t1 Word8
t2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<> ByteString -> ByteString -> Ordering
forall a. Ord a => a -> a -> Ordering
compare ByteString
bs1 ByteString
bs2
compareFields Pkt
_ Pkt
_ = Ordering
EQ
instance Ord PktWithWireRep where
compare :: PktWithWireRep -> PktWithWireRep -> Ordering
compare PktWithWireRep
p1 PktWithWireRep
p2 =
(PktWithWireRep -> Pkt)
-> PktWithWireRep -> PktWithWireRep -> Ordering
forall a b. Ord a => (b -> a) -> b -> b -> Ordering
comparing PktWithWireRep -> Pkt
_pktValue PktWithWireRep
p1 PktWithWireRep
p2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<>
(PktWithWireRep -> ByteString)
-> PktWithWireRep -> PktWithWireRep -> Ordering
forall a b. Ord a => (b -> a) -> b -> b -> Ordering
comparing PktWithWireRep -> ByteString
_pktRaw PktWithWireRep
p1 PktWithWireRep
p2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<>
(PktWithWireRep -> WireRepRef)
-> PktWithWireRep -> PktWithWireRep -> Ordering
forall a b. Ord a => (b -> a) -> b -> b -> Ordering
comparing PktWithWireRep -> WireRepRef
_pktWireRepRef PktWithWireRep
p1 PktWithWireRep
p2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<>
(PktWithWireRep -> ByteRange)
-> PktWithWireRep -> PktWithWireRep -> Ordering
forall a b. Ord a => (b -> a) -> b -> b -> Ordering
comparing PktWithWireRep -> ByteRange
_pktRange PktWithWireRep
p1 PktWithWireRep
p2 Ordering -> Ordering -> Ordering
forall a. Semigroup a => a -> a -> a
<>
(PktWithWireRep -> Int)
-> PktWithWireRep -> PktWithWireRep -> Ordering
forall a b. Ord a => (b -> a) -> b -> b -> Ordering
comparing PktWithWireRep -> Int
_pktIndex PktWithWireRep
p1 PktWithWireRep
p2
wireRepOfPkt :: PktWithWireRep -> WireRepRef
wireRepOfPkt :: PktWithWireRep -> WireRepRef
wireRepOfPkt = PktWithWireRep -> WireRepRef
_pktWireRepRef
packetsFromWireRep :: WireRepRef -> [PktWithWireRep] -> [PktWithWireRep]
packetsFromWireRep :: WireRepRef -> [PktWithWireRep] -> [PktWithWireRep]
packetsFromWireRep WireRepRef
src = (PktWithWireRep -> Bool) -> [PktWithWireRep] -> [PktWithWireRep]
forall a. (a -> Bool) -> [a] -> [a]
filter ((WireRepRef -> WireRepRef -> Bool
forall a. Eq a => a -> a -> Bool
== WireRepRef
src) (WireRepRef -> Bool)
-> (PktWithWireRep -> WireRepRef) -> PktWithWireRep -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PktWithWireRep -> WireRepRef
wireRepOfPkt)
instance Pretty Pkt where
pretty :: forall ann. Pkt -> Doc ann
pretty (PKESKPkt (PKESKPayloadV3Packet (PKESKPayloadV3 Word8
pv EightOctetKeyId
eoki PubKeyAlgorithm
pka NonEmpty MPI
mpis))) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"PKESK v" Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Word8 -> Doc ann
forall ann. Word8 -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Word8
pv Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Char -> Doc ann
forall ann. Char -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Char
':' Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
EightOctetKeyId -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. EightOctetKeyId -> Doc ann
pretty EightOctetKeyId
eoki Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PubKeyAlgorithm -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. PubKeyAlgorithm -> Doc ann
pretty PubKeyAlgorithm
pka Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> ([MPI] -> Doc ann
forall ann. [MPI] -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty ([MPI] -> Doc ann)
-> (NonEmpty MPI -> [MPI]) -> NonEmpty MPI -> Doc ann
forall b c a. (b -> c) -> (a -> b) -> a -> c
. NonEmpty MPI -> [MPI]
forall a. NonEmpty a -> [a]
NE.toList) NonEmpty MPI
mpis
pretty (PKESKPkt (PKESKPayloadV6Packet (PKESKPayloadV6 ByteString
recipientKeyIdentifier PubKeyAlgorithm
pka ByteString
esk))) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"PKESK v6:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"recipient key identifier" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
recipientKeyIdentifier) Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
PubKeyAlgorithm -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. PubKeyAlgorithm -> Doc ann
pretty PubKeyAlgorithm
pka Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
esk)
pretty (SignaturePkt SignaturePayload
sp) = SignaturePayload -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. SignaturePayload -> Doc ann
pretty SignaturePayload
sp
pretty (SKESKPkt (SKESKPayloadV4Packet (SKESKPayloadV4 SymmetricAlgorithm
sa S2K
s2k Maybe ByteString
mbs))) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"SKESK v4:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
SymmetricAlgorithm -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. SymmetricAlgorithm -> Doc ann
pretty SymmetricAlgorithm
sa Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> S2K -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. S2K -> Doc ann
pretty S2K
s2k Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Maybe String -> Doc ann
forall ann. Maybe String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty ((ByteString -> String) -> Maybe ByteString -> Maybe String
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ByteString -> String
bsToHexUpper Maybe ByteString
mbs)
pretty (SKESKPkt (SKESKPayloadV6Packet (SKESKPayloadV6 SymmetricAlgorithm
sa AEADAlgorithm
aa S2K
s2k ByteString
iv ByteString
esk ByteString
tag))) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"SKESK v6:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
SymmetricAlgorithm -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. SymmetricAlgorithm -> Doc ann
pretty SymmetricAlgorithm
sa Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
AEADAlgorithm -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. AEADAlgorithm -> Doc ann
pretty AEADAlgorithm
aa Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
S2K -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. S2K -> Doc ann
pretty S2K
s2k Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
iv) Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
esk) Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
tag)
pretty (OnePassSignaturePkt (OPSPayloadV3Packet (OPSPayloadV3 Word8
pv SigType
st HashAlgorithm
ha PubKeyAlgorithm
pka EightOctetKeyId
eoki Bool
nestedflag))) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"one-pass signature v" Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Word8 -> Doc ann
forall ann. Word8 -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Word8
pv Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Char -> Doc ann
forall ann. Char -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Char
':' Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
SigType -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. SigType -> Doc ann
pretty SigType
st Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> HashAlgorithm -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. HashAlgorithm -> Doc ann
pretty HashAlgorithm
ha Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> PubKeyAlgorithm -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. PubKeyAlgorithm -> Doc ann
pretty PubKeyAlgorithm
pka Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> EightOctetKeyId -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. EightOctetKeyId -> Doc ann
pretty EightOctetKeyId
eoki Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Bool -> Doc ann
forall ann. Bool -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Bool
nestedflag
pretty (OnePassSignaturePkt (OPSPayloadV6Packet (OPSPayloadV6 SigType
st HashAlgorithm
ha PubKeyAlgorithm
pka SignatureSalt
salt ByteString
signerFingerprint Bool
nestedflag))) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"one-pass signature v6:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
SigType -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. SigType -> Doc ann
pretty SigType
st Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
HashAlgorithm -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. HashAlgorithm -> Doc ann
pretty HashAlgorithm
ha Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
PubKeyAlgorithm -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. PubKeyAlgorithm -> Doc ann
pretty PubKeyAlgorithm
pka Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> SignatureSalt -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. SignatureSalt -> Doc ann
pretty SignatureSalt
salt Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
signerFingerprint) Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
Bool -> Doc ann
forall ann. Bool -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Bool
nestedflag
pretty (SecretKeyPkt SomePKPayload
pkp SKAddendum
ska) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"secret key:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> SomePKPayload -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. SomePKPayload -> Doc ann
pretty SomePKPayload
pkp Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> SKAddendum -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. SKAddendum -> Doc ann
pretty SKAddendum
ska
pretty (PublicKeyPkt SomePKPayload
pkp) = String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"public key:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> SomePKPayload -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. SomePKPayload -> Doc ann
pretty SomePKPayload
pkp
pretty (SecretSubkeyPkt SomePKPayload
pkp SKAddendum
ska) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"secret subkey:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> SomePKPayload -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. SomePKPayload -> Doc ann
pretty SomePKPayload
pkp Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> SKAddendum -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. SKAddendum -> Doc ann
pretty SKAddendum
ska
pretty (CompressedDataPkt CompressionAlgorithm
ca ByteString
cdp) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"compressed-data:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> CompressionAlgorithm -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. CompressionAlgorithm -> Doc ann
pretty CompressionAlgorithm
ca Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> ByteString -> Doc ann
forall ann. ByteString -> Doc ann
prettyLBS ByteString
cdp
pretty (SymEncDataPkt ByteString
bs) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"symmetrically-encrypted-data:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
bs)
pretty (MarkerPkt ByteString
bs) = String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"marker:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
bs)
pretty (LiteralDataPkt DataType
dt ByteString
fn ThirtyTwoBitTimeStamp
ts ByteString
bs) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"literal-data" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
DataType -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. DataType -> Doc ann
pretty DataType
dt Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> ByteString -> Doc ann
forall ann. ByteString -> Doc ann
prettyLBS ByteString
fn Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> ThirtyTwoBitTimeStamp -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. ThirtyTwoBitTimeStamp -> Doc ann
pretty ThirtyTwoBitTimeStamp
ts Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
bs)
pretty (TrustPkt ByteString
bs) = String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"trust:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> [Word8] -> Doc ann
forall ann. [Word8] -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> [Word8]
BL.unpack ByteString
bs)
pretty (UserIdPkt Text
u) = String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"user-ID:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Text -> Doc ann
forall ann. Text -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Text
u
pretty (PublicSubkeyPkt SomePKPayload
pkp) = String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"public subkey:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> SomePKPayload -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. SomePKPayload -> Doc ann
pretty SomePKPayload
pkp
pretty (UserAttributePkt [UserAttrSubPacket]
us) = String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"user-attribute:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> [UserAttrSubPacket] -> Doc ann
forall ann. [UserAttrSubPacket] -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty [UserAttrSubPacket]
us
pretty (SymEncIntegrityProtectedDataPkt (SEIPD1 Word8
pv ByteString
bs)) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"symmetrically-encrypted-integrity-protected-data v" Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Word8 -> Doc ann
forall ann. Word8 -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Word8
pv Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<>
Char -> Doc ann
forall ann. Char -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Char
':' Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
bs)
pretty (SymEncIntegrityProtectedDataPkt (SEIPD2 SymmetricAlgorithm
sa AEADAlgorithm
aa Word8
chunkSize Salt
salt ByteString
bs)) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"symmetrically-encrypted-integrity-protected-data v2:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
SymmetricAlgorithm -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. SymmetricAlgorithm -> Doc ann
pretty SymmetricAlgorithm
sa Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> AEADAlgorithm -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. AEADAlgorithm -> Doc ann
pretty AEADAlgorithm
aa Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Word8 -> Doc ann
forall ann. Word8 -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Word8
chunkSize Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> Salt -> Doc ann
forall a ann. Pretty a => a -> Doc ann
forall ann. Salt -> Doc ann
pretty Salt
salt Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
bs)
pretty (ModificationDetectionCodePkt ByteString
bs) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"MDC:" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
bs)
pretty (OtherPacketPkt Word8
t ByteString
bs) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"unknown packet type" Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
Word8 -> Doc ann
forall ann. Word8 -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Word8
t Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Char -> Doc ann
forall ann. Char -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Char
':' Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
bs)
pretty (BrokenPacketPkt String
s Word8
t ByteString
bs) =
String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
"BROKEN packet (" Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty String
s Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Char -> Doc ann
forall ann. Char -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Char
')' Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+>
Word8 -> Doc ann
forall ann. Word8 -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Word8
t Doc ann -> Doc ann -> Doc ann
forall a. Semigroup a => a -> a -> a
<> Char -> Doc ann
forall ann. Char -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty Char
':' Doc ann -> Doc ann -> Doc ann
forall ann. Doc ann -> Doc ann -> Doc ann
<+> String -> Doc ann
forall ann. String -> Doc ann
forall a ann. Pretty a => a -> Doc ann
pretty (ByteString -> String
bsToHexUpper ByteString
bs)
instance A.ToJSON Pkt where
toJSON :: Pkt -> Value
toJSON (PKESKPkt (PKESKPayloadV3Packet (PKESKPayloadV3 Word8
pv EightOctetKeyId
eoki PubKeyAlgorithm
pka NonEmpty MPI
mpis))) =
[Pair] -> Value
object
[ String -> Key
key String
"pkesk" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object
[ String -> Key
key String
"version" Key -> Word8 -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word8
pv
, String -> Key
key String
"keyid" Key -> EightOctetKeyId -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= EightOctetKeyId
eoki
, String -> Key
key String
"pkalgo" Key -> PubKeyAlgorithm -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= PubKeyAlgorithm
pka
, String -> Key
key String
"mpis" Key -> [MPI] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NonEmpty MPI -> [MPI]
forall a. NonEmpty a -> [a]
NE.toList NonEmpty MPI
mpis
]
]
toJSON (PKESKPkt (PKESKPayloadV6Packet (PKESKPayloadV6 ByteString
recipientKeyIdentifier PubKeyAlgorithm
pka ByteString
esk))) =
[Pair] -> Value
object
[ String -> Key
key String
"pkesk_v6" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object
[ String -> Key
key String
"recipient_key_identifier" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
recipientKeyIdentifier
, String -> Key
key String
"pkalgo" Key -> PubKeyAlgorithm -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= PubKeyAlgorithm
pka
, String -> Key
key String
"esk" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
esk
]
]
toJSON (SignaturePkt SignaturePayload
sp) = [Pair] -> Value
object [String -> Key
key String
"signature" Key -> SignaturePayload -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SignaturePayload
sp]
toJSON (SKESKPkt (SKESKPayloadV4Packet (SKESKPayloadV4 SymmetricAlgorithm
sa S2K
s2k Maybe ByteString
mbs))) =
[Pair] -> Value
object
[ String -> Key
key String
"skesk" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object
[ String -> Key
key String
"version" Key -> Word8 -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (Word8
4 :: PacketVersion)
, String -> Key
key String
"symalgo" Key -> SymmetricAlgorithm -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SymmetricAlgorithm
sa
, String -> Key
key String
"s2k" Key -> S2K -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= S2K
s2k
, String -> Key
key String
"data" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Word8] -> (ByteString -> [Word8]) -> Maybe ByteString -> [Word8]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [Word8]
forall a. Monoid a => a
mempty ByteString -> [Word8]
BL.unpack Maybe ByteString
mbs
]
]
toJSON (SKESKPkt (SKESKPayloadV6Packet (SKESKPayloadV6 SymmetricAlgorithm
sa AEADAlgorithm
aa S2K
s2k ByteString
iv ByteString
esk ByteString
tag))) =
[Pair] -> Value
object
[ String -> Key
key String
"skesk-v6" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object
[ String -> Key
key String
"version" Key -> Word8 -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (Word8
6 :: PacketVersion)
, String -> Key
key String
"symalgo" Key -> SymmetricAlgorithm -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SymmetricAlgorithm
sa
, String -> Key
key String
"aead" Key -> AEADAlgorithm -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= AEADAlgorithm
aa
, String -> Key
key String
"s2k" Key -> S2K -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= S2K
s2k
, String -> Key
key String
"iv" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
iv
, String -> Key
key String
"esk" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
esk
, String -> Key
key String
"tag" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
tag
]
]
toJSON (OnePassSignaturePkt (OPSPayloadV3Packet (OPSPayloadV3 Word8
pv SigType
st HashAlgorithm
ha PubKeyAlgorithm
pka EightOctetKeyId
eoki Bool
nestedflag))) =
[Pair] -> Value
object
[ String -> Key
key String
"onepasssignature" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object
[ String -> Key
key String
"version" Key -> Word8 -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word8
pv
, String -> Key
key String
"sigtype" Key -> SigType -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SigType
st
, String -> Key
key String
"hashalgo" Key -> HashAlgorithm -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= HashAlgorithm
ha
, String -> Key
key String
"pkalgo" Key -> PubKeyAlgorithm -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= PubKeyAlgorithm
pka
, String -> Key
key String
"keyid" Key -> EightOctetKeyId -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= EightOctetKeyId
eoki
, String -> Key
key String
"nested" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Bool
nestedflag
]
]
toJSON (OnePassSignaturePkt (OPSPayloadV6Packet (OPSPayloadV6 SigType
st HashAlgorithm
ha PubKeyAlgorithm
pka SignatureSalt
salt ByteString
signerFingerprint Bool
nestedflag))) =
[Pair] -> Value
object
[ String -> Key
key String
"onepasssignature_v6" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object
[ String -> Key
key String
"version" Key -> Word8 -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (Word8
6 :: Word8)
, String -> Key
key String
"sigtype" Key -> SigType -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SigType
st
, String -> Key
key String
"hashalgo" Key -> HashAlgorithm -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= HashAlgorithm
ha
, String -> Key
key String
"pkalgo" Key -> PubKeyAlgorithm -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= PubKeyAlgorithm
pka
, String -> Key
key String
"salt" Key -> SignatureSalt -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SignatureSalt
salt
, String -> Key
key String
"fingerprint" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
signerFingerprint
, String -> Key
key String
"nested" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Bool
nestedflag
]
]
toJSON (SecretKeyPkt SomePKPayload
pkp SKAddendum
ska) =
[Pair] -> Value
object
[ String -> Key
key String
"secretkey" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object [String -> Key
key String
"public" Key -> SomePKPayload -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SomePKPayload
pkp, String -> Key
key String
"secret" Key -> SKAddendum -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SKAddendum
ska]
]
toJSON (PublicKeyPkt SomePKPayload
pkp) = [Pair] -> Value
object [String -> Key
key String
"publickey" Key -> SomePKPayload -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SomePKPayload
pkp]
toJSON (SecretSubkeyPkt SomePKPayload
pkp SKAddendum
ska) =
[Pair] -> Value
object
[ String -> Key
key String
"secretsubkey" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object [String -> Key
key String
"public" Key -> SomePKPayload -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SomePKPayload
pkp, String -> Key
key String
"secret" Key -> SKAddendum -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SKAddendum
ska]
]
toJSON (CompressedDataPkt CompressionAlgorithm
ca ByteString
cdp) =
[Pair] -> Value
object
[ String -> Key
key String
"compresseddata" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object [String -> Key
key String
"compressionalgo" Key -> CompressionAlgorithm -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= CompressionAlgorithm
ca, String -> Key
key String
"data" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
cdp]
]
toJSON (SymEncDataPkt ByteString
bs) = [Pair] -> Value
object [String -> Key
key String
"symencdata" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
bs]
toJSON (MarkerPkt ByteString
bs) = [Pair] -> Value
object [String -> Key
key String
"marker" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
bs]
toJSON (LiteralDataPkt DataType
dt ByteString
fn ThirtyTwoBitTimeStamp
ts ByteString
bs) =
[Pair] -> Value
object
[ String -> Key
key String
"literaldata" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object
[ String -> Key
key String
"dt" Key -> DataType -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DataType
dt
, String -> Key
key String
"filename" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
fn
, String -> Key
key String
"ts" Key -> ThirtyTwoBitTimeStamp -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ThirtyTwoBitTimeStamp
ts
, String -> Key
key String
"data" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
bs
]
]
toJSON (TrustPkt ByteString
bs) = [Pair] -> Value
object [String -> Key
key String
"trust" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
bs]
toJSON (UserIdPkt Text
u) = [Pair] -> Value
object [String -> Key
key String
"userid" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text
u]
toJSON (PublicSubkeyPkt SomePKPayload
pkp) = [Pair] -> Value
object [String -> Key
key String
"publicsubkkey" Key -> SomePKPayload -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SomePKPayload
pkp]
toJSON (UserAttributePkt [UserAttrSubPacket]
us) = [Pair] -> Value
object [String -> Key
key String
"userattribute" Key -> [UserAttrSubPacket] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [UserAttrSubPacket]
us]
toJSON (SymEncIntegrityProtectedDataPkt (SEIPD1 Word8
pv ByteString
bs)) =
[Pair] -> Value
object
[ String -> Key
key String
"symencipd" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object [String -> Key
key String
"version" Key -> Word8 -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word8
pv, String -> Key
key String
"data" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
bs]
]
toJSON (SymEncIntegrityProtectedDataPkt (SEIPD2 SymmetricAlgorithm
sa AEADAlgorithm
aa Word8
chunkSize Salt
salt ByteString
bs)) =
[Pair] -> Value
object
[ String -> Key
key String
"symencipd_v2" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object
[ String -> Key
key String
"symalgo" Key -> SymmetricAlgorithm -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= SymmetricAlgorithm
sa
, String -> Key
key String
"aeadalgo" Key -> AEADAlgorithm -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= AEADAlgorithm
aa
, String -> Key
key String
"chunksize" Key -> Word8 -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word8
chunkSize
, String -> Key
key String
"salt" Key -> Salt -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Salt
salt
, String -> Key
key String
"data" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
bs
]
]
toJSON (ModificationDetectionCodePkt ByteString
bs) =
[Pair] -> Value
object [String -> Key
key String
"mdc" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
bs]
toJSON (OtherPacketPkt Word8
t ByteString
bs) =
[Pair] -> Value
object
[ String -> Key
key String
"otherpacket" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object [String -> Key
key String
"tag" Key -> Word8 -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word8
t, String -> Key
key String
"data" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
bs]
]
toJSON (BrokenPacketPkt String
s Word8
t ByteString
bs) =
[Pair] -> Value
object
[ String -> Key
key String
"brokenpacket" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=
[Pair] -> Value
object
[ String -> Key
key String
"error" Key -> String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
s
, String -> Key
key String
"tag" Key -> Word8 -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word8
t
, String -> Key
key String
"data" Key -> [Word8] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ByteString -> [Word8]
BL.unpack ByteString
bs
]
]
pktTag :: Pkt -> Word8
pktTag :: Pkt -> Word8
pktTag PKESKPkt {} = Word8
1
pktTag (SignaturePkt SignaturePayload
_) = Word8
2
pktTag SKESKPkt {} = Word8
3
pktTag OnePassSignaturePkt {} = Word8
4
pktTag SecretKeyPkt {} = Word8
5
pktTag (PublicKeyPkt SomePKPayload
_) = Word8
6
pktTag SecretSubkeyPkt {} = Word8
7
pktTag CompressedDataPkt {} = Word8
8
pktTag (SymEncDataPkt ByteString
_) = Word8
9
pktTag (MarkerPkt ByteString
_) = Word8
10
pktTag LiteralDataPkt {} = Word8
11
pktTag (TrustPkt ByteString
_) = Word8
12
pktTag (UserIdPkt Text
_) = Word8
13
pktTag (PublicSubkeyPkt SomePKPayload
_) = Word8
14
pktTag (UserAttributePkt [UserAttrSubPacket]
_) = Word8
17
pktTag SymEncIntegrityProtectedDataPkt {} = Word8
18
pktTag (ModificationDetectionCodePkt ByteString
_) = Word8
19
pktTag (OtherPacketPkt Word8
t ByteString
_) = Word8
t
pktTag (BrokenPacketPkt String
_ Word8
t ByteString
_) = Word8
t
renderKeyPktCoercionError :: KeyPktCoercionError -> String
renderKeyPktCoercionError :: KeyPktCoercionError -> String
renderKeyPktCoercionError (NotAKeyPacket Pkt
pkt) =
String
"Expected a key packet, got tag " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Word8 -> String
forall a. Show a => a -> String
show (Pkt -> Word8
pktTag Pkt
pkt)
renderKeyPktCoercionError (ExpectedPublicKeyPacket Pkt
pkt) =
String
"Expected a public key packet, got tag " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Word8 -> String
forall a. Show a => a -> String
show (Pkt -> Word8
pktTag Pkt
pkt)
renderKeyPktCoercionError (ExpectedSecretKeyPacket Pkt
pkt) =
String
"Expected a secret key packet, got tag " String -> ShowS
forall a. [a] -> [a] -> [a]
++ Word8 -> String
forall a. Show a => a -> String
show (Pkt -> Word8
pktTag Pkt
pkt)
keyPktRole :: KeyPkt k -> KeyPktRole
keyPktRole :: forall (k :: KeyPktKind). KeyPkt k -> KeyPktRole
keyPktRole KeyPktPublicPrimary {} = KeyPktRole
KeyPktPrimary
keyPktRole KeyPktPublicSubkey {} = KeyPktRole
KeyPktSubkey
keyPktRole KeyPktSecretPrimary {} = KeyPktRole
KeyPktPrimary
keyPktRole KeyPktSecretSubkey {} = KeyPktRole
KeyPktSubkey
keyPktPKPayload :: KeyPkt k -> SomePKPayload
keyPktPKPayload :: forall (k :: KeyPktKind). KeyPkt k -> SomePKPayload
keyPktPKPayload (KeyPktPublicPrimary SomePKPayload
pkp) = SomePKPayload
pkp
keyPktPKPayload (KeyPktPublicSubkey SomePKPayload
pkp) = SomePKPayload
pkp
keyPktPKPayload (KeyPktSecretPrimary SomePKPayload
pkp SKAddendum
_) = SomePKPayload
pkp
keyPktPKPayload (KeyPktSecretSubkey SomePKPayload
pkp SKAddendum
_) = SomePKPayload
pkp
keyPktMaybeSKAddendum :: KeyPkt k -> Maybe SKAddendum
keyPktMaybeSKAddendum :: forall (k :: KeyPktKind). KeyPkt k -> Maybe SKAddendum
keyPktMaybeSKAddendum KeyPktPublicPrimary {} = Maybe SKAddendum
forall a. Maybe a
Nothing
keyPktMaybeSKAddendum KeyPktPublicSubkey {} = Maybe SKAddendum
forall a. Maybe a
Nothing
keyPktMaybeSKAddendum (KeyPktSecretPrimary SomePKPayload
_ SKAddendum
ska) = SKAddendum -> Maybe SKAddendum
forall a. a -> Maybe a
Just SKAddendum
ska
keyPktMaybeSKAddendum (KeyPktSecretSubkey SomePKPayload
_ SKAddendum
ska) = SKAddendum -> Maybe SKAddendum
forall a. a -> Maybe a
Just SKAddendum
ska
keyPktTKKey :: KeyPkt k -> (SomePKPayload, Maybe SKAddendum)
keyPktTKKey :: forall (k :: KeyPktKind).
KeyPkt k -> (SomePKPayload, Maybe SKAddendum)
keyPktTKKey KeyPkt k
keyPkt = (KeyPkt k -> SomePKPayload
forall (k :: KeyPktKind). KeyPkt k -> SomePKPayload
keyPktPKPayload KeyPkt k
keyPkt, KeyPkt k -> Maybe SKAddendum
forall (k :: KeyPktKind). KeyPkt k -> Maybe SKAddendum
keyPktMaybeSKAddendum KeyPkt k
keyPkt)
secretKeyPktSKAddendum :: KeyPkt 'SecretPkt -> SKAddendum
secretKeyPktSKAddendum :: KeyPkt 'SecretPkt -> SKAddendum
secretKeyPktSKAddendum (KeyPktSecretPrimary SomePKPayload
_ SKAddendum
ska) = SKAddendum
ska
secretKeyPktSKAddendum (KeyPktSecretSubkey SomePKPayload
_ SKAddendum
ska) = SKAddendum
ska
mkPrimaryKeyPkt :: SomePKPayload -> Maybe SKAddendum -> SomeKeyPkt
mkPrimaryKeyPkt :: SomePKPayload -> Maybe SKAddendum -> SomeKeyPkt
mkPrimaryKeyPkt SomePKPayload
pkp Maybe SKAddendum
Nothing = KeyPkt 'PublicPkt -> SomeKeyPkt
forall (k :: KeyPktKind). KeyPkt k -> SomeKeyPkt
SomeKeyPkt (SomePKPayload -> KeyPkt 'PublicPkt
KeyPktPublicPrimary SomePKPayload
pkp)
mkPrimaryKeyPkt SomePKPayload
pkp (Just SKAddendum
ska) = KeyPkt 'SecretPkt -> SomeKeyPkt
forall (k :: KeyPktKind). KeyPkt k -> SomeKeyPkt
SomeKeyPkt (SomePKPayload -> SKAddendum -> KeyPkt 'SecretPkt
KeyPktSecretPrimary SomePKPayload
pkp SKAddendum
ska)
mkSubkeyKeyPkt :: SomePKPayload -> Maybe SKAddendum -> SomeKeyPkt
mkSubkeyKeyPkt :: SomePKPayload -> Maybe SKAddendum -> SomeKeyPkt
mkSubkeyKeyPkt SomePKPayload
pkp Maybe SKAddendum
Nothing = KeyPkt 'PublicPkt -> SomeKeyPkt
forall (k :: KeyPktKind). KeyPkt k -> SomeKeyPkt
SomeKeyPkt (SomePKPayload -> KeyPkt 'PublicPkt
KeyPktPublicSubkey SomePKPayload
pkp)
mkSubkeyKeyPkt SomePKPayload
pkp (Just SKAddendum
ska) = KeyPkt 'SecretPkt -> SomeKeyPkt
forall (k :: KeyPktKind). KeyPkt k -> SomeKeyPkt
SomeKeyPkt (SomePKPayload -> SKAddendum -> KeyPkt 'SecretPkt
KeyPktSecretSubkey SomePKPayload
pkp SKAddendum
ska)
keyPktToPublicView :: KeyPkt 'SecretPkt -> KeyPkt 'PublicPkt
keyPktToPublicView :: KeyPkt 'SecretPkt -> KeyPkt 'PublicPkt
keyPktToPublicView (KeyPktSecretPrimary SomePKPayload
pkp SKAddendum
_) = SomePKPayload -> KeyPkt 'PublicPkt
KeyPktPublicPrimary SomePKPayload
pkp
keyPktToPublicView (KeyPktSecretSubkey SomePKPayload
pkp SKAddendum
_) = SomePKPayload -> KeyPkt 'PublicPkt
KeyPktPublicSubkey SomePKPayload
pkp
keyPktToPkt :: KeyPkt k -> Pkt
keyPktToPkt :: forall (k :: KeyPktKind). KeyPkt k -> Pkt
keyPktToPkt (KeyPktPublicPrimary SomePKPayload
pkp) = SomePKPayload -> Pkt
PublicKeyPkt SomePKPayload
pkp
keyPktToPkt (KeyPktPublicSubkey SomePKPayload
pkp) = SomePKPayload -> Pkt
PublicSubkeyPkt SomePKPayload
pkp
keyPktToPkt (KeyPktSecretPrimary SomePKPayload
pkp SKAddendum
ska) = SomePKPayload -> SKAddendum -> Pkt
SecretKeyPkt SomePKPayload
pkp SKAddendum
ska
keyPktToPkt (KeyPktSecretSubkey SomePKPayload
pkp SKAddendum
ska) = SomePKPayload -> SKAddendum -> Pkt
SecretSubkeyPkt SomePKPayload
pkp SKAddendum
ska
someKeyPktToPkt :: SomeKeyPkt -> Pkt
someKeyPktToPkt :: SomeKeyPkt -> Pkt
someKeyPktToPkt (SomeKeyPkt KeyPkt k
keyPkt) = KeyPkt k -> Pkt
forall (k :: KeyPktKind). KeyPkt k -> Pkt
keyPktToPkt KeyPkt k
keyPkt
pktToSomeKeyPktEither :: Pkt -> Either KeyPktCoercionError SomeKeyPkt
pktToSomeKeyPktEither :: Pkt -> Either KeyPktCoercionError SomeKeyPkt
pktToSomeKeyPktEither (PublicKeyPkt SomePKPayload
pkp) = SomeKeyPkt -> Either KeyPktCoercionError SomeKeyPkt
forall a b. b -> Either a b
Right (KeyPkt 'PublicPkt -> SomeKeyPkt
forall (k :: KeyPktKind). KeyPkt k -> SomeKeyPkt
SomeKeyPkt (SomePKPayload -> KeyPkt 'PublicPkt
KeyPktPublicPrimary SomePKPayload
pkp))
pktToSomeKeyPktEither (PublicSubkeyPkt SomePKPayload
pkp) = SomeKeyPkt -> Either KeyPktCoercionError SomeKeyPkt
forall a b. b -> Either a b
Right (KeyPkt 'PublicPkt -> SomeKeyPkt
forall (k :: KeyPktKind). KeyPkt k -> SomeKeyPkt
SomeKeyPkt (SomePKPayload -> KeyPkt 'PublicPkt
KeyPktPublicSubkey SomePKPayload
pkp))
pktToSomeKeyPktEither (SecretKeyPkt SomePKPayload
pkp SKAddendum
ska) = SomeKeyPkt -> Either KeyPktCoercionError SomeKeyPkt
forall a b. b -> Either a b
Right (KeyPkt 'SecretPkt -> SomeKeyPkt
forall (k :: KeyPktKind). KeyPkt k -> SomeKeyPkt
SomeKeyPkt (SomePKPayload -> SKAddendum -> KeyPkt 'SecretPkt
KeyPktSecretPrimary SomePKPayload
pkp SKAddendum
ska))
pktToSomeKeyPktEither (SecretSubkeyPkt SomePKPayload
pkp SKAddendum
ska) = SomeKeyPkt -> Either KeyPktCoercionError SomeKeyPkt
forall a b. b -> Either a b
Right (KeyPkt 'SecretPkt -> SomeKeyPkt
forall (k :: KeyPktKind). KeyPkt k -> SomeKeyPkt
SomeKeyPkt (SomePKPayload -> SKAddendum -> KeyPkt 'SecretPkt
KeyPktSecretSubkey SomePKPayload
pkp SKAddendum
ska))
pktToSomeKeyPktEither Pkt
pkt = KeyPktCoercionError -> Either KeyPktCoercionError SomeKeyPkt
forall a b. a -> Either a b
Left (Pkt -> KeyPktCoercionError
NotAKeyPacket Pkt
pkt)
pktToSomeKeyPkt :: Pkt -> Maybe SomeKeyPkt
pktToSomeKeyPkt :: Pkt -> Maybe SomeKeyPkt
pktToSomeKeyPkt = (KeyPktCoercionError -> Maybe SomeKeyPkt)
-> (SomeKeyPkt -> Maybe SomeKeyPkt)
-> Either KeyPktCoercionError SomeKeyPkt
-> Maybe SomeKeyPkt
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (Maybe SomeKeyPkt -> KeyPktCoercionError -> Maybe SomeKeyPkt
forall a b. a -> b -> a
const Maybe SomeKeyPkt
forall a. Maybe a
Nothing) SomeKeyPkt -> Maybe SomeKeyPkt
forall a. a -> Maybe a
Just (Either KeyPktCoercionError SomeKeyPkt -> Maybe SomeKeyPkt)
-> (Pkt -> Either KeyPktCoercionError SomeKeyPkt)
-> Pkt
-> Maybe SomeKeyPkt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Pkt -> Either KeyPktCoercionError SomeKeyPkt
pktToSomeKeyPktEither
pktToPublicKeyPktEither :: Pkt -> Either KeyPktCoercionError (KeyPkt 'PublicPkt)
pktToPublicKeyPktEither :: Pkt -> Either KeyPktCoercionError (KeyPkt 'PublicPkt)
pktToPublicKeyPktEither (PublicKeyPkt SomePKPayload
pkp) = KeyPkt 'PublicPkt -> Either KeyPktCoercionError (KeyPkt 'PublicPkt)
forall a b. b -> Either a b
Right (SomePKPayload -> KeyPkt 'PublicPkt
KeyPktPublicPrimary SomePKPayload
pkp)
pktToPublicKeyPktEither (PublicSubkeyPkt SomePKPayload
pkp) = KeyPkt 'PublicPkt -> Either KeyPktCoercionError (KeyPkt 'PublicPkt)
forall a b. b -> Either a b
Right (SomePKPayload -> KeyPkt 'PublicPkt
KeyPktPublicSubkey SomePKPayload
pkp)
pktToPublicKeyPktEither Pkt
pkt = KeyPktCoercionError
-> Either KeyPktCoercionError (KeyPkt 'PublicPkt)
forall a b. a -> Either a b
Left (Pkt -> KeyPktCoercionError
ExpectedPublicKeyPacket Pkt
pkt)
pktToPublicKeyPkt :: Pkt -> Maybe (KeyPkt 'PublicPkt)
pktToPublicKeyPkt :: Pkt -> Maybe (KeyPkt 'PublicPkt)
pktToPublicKeyPkt = (KeyPktCoercionError -> Maybe (KeyPkt 'PublicPkt))
-> (KeyPkt 'PublicPkt -> Maybe (KeyPkt 'PublicPkt))
-> Either KeyPktCoercionError (KeyPkt 'PublicPkt)
-> Maybe (KeyPkt 'PublicPkt)
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (Maybe (KeyPkt 'PublicPkt)
-> KeyPktCoercionError -> Maybe (KeyPkt 'PublicPkt)
forall a b. a -> b -> a
const Maybe (KeyPkt 'PublicPkt)
forall a. Maybe a
Nothing) KeyPkt 'PublicPkt -> Maybe (KeyPkt 'PublicPkt)
forall a. a -> Maybe a
Just (Either KeyPktCoercionError (KeyPkt 'PublicPkt)
-> Maybe (KeyPkt 'PublicPkt))
-> (Pkt -> Either KeyPktCoercionError (KeyPkt 'PublicPkt))
-> Pkt
-> Maybe (KeyPkt 'PublicPkt)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Pkt -> Either KeyPktCoercionError (KeyPkt 'PublicPkt)
pktToPublicKeyPktEither
pktToSecretKeyPktEither :: Pkt -> Either KeyPktCoercionError (KeyPkt 'SecretPkt)
pktToSecretKeyPktEither :: Pkt -> Either KeyPktCoercionError (KeyPkt 'SecretPkt)
pktToSecretKeyPktEither (SecretKeyPkt SomePKPayload
pkp SKAddendum
ska) = KeyPkt 'SecretPkt -> Either KeyPktCoercionError (KeyPkt 'SecretPkt)
forall a b. b -> Either a b
Right (SomePKPayload -> SKAddendum -> KeyPkt 'SecretPkt
KeyPktSecretPrimary SomePKPayload
pkp SKAddendum
ska)
pktToSecretKeyPktEither (SecretSubkeyPkt SomePKPayload
pkp SKAddendum
ska) = KeyPkt 'SecretPkt -> Either KeyPktCoercionError (KeyPkt 'SecretPkt)
forall a b. b -> Either a b
Right (SomePKPayload -> SKAddendum -> KeyPkt 'SecretPkt
KeyPktSecretSubkey SomePKPayload
pkp SKAddendum
ska)
pktToSecretKeyPktEither Pkt
pkt = KeyPktCoercionError
-> Either KeyPktCoercionError (KeyPkt 'SecretPkt)
forall a b. a -> Either a b
Left (Pkt -> KeyPktCoercionError
ExpectedSecretKeyPacket Pkt
pkt)
pktToSecretKeyPkt :: Pkt -> Maybe (KeyPkt 'SecretPkt)
pktToSecretKeyPkt :: Pkt -> Maybe (KeyPkt 'SecretPkt)
pktToSecretKeyPkt = (KeyPktCoercionError -> Maybe (KeyPkt 'SecretPkt))
-> (KeyPkt 'SecretPkt -> Maybe (KeyPkt 'SecretPkt))
-> Either KeyPktCoercionError (KeyPkt 'SecretPkt)
-> Maybe (KeyPkt 'SecretPkt)
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (Maybe (KeyPkt 'SecretPkt)
-> KeyPktCoercionError -> Maybe (KeyPkt 'SecretPkt)
forall a b. a -> b -> a
const Maybe (KeyPkt 'SecretPkt)
forall a. Maybe a
Nothing) KeyPkt 'SecretPkt -> Maybe (KeyPkt 'SecretPkt)
forall a. a -> Maybe a
Just (Either KeyPktCoercionError (KeyPkt 'SecretPkt)
-> Maybe (KeyPkt 'SecretPkt))
-> (Pkt -> Either KeyPktCoercionError (KeyPkt 'SecretPkt))
-> Pkt
-> Maybe (KeyPkt 'SecretPkt)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Pkt -> Either KeyPktCoercionError (KeyPkt 'SecretPkt)
pktToSecretKeyPktEither
publicKeyPacketOf :: Pkt -> Pkt
publicKeyPacketOf :: Pkt -> Pkt
publicKeyPacketOf Pkt
pkt =
Pkt
-> (KeyPkt 'SecretPkt -> Pkt) -> Maybe (KeyPkt 'SecretPkt) -> Pkt
forall b a. b -> (a -> b) -> Maybe a -> b
maybe Pkt
pkt (KeyPkt 'PublicPkt -> Pkt
forall (k :: KeyPktKind). KeyPkt k -> Pkt
keyPktToPkt (KeyPkt 'PublicPkt -> Pkt)
-> (KeyPkt 'SecretPkt -> KeyPkt 'PublicPkt)
-> KeyPkt 'SecretPkt
-> Pkt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. KeyPkt 'SecretPkt -> KeyPkt 'PublicPkt
keyPktToPublicView) (Pkt -> Maybe (KeyPkt 'SecretPkt)
pktToSecretKeyPkt Pkt
pkt)
data Verification =
Verification
{ Verification -> SomePKPayload
_verificationSigner :: SomePKPayload
, Verification -> SignaturePayload
_verificationSignature :: SignaturePayload
, Verification -> [VerificationWarning]
_verificationWarnings :: [VerificationWarning]
}
data VerificationWarning
= MissingSubkeyBackSignatureWarning
deriving (VerificationWarning -> VerificationWarning -> Bool
(VerificationWarning -> VerificationWarning -> Bool)
-> (VerificationWarning -> VerificationWarning -> Bool)
-> Eq VerificationWarning
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: VerificationWarning -> VerificationWarning -> Bool
== :: VerificationWarning -> VerificationWarning -> Bool
$c/= :: VerificationWarning -> VerificationWarning -> Bool
/= :: VerificationWarning -> VerificationWarning -> Bool
Eq, Int -> VerificationWarning -> ShowS
[VerificationWarning] -> ShowS
VerificationWarning -> String
(Int -> VerificationWarning -> ShowS)
-> (VerificationWarning -> String)
-> ([VerificationWarning] -> ShowS)
-> Show VerificationWarning
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> VerificationWarning -> ShowS
showsPrec :: Int -> VerificationWarning -> ShowS
$cshow :: VerificationWarning -> String
show :: VerificationWarning -> String
$cshowList :: [VerificationWarning] -> ShowS
showList :: [VerificationWarning] -> ShowS
Show)
data SOPVVerification =
SOPVVerification
{ SOPVVerification -> UTCTime
_sopvvDateStamp :: UTCTime
, SOPVVerification -> Fingerprint
_sopvvFingerprint :: Fingerprint
, SOPVVerification -> Fingerprint
_sopvvPrimaryFingerprint :: Fingerprint
, SOPVVerification -> String
_sopvvMode :: String
, SOPVVerification -> String
_sopvvDescription :: String
}
$(makeLenses ''Verification)
$(makeLenses ''SOPVVerification)
$(makeLenses ''PktWithWireRep)