C#中的RSASSA-PSS

问题描述 投票:3回答:1

有谁知道哪个签名算法用于RSACryptoServiceProvider.SignHash?我相信它是RSAPKCS1,还是安全吗?

有没有人想过将RSASSA-PSS配置为RSACryptoServiceProvider的签名算法而不使用像BouncyCastle这样的第三方库?

提前致谢。

c# rsa digital-signature
1个回答
1
投票

RSACryptoServiceProvider只能做PKCS-1签名。

在.NET 4.6中,在RSA基类上添加了一组新方法,它们添加了一个RSASignaturePadding参数。 RSACng类可以通过RSASignaturePadding.Pss值进行RSASSA-PSS(PSS与MGF-1,MGF消化和PSS消化都是消息摘要,盐大小是摘要大小)。

.NET 4.6还为从证书中获取密钥增加了更好的类型安全性,新方法很可能会返回RSACng:

using (RSA privateKey = cert.GetRSAPrivateKey())
{
    return privateKey.SignHash(hash, HashAlgorithmName.SHA256, RSASignaturePadding.Pss);
}
© www.soinside.com 2019 - 2024. All rights reserved.