OAEP 与 SHA1 和 MGF1 与 BouncyCastle?

我正在尝试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 之类的方法。


三国纷争
浏览 134回答 1
1回答

慕的地8271018

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
打开App,查看更多内容
随时随地看视频慕课网APP