Haskell 如何使用RSA以这种特殊的方式使用Scriptonite库对ByteString进行解密?

Haskell 如何使用RSA以这种特殊的方式使用Scriptonite库对ByteString进行解密?,haskell,erlang,elixir,rsa,Haskell,Erlang,Elixir,Rsa,我在Elixir/Erlang中有一些代码是我固有的: res = :crypto.private_decrypt(:rsa, my_bin_data, rsa_priv_key, [{:rsa_padding, :rsa_pkcs1_oaep_padding}]) 我想把它转换成Haskell。我正在使用cryptonite库及其RSA模块。我的问题是关于必须传递给它的参数,以使它执行与Elixir代码完全相同的操作 import qualified Crypto.PubKey.RSA.

我在Elixir/Erlang中有一些代码是我固有的:

  res = :crypto.private_decrypt(:rsa, my_bin_data, rsa_priv_key, [{:rsa_padding, :rsa_pkcs1_oaep_padding}])
我想把它转换成Haskell。我正在使用cryptonite库及其RSA模块。我的问题是关于必须传递给它的参数,以使它执行与Elixir代码完全相同的操作

import qualified Crypto.PubKey.RSA.PKCS15 as RSA
-- [.........]

res <- RSA.decrypt None privateKey myBinData
将合格的Crypto.PubKey.RSA.PKCS15导入为RSA
-- [.........]
res根据
rsa\u pkcs1\u oaep\u padding

PKCS#1 v2.0中定义的EME-OAEP SHA-1、MGF1和空编码 参数

您应该使用
Crypto.PubKey.RSA.OAEP
模块中的
decrypt
,并使用
defaultOAEPParams
SHA1
作为散列:

import qualified Crypto.PubKey.RSA.OAEP as RSA
import Crypto.Hash.Algorithms ( SHA1 )

...

res <- RSA.decrypt None (RSA.defaultOAEPParams SHA1) privateKey myBinData
将合格的Crypto.PubKey.RSA.OAEP导入为RSA
导入Crypto.Hash.Algorithms(SHA1)
...

res您是否尝试过该软件包中相应的
pad
功能?@BobDalgleish没有是的,有:和@BobDalgleish有。我应该如何使用它,在Elixir代码中获得相同的结果?您必须了解Elixir API是如何工作的。设置一个测试过程也很重要,在这个过程中,您可以可靠地确定加密的有效负载是否被正确解密。