我认为这是一个愚蠢的问题,但是......确实在OpenSSL中调用FIPS_mode_set(1)实际上会改变我要回复的签名,如果是的话,如果我想在bouncycastle中做同等的事情/ .NET,有什么我需要做的吗?
背景:对于我正在做的事情,我实际上并不真正关心FIPS,我只是想获得一个C#.NET实现,它产生一个与现有OpenSSL实现相匹配的签名。通过我的阅读,现有代码正在做的是计算SHA256哈希,然后从.pem文件应用私有RSA密钥。它正在使用EVP_Sign *函数来完成它。我尝试使用System.Security.Cryptography.SHA256来生成哈希值,并使用bouncycastle的PemReader,AsymmetricCypherKeyPair,RsaEngine和Pkcs1Encoding类...但我的输出不匹配。
OpenSSL实现调用FIPS_mode_set(1),这是我觉得我没有考虑到的唯一事情......通过我的阅读,所有这一切都是如此,如果你使用任何不是符合FIPS认证,即不应更改签名的输出。但我有这种唠叨的感觉......
哦,PKCS1是用于匹配OpenSSL与EVP_SignFinal的匹配的正确编码,对吗?