Haskell RSA 加密随机生成器类型

Haskell RSA crypto random generator type

我的目标是使用 generateKeyPairCodec.Crypto.RSA 生成密钥对。

此函数需要 RandomGen 类型的生成器。我试图用 newGenIO 制作这个生成器,但我很难指定它的类型。

import qualified Codec.Crypto.RSA as Crypto
import Crypto.Random

someFunc = do
  let g = newGenIO :: CryptoRandomGen (IO SystemRandom)
  let keyPair = Crypto.generateKeyPair g 10

Haskell 当我在 newGenIO 之后没有指定类型时建议 CryptoRandomGen SystemRandom

这是尝试 运行 代码时出现的错误消息。

    • Expected a type, but
      ‘CryptoRandomGen (IO SystemRandom)’ has kind
      ‘Constraint’

有谁知道我用什么类型来让它工作?

尝试用这一行替换该行:

  g <- newGenIO :: IO SystemRandom

当您需要 class 的特定实例时,您只需使用类型,而不是再次指定 class。要从 IO 中获取一些东西,您需要绑定到它而不是仅仅使用 =.