如何使用这种特殊的方式,使用隐式数据库,使用RSA解密ByteString



我在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

我应该将什么作为:rsa_padding:rsa_pkcs1_oaep_padding参数传递给函数?

根据openssl手册页,rsa_pkcs1_oaep_padding

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

您应该使用Crypto.PubKey.RSA.OAEP模块中的decrypt,并使用defaultOAEPParamsSHA1作为哈希:

import qualified Crypto.PubKey.RSA.OAEP as RSA
import Crypto.Hash.Algorithms ( SHA1 )
...
res <- RSA.decrypt None (RSA.defaultOAEPParams SHA1) privateKey myBinData

最新更新