2017-09-22 15 views
6

後でアクティビティを再作成するときに以前に選択した秘密鍵をフェッチしようとするとこのエラーが発生します画面を回転させる。android.security.KeyChainException:java.lang.IllegalStateException:uid <>に要求されたエイリアスへのアクセス権がありません

this question here,は、choosePrivateKeyAlias()が「アプリケーションのインストール後少なくとも1回」と呼ばれる必要があることを示しています。このケースでは、画面の回転が始まる前にアプリが起動されたときを含め、何度も呼び出されています。なぜ新しいアプリと考えられるのですか?何とかUIDが変わりますか?ここで

を呼び出します:

PrivateKey privateKey = KeyChain.getPrivateKey(getBaseContext(), alias);

私は他の質問がgetCertificateChainではなくgetPrivateKeyを使用していたことに気付きました - 違いということでしょうか?

+1

あなたが使用している 'エイリアス'が実際には[エイリアスコールバック](https://developer.android.com/reference/android/security/KeyChainAliasCallback.html#alias(java。 lang.String))?その呼び出しの周りにあなたのコードをもっと投稿できますか? –

+0

あなたは正しいと思いますが、私は実際にそれを正しく保管しておらず、間違ったエイリアスを探していました。あなたがこの提案を回答としてお答えいただければ、それを正しいものとしてマークします。 –

答えて

4

私のコメントを繰り返し、私のコメントを繰り返すために、エイリアスが正しく格納されていないという問題がありました。この呼び出しは、完全に無関係な、または存在しない秘密鍵にアクセスしようとしました。

関連する問題