module Cardano.Api.Key.Internal.Leios
( module Cardano.Keys.Leios
, toLedgerBlsKey
)
where
import Cardano.Crypto.DSIGN.BLS12381 qualified as Crypto
import Cardano.Crypto.DSIGN.Class qualified as Crypto
import Cardano.Keys.Leios
import Cardano.Ledger.State qualified as Ledger
toLedgerBlsKey :: SigningKey BlsKey -> Ledger.BlsKey
toLedgerBlsKey :: SigningKey BlsKey -> BlsKey
toLedgerBlsKey (BlsSigningKey SignKeyDSIGN BLS12381MinSigDSIGN
sk) =
Ledger.BlsKey
{ blsPubKey :: VerKeyDSIGN BLS12381MinSigDSIGN
Ledger.blsPubKey = SignKeyDSIGN BLS12381MinSigDSIGN -> VerKeyDSIGN BLS12381MinSigDSIGN
forall v. DSIGNAlgorithm v => SignKeyDSIGN v -> VerKeyDSIGN v
Crypto.deriveVerKeyDSIGN SignKeyDSIGN BLS12381MinSigDSIGN
sk
, blsPossessionProof :: PossessionProofDSIGN BLS12381MinSigDSIGN
Ledger.blsPossessionProof = ContextDSIGN BLS12381MinSigDSIGN
-> SignKeyDSIGN BLS12381MinSigDSIGN
-> PossessionProofDSIGN BLS12381MinSigDSIGN
forall v.
(DSIGNAggregatable v, HasCallStack) =>
ContextDSIGN v -> SignKeyDSIGN v -> PossessionProofDSIGN v
Crypto.createPossessionProofDSIGN ContextDSIGN BLS12381MinSigDSIGN
BLS12381SignContext
Crypto.minSigPoPDST SignKeyDSIGN BLS12381MinSigDSIGN
sk
}