我正在尝试RSA/ECB/OAEPWithSHA1AndMGF1Padding在 .NET Framework 2.0 上使用 BouncyCastle 来处理 c#。我得出这样的结论:IAsymmetricBlockCipher engine = new OaepEncoding(new RsaEngine(), new Sha1Digest(), new Sha1Digest(), null);using (var stream = new StreamReader(publicKey)){ var pemReader = new PemReader(stream); var pemObj = pemReader.ReadObject(); var keyPair = (RsaKeyParameters)pemObj; engine.Init(true, keyPair);}var message = "test";var data = Encoding.UTF8.GetBytes(message);var encrypted = engine.ProcessBlock(data, 0, data.Length);我的问题是,这是否相当于RSA/ECB/OAEPWithSHA1AndMGF1Padding使用 BouncyCastle 和 c# 或者什么是正确的方法?我对这里的参数也有疑问:IAsymmetricBlockCipher engine = new OaepEncoding(new RsaEngine(), new Sha1Digest(), new Sha1Digest(), null);我找不到将第二个定义Sha1Digest为 MGF1 之类的方法。
1 回答
慕的地8271018
TA贡献1796条经验 获得超4个赞
c = CipherUtilities.GetCipher("RSA/NONE/OAEPWithSHA1AndMGF1Padding");
c.Init(false, privKey);
outBytes = c.DoFinal(outBytes);
if (!AreEqual(outBytes, input))
{
Fail("OAEP test failed on decrypt expected " + Hex.ToHexString(input) + " got " + Hex.ToHexString(outBytes));
}
注意 c 是一个 IBufferedCipher
- 1 回答
- 0 关注
- 123 浏览
添加回答
举报
0/150
提交
取消