C# Pkcs1使用bouncy castle签名时填充
我有下面的c#Bouncy Castle代码,可以使用RSA/SHA512在c#中对一些数据进行签名。能告诉我如何在这个过程中应用Pkcs1填充吗C# Pkcs1使用bouncy castle签名时填充,c#,bouncycastle,C#,Bouncycastle,我有下面的c#Bouncy Castle代码,可以使用RSA/SHA512在c#中对一些数据进行签名。能告诉我如何在这个过程中应用Pkcs1填充吗 using (var txtreader = new StringReader(File.ReadAllText(_certificatePath))) { var keyPair = (AsymmetricCipherKeyPair)new PemReader(txtreader).ReadObject(); var key =
using (var txtreader = new StringReader(File.ReadAllText(_certificatePath)))
{
var keyPair = (AsymmetricCipherKeyPair)new PemReader(txtreader).ReadObject();
var key = keyPair.Private as RsaPrivateCrtKeyParameters;
ISigner sig = SignerUtilities.GetSigner("SHA512withRSA");
sig.Init(true, key);
sig.BlockUpdate(requestToSign, 0, requestToSign.Length);
byte[] signature = sig.GenerateSignature();
}
PKCS#1实际上是用于RSA-SHA512签名的唯一填充算法
检查:
2.3.4。RSA-SHA512
这意味着PKCS#1 v1.5填充算法[RFC3447]如第2.3.1节所述,但带有ASN.1 BER SHA-512算法标识符前缀
你也可以查一下RsaDigestSigner
在不带任何条件或配置的情况下创建PKCS1Encode
的实例:
private readonly IAsymmetricBlockCipher rsaEngine = new Pkcs1Encoding(new RsaBlindedEngine());
您还可以在“调试”下检查已使用的实现:
因此,回答这个问题:
能告诉我如何在这个过程中应用Pkcs1填充吗
using (var txtreader = new StringReader(File.ReadAllText(_certificatePath)))
{
var keyPair = (AsymmetricCipherKeyPair)new PemReader(txtreader).ReadObject();
var key = keyPair.Private as RsaPrivateCrtKeyParameters;
ISigner sig = SignerUtilities.GetSigner("SHA512withRSA");
sig.Init(true, key);
sig.BlockUpdate(requestToSign, 0, requestToSign.Length);
byte[] signature = sig.GenerateSignature();
}
不应采取其他行动。Pkcs1是唯一可能用于RSA-SHA512签名的填充算法