cardano-crypto-class-2.0.0: Type classes abstracting over cryptography primitives for Cardano
Safe HaskellNone
LanguageHaskell2010

Cardano.Crypto.KES.Sum

Description

A key evolving signatures implementation.

It is a naive recursive implementation of the sum composition from section 3.1 of the "MMM" paper:

Composition and Efficiency Tradeoffs for Forward-Secure Digital Signatures By Tal Malkin, Daniele Micciancio and Sara Miner https://eprint.iacr.org/2001/034

Specfically we do the binary sum composition directly as in the paper, and then use that in a nested/recursive fashion to construct a 7-level deep binary tree version.

This relies on Cardano.Crypto.KES.Single for the base case.

Synopsis

Documentation

data SumKES h d Source #

A composition of two KES schemes to give a KES scheme with the sum of the time periods.

While we could do this with two independent KES schemes (i.e. two types) we only need it for two instances of the same scheme, and we save substantially on the size of the type and runtime dictionaries if we do it this way, especially when we start applying it recursively.

Instances

Instances details
Eq (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

(==) :: VerKeyKES (SumKES h d) -> VerKeyKES (SumKES h d) -> Bool #

(/=) :: VerKeyKES (SumKES h d) -> VerKeyKES (SumKES h d) -> Bool #

KESAlgorithm d => Eq (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

(==) :: SigKES (SumKES h d) -> SigKES (SumKES h d) -> Bool #

(/=) :: SigKES (SumKES h d) -> SigKES (SumKES h d) -> Bool #

Show (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

showsPrec :: Int -> VerKeyKES (SumKES h d) -> ShowS #

show :: VerKeyKES (SumKES h d) -> String #

showList :: [VerKeyKES (SumKES h d)] -> ShowS #

(KnownNat (SizeHash h), KESAlgorithm d) => Show (SignKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

showsPrec :: Int -> SignKeyKES (SumKES h d) -> ShowS #

show :: SignKeyKES (SumKES h d) -> String #

showList :: [SignKeyKES (SumKES h d)] -> ShowS #

KESAlgorithm d => Show (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

showsPrec :: Int -> SigKES (SumKES h d) -> ShowS #

show :: SigKES (SumKES h d) -> String #

showList :: [SigKES (SumKES h d)] -> ShowS #

Generic (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Associated Types

type Rep (VerKeyKES (SumKES h d)) :: Type -> Type #

Methods

from :: VerKeyKES (SumKES h d) -> Rep (VerKeyKES (SumKES h d)) x #

to :: Rep (VerKeyKES (SumKES h d)) x -> VerKeyKES (SumKES h d) #

Generic (SignKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Associated Types

type Rep (SignKeyKES (SumKES h d)) :: Type -> Type #

Methods

from :: SignKeyKES (SumKES h d) -> Rep (SignKeyKES (SumKES h d)) x #

to :: Rep (SignKeyKES (SumKES h d)) x -> SignKeyKES (SumKES h d) #

Generic (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Associated Types

type Rep (SigKES (SumKES h d)) :: Type -> Type #

Methods

from :: SigKES (SumKES h d) -> Rep (SigKES (SumKES h d)) x #

to :: Rep (SigKES (SumKES h d)) x -> SigKES (SumKES h d) #

(KESAlgorithm d, SodiumHashAlgorithm h, Typeable d, SizeHash h ~ SeedSizeKES d) => ToCBOR (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

toCBOR :: VerKeyKES (SumKES h d) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (VerKeyKES (SumKES h d)) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [VerKeyKES (SumKES h d)] -> Size Source #

(KESAlgorithm d, SodiumHashAlgorithm h, Typeable d, SizeHash h ~ SeedSizeKES d) => ToCBOR (SignKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

toCBOR :: SignKeyKES (SumKES h d) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (SignKeyKES (SumKES h d)) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [SignKeyKES (SumKES h d)] -> Size Source #

(KESAlgorithm d, SodiumHashAlgorithm h, Typeable d, SizeHash h ~ SeedSizeKES d) => ToCBOR (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

toCBOR :: SigKES (SumKES h d) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (SigKES (SumKES h d)) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [SigKES (SumKES h d)] -> Size Source #

(KESAlgorithm d, SodiumHashAlgorithm h, Typeable d, SizeHash h ~ SeedSizeKES d) => FromCBOR (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

(KESAlgorithm d, SodiumHashAlgorithm h, Typeable d, SizeHash h ~ SeedSizeKES d) => FromCBOR (SignKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

(KESAlgorithm d, SodiumHashAlgorithm h, Typeable d, SizeHash h ~ SeedSizeKES d) => FromCBOR (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

fromCBOR :: Decoder s (SigKES (SumKES h d)) Source #

label :: Proxy (SigKES (SumKES h d)) -> Text Source #

KESAlgorithm d => NoThunks (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

KESAlgorithm d => NoThunks (SignKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

KESAlgorithm d => NoThunks (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

(KESAlgorithm d, SodiumHashAlgorithm h, Typeable d, SizeHash h ~ SeedSizeKES d) => KESAlgorithm (SumKES h d) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Associated Types

type SeedSizeKES (SumKES h d) :: Nat Source #

data VerKeyKES (SumKES h d) Source #

data SignKeyKES (SumKES h d) Source #

data SigKES (SumKES h d) Source #

type ContextKES (SumKES h d) Source #

type Signable (SumKES h d) :: Type -> Constraint Source #

Methods

algorithmNameKES :: proxy (SumKES h d) -> String Source #

deriveVerKeyKES :: SignKeyKES (SumKES h d) -> VerKeyKES (SumKES h d) Source #

hashVerKeyKES :: HashAlgorithm h0 => VerKeyKES (SumKES h d) -> Hash h0 (VerKeyKES (SumKES h d)) Source #

signKES :: (Signable (SumKES h d) a, HasCallStack) => ContextKES (SumKES h d) -> Period -> a -> SignKeyKES (SumKES h d) -> SigKES (SumKES h d) Source #

verifyKES :: (Signable (SumKES h d) a, HasCallStack) => ContextKES (SumKES h d) -> VerKeyKES (SumKES h d) -> Period -> a -> SigKES (SumKES h d) -> Either String () Source #

updateKES :: ContextKES (SumKES h d) -> SignKeyKES (SumKES h d) -> Period -> Maybe (SignKeyKES (SumKES h d)) Source #

totalPeriodsKES :: proxy (SumKES h d) -> Word Source #

genKeyKES :: MLockedSizedBytes (SeedSizeKES (SumKES h d)) -> SignKeyKES (SumKES h d) Source #

seedSizeKES :: proxy (SumKES h d) -> Word Source #

forgetSignKeyKES :: SignKeyKES (SumKES h d) -> IO () Source #

sizeVerKeyKES :: proxy (SumKES h d) -> Word Source #

sizeSignKeyKES :: proxy (SumKES h d) -> Word Source #

sizeSigKES :: proxy (SumKES h d) -> Word Source #

rawSerialiseVerKeyKES :: VerKeyKES (SumKES h d) -> ByteString Source #

rawSerialiseSignKeyKES :: SignKeyKES (SumKES h d) -> ByteString Source #

rawSerialiseSigKES :: SigKES (SumKES h d) -> ByteString Source #

rawDeserialiseVerKeyKES :: ByteString -> Maybe (VerKeyKES (SumKES h d)) Source #

rawDeserialiseSignKeyKES :: ByteString -> Maybe (SignKeyKES (SumKES h d)) Source #

rawDeserialiseSigKES :: ByteString -> Maybe (SigKES (SumKES h d)) Source #

type Rep (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

type Rep (VerKeyKES (SumKES h d)) = D1 ('MetaData "VerKeyKES" "Cardano.Crypto.KES.Sum" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'True) (C1 ('MetaCons "VerKeySumKES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Hash h (VerKeyKES d, VerKeyKES d)))))
type Rep (SignKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

type Rep (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

type Rep (SigKES (SumKES h d)) = D1 ('MetaData "SigKES" "Cardano.Crypto.KES.Sum" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'False) (C1 ('MetaCons "SigSumKES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SigKES d)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VerKeyKES d)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VerKeyKES d)))))
type SeedSizeKES (SumKES h d) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

newtype VerKeyKES (SumKES h d) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

data SignKeyKES (SumKES h d) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

data SigKES (SumKES h d) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

data SigKES (SumKES h d) = SigSumKES !(SigKES d) !(VerKeyKES d) !(VerKeyKES d)
type ContextKES (SumKES h d) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

type Signable (SumKES h d) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

type Signable (SumKES h d) = Signable d

data family VerKeyKES v :: Type Source #

Instances

Instances details
DSIGNAlgorithm d => Eq (VerKeyKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

Eq (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

(==) :: VerKeyKES (SumKES h d) -> VerKeyKES (SumKES h d) -> Bool #

(/=) :: VerKeyKES (SumKES h d) -> VerKeyKES (SumKES h d) -> Bool #

DSIGNAlgorithm d => Eq (VerKeyKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

Methods

(==) :: VerKeyKES (SimpleKES d t) -> VerKeyKES (SimpleKES d t) -> Bool #

(/=) :: VerKeyKES (SimpleKES d t) -> VerKeyKES (SimpleKES d t) -> Bool #

Eq (VerKeyKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

Eq (VerKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

Ord (VerKeyKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

Ord (VerKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

DSIGNAlgorithm d => Show (VerKeyKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

Show (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

showsPrec :: Int -> VerKeyKES (SumKES h d) -> ShowS #

show :: VerKeyKES (SumKES h d) -> String #

showList :: [VerKeyKES (SumKES h d)] -> ShowS #

DSIGNAlgorithm d => Show (VerKeyKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

Show (VerKeyKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

Show (VerKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

Generic (VerKeyKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

Associated Types

type Rep (VerKeyKES (SingleKES d)) :: Type -> Type #

Generic (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Associated Types

type Rep (VerKeyKES (SumKES h d)) :: Type -> Type #

Methods

from :: VerKeyKES (SumKES h d) -> Rep (VerKeyKES (SumKES h d)) x #

to :: Rep (VerKeyKES (SumKES h d)) x -> VerKeyKES (SumKES h d) #

Generic (VerKeyKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

Associated Types

type Rep (VerKeyKES (SimpleKES d t)) :: Type -> Type #

Methods

from :: VerKeyKES (SimpleKES d t) -> Rep (VerKeyKES (SimpleKES d t)) x #

to :: Rep (VerKeyKES (SimpleKES d t)) x -> VerKeyKES (SimpleKES d t) #

Generic (VerKeyKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

Associated Types

type Rep (VerKeyKES NeverKES) :: Type -> Type #

Generic (VerKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

Associated Types

type Rep (VerKeyKES (MockKES t)) :: Type -> Type #

Methods

from :: VerKeyKES (MockKES t) -> Rep (VerKeyKES (MockKES t)) x #

to :: Rep (VerKeyKES (MockKES t)) x -> VerKeyKES (MockKES t) #

SodiumDSIGNAlgorithm d => ToCBOR (VerKeyKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

Methods

toCBOR :: VerKeyKES (SingleKES d) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (VerKeyKES (SingleKES d)) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [VerKeyKES (SingleKES d)] -> Size Source #

(KESAlgorithm d, SodiumHashAlgorithm h, Typeable d, SizeHash h ~ SeedSizeKES d) => ToCBOR (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

toCBOR :: VerKeyKES (SumKES h d) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (VerKeyKES (SumKES h d)) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [VerKeyKES (SumKES h d)] -> Size Source #

(DSIGNAlgorithm d, Typeable d, KnownNat t, KnownNat (SeedSizeDSIGN d * t)) => ToCBOR (VerKeyKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

Methods

toCBOR :: VerKeyKES (SimpleKES d t) -> Encoding Source #

encodedSizeExpr :: (forall t0. ToCBOR t0 => Proxy t0 -> Size) -> Proxy (VerKeyKES (SimpleKES d t)) -> Size Source #

encodedListSizeExpr :: (forall t0. ToCBOR t0 => Proxy t0 -> Size) -> Proxy [VerKeyKES (SimpleKES d t)] -> Size Source #

KnownNat t => ToCBOR (VerKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

Methods

toCBOR :: VerKeyKES (MockKES t) -> Encoding Source #

encodedSizeExpr :: (forall t0. ToCBOR t0 => Proxy t0 -> Size) -> Proxy (VerKeyKES (MockKES t)) -> Size Source #

encodedListSizeExpr :: (forall t0. ToCBOR t0 => Proxy t0 -> Size) -> Proxy [VerKeyKES (MockKES t)] -> Size Source #

SodiumDSIGNAlgorithm d => FromCBOR (VerKeyKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

(KESAlgorithm d, SodiumHashAlgorithm h, Typeable d, SizeHash h ~ SeedSizeKES d) => FromCBOR (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

(DSIGNAlgorithm d, Typeable d, KnownNat t, KnownNat (SeedSizeDSIGN d * t)) => FromCBOR (VerKeyKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

KnownNat t => FromCBOR (VerKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

DSIGNAlgorithm d => NoThunks (VerKeyKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

KESAlgorithm d => NoThunks (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

DSIGNAlgorithm d => NoThunks (VerKeyKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

NoThunks (VerKeyKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

NoThunks (VerKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

data VerKeyKES NeverKES Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

type Rep (VerKeyKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

type Rep (VerKeyKES (SingleKES d)) = D1 ('MetaData "VerKeyKES" "Cardano.Crypto.KES.Single" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'True) (C1 ('MetaCons "VerKeySingleKES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SodiumVerKeyDSIGN d))))
type Rep (VerKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

type Rep (VerKeyKES (SumKES h d)) = D1 ('MetaData "VerKeyKES" "Cardano.Crypto.KES.Sum" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'True) (C1 ('MetaCons "VerKeySumKES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Hash h (VerKeyKES d, VerKeyKES d)))))
type Rep (VerKeyKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

type Rep (VerKeyKES (SimpleKES d t)) = D1 ('MetaData "VerKeyKES" "Cardano.Crypto.KES.Simple" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'True) (C1 ('MetaCons "ThunkyVerKeySimpleKES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector (VerKeyDSIGN d)))))
type Rep (VerKeyKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

type Rep (VerKeyKES NeverKES) = D1 ('MetaData "VerKeyKES" "Cardano.Crypto.KES.NeverUsed" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'False) (C1 ('MetaCons "NeverUsedVerKeyKES" 'PrefixI 'False) (U1 :: Type -> Type))
type Rep (VerKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

type Rep (VerKeyKES (MockKES t)) = D1 ('MetaData "VerKeyKES" "Cardano.Crypto.KES.Mock" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'True) (C1 ('MetaCons "VerKeyMockKES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64)))
newtype VerKeyKES (SingleKES d) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

newtype VerKeyKES (MockKES t) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

newtype VerKeyKES (SumKES h d) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

newtype VerKeyKES (SimpleKES d t) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

data family SignKeyKES v :: Type Source #

Instances

Instances details
Eq (SignKeyKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

Eq (SignKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

Ord (SignKeyKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

Ord (SignKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

DSIGNAlgorithm d => Show (SignKeyKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

(KnownNat (SizeHash h), KESAlgorithm d) => Show (SignKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

showsPrec :: Int -> SignKeyKES (SumKES h d) -> ShowS #

show :: SignKeyKES (SumKES h d) -> String #

showList :: [SignKeyKES (SumKES h d)] -> ShowS #

DSIGNAlgorithm d => Show (SignKeyKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

Show (SignKeyKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

Show (SignKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

Generic (SignKeyKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

Associated Types

type Rep (SignKeyKES (SingleKES d)) :: Type -> Type #

Generic (SignKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Associated Types

type Rep (SignKeyKES (SumKES h d)) :: Type -> Type #

Methods

from :: SignKeyKES (SumKES h d) -> Rep (SignKeyKES (SumKES h d)) x #

to :: Rep (SignKeyKES (SumKES h d)) x -> SignKeyKES (SumKES h d) #

Generic (SignKeyKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

Associated Types

type Rep (SignKeyKES (SimpleKES d t)) :: Type -> Type #

Methods

from :: SignKeyKES (SimpleKES d t) -> Rep (SignKeyKES (SimpleKES d t)) x #

to :: Rep (SignKeyKES (SimpleKES d t)) x -> SignKeyKES (SimpleKES d t) #

Generic (SignKeyKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

Associated Types

type Rep (SignKeyKES NeverKES) :: Type -> Type #

Generic (SignKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

Associated Types

type Rep (SignKeyKES (MockKES t)) :: Type -> Type #

Methods

from :: SignKeyKES (MockKES t) -> Rep (SignKeyKES (MockKES t)) x #

to :: Rep (SignKeyKES (MockKES t)) x -> SignKeyKES (MockKES t) #

SodiumDSIGNAlgorithm d => ToCBOR (SignKeyKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

(KESAlgorithm d, SodiumHashAlgorithm h, Typeable d, SizeHash h ~ SeedSizeKES d) => ToCBOR (SignKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

toCBOR :: SignKeyKES (SumKES h d) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (SignKeyKES (SumKES h d)) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [SignKeyKES (SumKES h d)] -> Size Source #

(DSIGNAlgorithm d, Typeable d, KnownNat t, KnownNat (SeedSizeDSIGN d * t)) => ToCBOR (SignKeyKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

Methods

toCBOR :: SignKeyKES (SimpleKES d t) -> Encoding Source #

encodedSizeExpr :: (forall t0. ToCBOR t0 => Proxy t0 -> Size) -> Proxy (SignKeyKES (SimpleKES d t)) -> Size Source #

encodedListSizeExpr :: (forall t0. ToCBOR t0 => Proxy t0 -> Size) -> Proxy [SignKeyKES (SimpleKES d t)] -> Size Source #

KnownNat t => ToCBOR (SignKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

Methods

toCBOR :: SignKeyKES (MockKES t) -> Encoding Source #

encodedSizeExpr :: (forall t0. ToCBOR t0 => Proxy t0 -> Size) -> Proxy (SignKeyKES (MockKES t)) -> Size Source #

encodedListSizeExpr :: (forall t0. ToCBOR t0 => Proxy t0 -> Size) -> Proxy [SignKeyKES (MockKES t)] -> Size Source #

SodiumDSIGNAlgorithm d => FromCBOR (SignKeyKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

(KESAlgorithm d, SodiumHashAlgorithm h, Typeable d, SizeHash h ~ SeedSizeKES d) => FromCBOR (SignKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

(DSIGNAlgorithm d, Typeable d, KnownNat t, KnownNat (SeedSizeDSIGN d * t)) => FromCBOR (SignKeyKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

KnownNat t => FromCBOR (SignKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

DSIGNAlgorithm d => NoThunks (SignKeyKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

KESAlgorithm d => NoThunks (SignKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

DSIGNAlgorithm d => NoThunks (SignKeyKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

NoThunks (SignKeyKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

NoThunks (SignKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

data SignKeyKES NeverKES Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

type Rep (SignKeyKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

type Rep (SignKeyKES (SingleKES d)) = D1 ('MetaData "SignKeyKES" "Cardano.Crypto.KES.Single" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'True) (C1 ('MetaCons "SignKeySingleKES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SodiumSignKeyDSIGN d))))
type Rep (SignKeyKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

type Rep (SignKeyKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

type Rep (SignKeyKES (SimpleKES d t)) = D1 ('MetaData "SignKeyKES" "Cardano.Crypto.KES.Simple" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'True) (C1 ('MetaCons "ThunkySignKeySimpleKES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Vector (SignKeyDSIGN d)))))
type Rep (SignKeyKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

type Rep (SignKeyKES NeverKES) = D1 ('MetaData "SignKeyKES" "Cardano.Crypto.KES.NeverUsed" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'False) (C1 ('MetaCons "NeverUsedSignKeyKES" 'PrefixI 'False) (U1 :: Type -> Type))
type Rep (SignKeyKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

type Rep (SignKeyKES (MockKES t)) = D1 ('MetaData "SignKeyKES" "Cardano.Crypto.KES.Mock" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'False) (C1 ('MetaCons "SignKeyMockKES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VerKeyKES (MockKES t))) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Period)))
newtype SignKeyKES (SingleKES d) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

data SignKeyKES (MockKES t) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

data SignKeyKES (SumKES h d) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

newtype SignKeyKES (SimpleKES d t) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

data family SigKES v :: Type Source #

Instances

Instances details
DSIGNAlgorithm d => Eq (SigKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

Methods

(==) :: SigKES (SingleKES d) -> SigKES (SingleKES d) -> Bool #

(/=) :: SigKES (SingleKES d) -> SigKES (SingleKES d) -> Bool #

KESAlgorithm d => Eq (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

(==) :: SigKES (SumKES h d) -> SigKES (SumKES h d) -> Bool #

(/=) :: SigKES (SumKES h d) -> SigKES (SumKES h d) -> Bool #

DSIGNAlgorithm d => Eq (SigKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

Methods

(==) :: SigKES (SimpleKES d t) -> SigKES (SimpleKES d t) -> Bool #

(/=) :: SigKES (SimpleKES d t) -> SigKES (SimpleKES d t) -> Bool #

Eq (SigKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

Eq (SigKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

Methods

(==) :: SigKES (MockKES t) -> SigKES (MockKES t) -> Bool #

(/=) :: SigKES (MockKES t) -> SigKES (MockKES t) -> Bool #

Ord (SigKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

Ord (SigKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

Methods

compare :: SigKES (MockKES t) -> SigKES (MockKES t) -> Ordering #

(<) :: SigKES (MockKES t) -> SigKES (MockKES t) -> Bool #

(<=) :: SigKES (MockKES t) -> SigKES (MockKES t) -> Bool #

(>) :: SigKES (MockKES t) -> SigKES (MockKES t) -> Bool #

(>=) :: SigKES (MockKES t) -> SigKES (MockKES t) -> Bool #

max :: SigKES (MockKES t) -> SigKES (MockKES t) -> SigKES (MockKES t) #

min :: SigKES (MockKES t) -> SigKES (MockKES t) -> SigKES (MockKES t) #

DSIGNAlgorithm d => Show (SigKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

KESAlgorithm d => Show (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

showsPrec :: Int -> SigKES (SumKES h d) -> ShowS #

show :: SigKES (SumKES h d) -> String #

showList :: [SigKES (SumKES h d)] -> ShowS #

DSIGNAlgorithm d => Show (SigKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

Methods

showsPrec :: Int -> SigKES (SimpleKES d t) -> ShowS #

show :: SigKES (SimpleKES d t) -> String #

showList :: [SigKES (SimpleKES d t)] -> ShowS #

Show (SigKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

Show (SigKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

Methods

showsPrec :: Int -> SigKES (MockKES t) -> ShowS #

show :: SigKES (MockKES t) -> String #

showList :: [SigKES (MockKES t)] -> ShowS #

Generic (SigKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

Associated Types

type Rep (SigKES (SingleKES d)) :: Type -> Type #

Methods

from :: SigKES (SingleKES d) -> Rep (SigKES (SingleKES d)) x #

to :: Rep (SigKES (SingleKES d)) x -> SigKES (SingleKES d) #

Generic (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Associated Types

type Rep (SigKES (SumKES h d)) :: Type -> Type #

Methods

from :: SigKES (SumKES h d) -> Rep (SigKES (SumKES h d)) x #

to :: Rep (SigKES (SumKES h d)) x -> SigKES (SumKES h d) #

Generic (SigKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

Associated Types

type Rep (SigKES (SimpleKES d t)) :: Type -> Type #

Methods

from :: SigKES (SimpleKES d t) -> Rep (SigKES (SimpleKES d t)) x #

to :: Rep (SigKES (SimpleKES d t)) x -> SigKES (SimpleKES d t) #

Generic (SigKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

Associated Types

type Rep (SigKES NeverKES) :: Type -> Type #

Generic (SigKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

Associated Types

type Rep (SigKES (MockKES t)) :: Type -> Type #

Methods

from :: SigKES (MockKES t) -> Rep (SigKES (MockKES t)) x #

to :: Rep (SigKES (MockKES t)) x -> SigKES (MockKES t) #

SodiumDSIGNAlgorithm d => ToCBOR (SigKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

Methods

toCBOR :: SigKES (SingleKES d) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (SigKES (SingleKES d)) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [SigKES (SingleKES d)] -> Size Source #

(KESAlgorithm d, SodiumHashAlgorithm h, Typeable d, SizeHash h ~ SeedSizeKES d) => ToCBOR (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

toCBOR :: SigKES (SumKES h d) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (SigKES (SumKES h d)) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [SigKES (SumKES h d)] -> Size Source #

(DSIGNAlgorithm d, Typeable d, KnownNat t, KnownNat (SeedSizeDSIGN d * t)) => ToCBOR (SigKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

Methods

toCBOR :: SigKES (SimpleKES d t) -> Encoding Source #

encodedSizeExpr :: (forall t0. ToCBOR t0 => Proxy t0 -> Size) -> Proxy (SigKES (SimpleKES d t)) -> Size Source #

encodedListSizeExpr :: (forall t0. ToCBOR t0 => Proxy t0 -> Size) -> Proxy [SigKES (SimpleKES d t)] -> Size Source #

KnownNat t => ToCBOR (SigKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

Methods

toCBOR :: SigKES (MockKES t) -> Encoding Source #

encodedSizeExpr :: (forall t0. ToCBOR t0 => Proxy t0 -> Size) -> Proxy (SigKES (MockKES t)) -> Size Source #

encodedListSizeExpr :: (forall t0. ToCBOR t0 => Proxy t0 -> Size) -> Proxy [SigKES (MockKES t)] -> Size Source #

SodiumDSIGNAlgorithm d => FromCBOR (SigKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

(KESAlgorithm d, SodiumHashAlgorithm h, Typeable d, SizeHash h ~ SeedSizeKES d) => FromCBOR (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

Methods

fromCBOR :: Decoder s (SigKES (SumKES h d)) Source #

label :: Proxy (SigKES (SumKES h d)) -> Text Source #

(DSIGNAlgorithm d, Typeable d, KnownNat t, KnownNat (SeedSizeDSIGN d * t)) => FromCBOR (SigKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

KnownNat t => FromCBOR (SigKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

DSIGNAlgorithm d => NoThunks (SigKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

KESAlgorithm d => NoThunks (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

DSIGNAlgorithm d => NoThunks (SigKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

NoThunks (SigKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

NoThunks (SigKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

data SigKES NeverKES Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

type Rep (SigKES (SingleKES d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

type Rep (SigKES (SingleKES d)) = D1 ('MetaData "SigKES" "Cardano.Crypto.KES.Single" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'True) (C1 ('MetaCons "SigSingleKES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SodiumSigDSIGN d))))
type Rep (SigKES (SumKES h d)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

type Rep (SigKES (SumKES h d)) = D1 ('MetaData "SigKES" "Cardano.Crypto.KES.Sum" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'False) (C1 ('MetaCons "SigSumKES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SigKES d)) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VerKeyKES d)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VerKeyKES d)))))
type Rep (SigKES (SimpleKES d t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

type Rep (SigKES (SimpleKES d t)) = D1 ('MetaData "SigKES" "Cardano.Crypto.KES.Simple" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'True) (C1 ('MetaCons "SigSimpleKES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SigDSIGN d))))
type Rep (SigKES NeverKES) Source # 
Instance details

Defined in Cardano.Crypto.KES.NeverUsed

type Rep (SigKES NeverKES) = D1 ('MetaData "SigKES" "Cardano.Crypto.KES.NeverUsed" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'False) (C1 ('MetaCons "NeverUsedSigKES" 'PrefixI 'False) (U1 :: Type -> Type))
type Rep (SigKES (MockKES t)) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

type Rep (SigKES (MockKES t)) = D1 ('MetaData "SigKES" "Cardano.Crypto.KES.Mock" "cardano-crypto-class-2.0.0-65D1eTYKcW5D111kOYsKfk" 'False) (C1 ('MetaCons "SigMockKES" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Hash MD5 ())) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SignKeyKES (MockKES t)))))
newtype SigKES (SingleKES d) Source # 
Instance details

Defined in Cardano.Crypto.KES.Single

data SigKES (MockKES t) Source # 
Instance details

Defined in Cardano.Crypto.KES.Mock

data SigKES (SumKES h d) Source # 
Instance details

Defined in Cardano.Crypto.KES.Sum

data SigKES (SumKES h d) = SigSumKES !(SigKES d) !(VerKeyKES d) !(VerKeyKES d)
newtype SigKES (SimpleKES d t) Source # 
Instance details

Defined in Cardano.Crypto.KES.Simple

Type aliases for powers of binary sums

type Sum0KES d = SingleKES d Source #

A 2^0 period KES

type Sum1KES d h = SumKES h (Sum0KES d) Source #

A 2^1 period KES

type Sum2KES d h = SumKES h (Sum1KES d h) Source #

A 2^2 period KES

type Sum3KES d h = SumKES h (Sum2KES d h) Source #

A 2^3 period KES

type Sum4KES d h = SumKES h (Sum3KES d h) Source #

A 2^4 period KES

type Sum5KES d h = SumKES h (Sum4KES d h) Source #

A 2^5 period KES

type Sum6KES d h = SumKES h (Sum5KES d h) Source #

A 2^6 period KES

type Sum7KES d h = SumKES h (Sum6KES d h) Source #

A 2^7 period KES