3

私の仕事では、データを保護するために暗号化を行っています。そのデータは .NET Compact Framework によって暗号化され、サーバー上の通常の .NET Framework によって読み取られる必要があります。既知の公開鍵で RSA を使用してコンパクト フレームワークが暗号化できない (例外をスローする) という問題が発生しています。サーバーは公開鍵をコンパクト フレームワーク デバイスに渡します。以下は、問題を示すためにコンパクト フレームワーク用に作成されたテスト アプリです。

string mod = 
    "rgTcL0/ZK3j5Rt6CigEsfyLDiERh2PuVzmZVdHbb/2jQOG5JEcAqqBoscDZ4PwJR8aO19xNVTce7"
  + "vzbEued32z2PLAvCcHFKGtOgNEeZ+ZcD6uHobsKws76BdjBrI7Pigk2HSkak21n2WoVcBVHoRmcn"
  + "eX7DPaB4atamhkbLoRBF1VlautDfhX9lnOFA2zyZUCB5CproavKF6wl19pZne2Q4U1vMtBAA2Q9N"
  + "aZFsrj/KjE3UtYKvjd4Oy55Hmtpb5P3CZAVpiyCTKq3gTxDJn69giyctu428DgkKacmZ4yTvkLWB"
  + "Ym/zWtAf9o8pI+3MwgF7wzuK5ypGack3l4/Skw==";

string exp = "AQAB";

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048);

RSAParameters p = new RSAParameters();
p.Modulus = Convert.FromBase64String(mod);
p.Exponent = Convert.FromBase64String(exp);

rsa.ImportParameters(p);

var bytes = rsa.Encrypt(System.Text.Encoding.ASCII.GetBytes("MIKE"), true);

このコードは、「暗号化」メソッドが呼び出されると、次の例外を生成します。

Framework: 3.5.7283.0
Exception: fOAEP 
InnerException: Could not evaluate expression

Stack Trace:
   at System.Security.Cryptography.RSACryptoServiceProvider.Encrypt
    (Byte[] rgb, Boolean fOAEP)

他に私が試すべき/すべきことを知っている人はいますか? このコードは通常の .NET で記述しましたが、問題なく動作します。異なるインスタンスを使用して暗号化および復号化できます。どんな助けでも大歓迎です。

ありがとう!

4

1 に答える 1