Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Consensus.Shelley.Protocol.HotKey
Contents
Description
Hot key
Intended for qualified import
Synopsis
- type KESEvolution = Period
- data KESInfo = KESInfo {}
- kesAbsolutePeriod :: KESInfo -> KESPeriod
- data KESStatus
- kesStatus :: KESInfo -> KESPeriod -> KESStatus
- data KESEvolutionError
- type KESEvolutionInfo = UpdateInfo KESInfo KESInfo KESEvolutionError
- data HotKey c m = HotKey {
- evolve :: KESPeriod -> m KESEvolutionInfo
- getInfo :: m KESInfo
- isPoisoned :: m Bool
- sign_ :: forall toSign. (KESignable c toSign, HasCallStack) => toSign -> m (SignedKES c toSign)
- sign :: (KESignable c toSign, HasCallStack) => HotKey c m -> toSign -> m (SignedKES c toSign)
- mkHotKey :: forall m c. (Crypto c, IOLike m) => SignKeyKES c -> KESPeriod -> Word64 -> m (HotKey c m)
KES Info
type KESEvolution = Period Source #
We call the relative periods that a KES key is valid its evolution, to avoid confusion with absolute periods.
Constructors
KESInfo | |
Fields
|
Instances
Show KESInfo Source # | |
Generic KESInfo Source # | |
NoThunks KESInfo Source # | |
type Rep KESInfo Source # | |
Defined in Ouroboros.Consensus.Shelley.Protocol.HotKey type Rep KESInfo = D1 ('MetaData "KESInfo" "Ouroboros.Consensus.Shelley.Protocol.HotKey" "ouroboros-consensus-shelley-0.1.0.0-59swnF21REM9YduArUJWll" 'False) (C1 ('MetaCons "KESInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "kesStartPeriod") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 KESPeriod) :*: (S1 ('MetaSel ('Just "kesEndPeriod") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 KESPeriod) :*: S1 ('MetaSel ('Just "kesEvolution") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 KESEvolution)))) |
kesAbsolutePeriod :: KESInfo -> KESPeriod Source #
Return the absolute KES period
KES Status
Constructors
BeforeKESStart | The given period is before the start period of the KES key. |
InKESRange KESEvolution | Relative period or evolution corresponding to the given absolute period |
AfterKESEnd | The given period is after the end period of the KES key. |
kesStatus :: KESInfo -> KESPeriod -> KESStatus Source #
Return the evolution of the given KES period, when it falls within the
range of the HotKey
([hkStart, hkEnd)
).
Note that the upper bound is exclusive, the spec says: > c0 <= kesPeriod s < c0 + MaxKESEvo
Hot Key
data KESEvolutionError Source #
Failed to evolve the KES key.
Constructors
KESCouldNotEvolve KESInfo KESPeriod | The KES key could not be evolved to the target period. |
KESKeyAlreadyPoisoned KESInfo KESPeriod | Target period outside the range of the current KES key. Typically the current KES period according to the wallclock slot. |
Instances
Show KESEvolutionError Source # | |
Defined in Ouroboros.Consensus.Shelley.Protocol.HotKey Methods showsPrec :: Int -> KESEvolutionError -> ShowS # show :: KESEvolutionError -> String # showList :: [KESEvolutionError] -> ShowS # |
type KESEvolutionInfo = UpdateInfo KESInfo KESInfo KESEvolutionError Source #
Result of evolving the KES key.
API to interact with the key.
Constructors
HotKey | |
Fields
|
sign :: (KESignable c toSign, HasCallStack) => HotKey c m -> toSign -> m (SignedKES c toSign) Source #