0

これはばかげた質問だと思いますが... OpenSSL で FIPS_mode_set(1) を呼び出すと、返される署名が実際に変更されますか? もしそうなら、bouncycastle/.NET で同等のことをしようとすると、私がしなければならないことはありますか?

背景: 私がやっていることの目的のために、実際には FIPS をまったく気にしません。既存の OpenSSL 実装と一致する署名を生成する C#.NET 実装を取得しようとしています。私が読んだ既存のコードは、SHA256 ハッシュを計算し、.pem ファイルから秘密の RSA キーを適用しています。それを行うために EVP_Sign* 関数を使用しています。System.Security.Cryptography.SHA256 を使用してハッシュを生成し、bouncycastle の PemReader、AsymmetricCypherKeyPair、RsaEngine、および Pkcs1Encoding クラスを使用して同等の処理を試みましたが、出力が一致しません。

OpenSSL の実装は FIPS_mode_set(1) を呼び出しますが、それは私が説明していないように感じる唯一のことです... 私の読書では、FIPS 準拠の認定を受けていないものを使用すると、それを作るだけです。 、つまり、署名の出力を変更すべきではありません。でも、なんかモヤモヤ感が…。

ああ、PKCS1 は、OpenSSL が EVP_SignFinal で行うことと一致させるために使用する正しいエンコーディングですよね?

4

0 に答える 0