2011-12-21 8 views
-4

私はアンドロイドシステムを構築しています。Android platform.keyに3つしか公開されていないのはなぜですか?

私は、公開指数F4(65537)を持つ既存のキーペアを持っています。

私はplatform.keyとして使用しようとしています(私はpk8とx509を持っています)。

ビルドプロセス中に、DumpPublicKeyがキーペアで呼び出されます。ここで

:公開指数が3ではないので、この時点で

は、キーが拒否された(3と比較し、それ以外の場合は拒否し、私は、それはそれはない正確に何であるDumpPublicKeyのコードでチェック)このためスタックトレース:

java.lang.Exception: Public exponent should be 3 but is 65537. 
    at com.android.dumpkey.DumpPublicKey.check(DumpPublicKey.java:75) 
    at com.android.dumpkey.DumpPublicKey.main(DumpPublicKey.java:151) 

は、これは私が

openssl genrsa -3 ... 

を使用して新しい鍵のペアを生成するために持っているか、私はまだ私のキーを使用することができますどのような方法があることを意味していますか?

また、公開者がF4ではなく3であることが重要なのはなぜですか?

おかげで、事前に

+0

65537の代わりに3を使用すると、署名検証が8倍高速になります。 –

+0

ありがとう、グレッグ。それは私のことです。アンドロイドが自分の鍵を受け入れる方法があれば、今あなたはいますか? – njzk2

+0

申し訳ありませんが、Androidについてよく分かりません。 –

答えて

1

は私にはcom.android.dumpkey.DumpPublicKeyのバグのように見えます。 RSAキーの公開指数を3に制限することは、まったく単純です。 このようにすると、基本となるライブラリが正しく実装されていない場合、実装エラーに致命的な影響が生じる可能性が高くなります。

私が知る限り、Androidは慎重に実装されていない の暗号ライブラリであるBouncycastleを使用しています。

標準指数2^16 + 1を使用すると、非常に合理的であり、小さい指数で多くの潜在的な問題を回避できます。

+0

DumpPublicKeyで例外部分を削除しましたが、動作しているようです(これまでのところ) – njzk2

関連する問題