2017-05-08 8 views
0

私はAndroidのキーストアにAESキーを生成し、保存するために以下のコードを使用しています:実行するとキーストアAPI AES鍵生成持つNoSuchAlgorithmException

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //redundant 
      try { 
       // generate some AES key for encryption 
       KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore"); 
       keyPairGenerator.initialize(new KeyGenParameterSpec.Builder(
         "VideoEncryptionKey", 
         KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT) 
         .setBlockModes(KeyProperties.BLOCK_MODE_GCM) 
         .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE) 
         .setRandomizedEncryptionRequired(false) 
         .build()); 
       keyPairGenerator.generateKeyPair(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 

、コードがjava.security.NoSuchAlgorithmException: KeyPairGenerator AES implementation not foundで失敗します。

コードはtargetSdkVersion 23compileSdkVersion 25で構築されているとAndroid 6.0.1とブラックベリープライベート上で実行されているので、AESアルゴリズムはAPIレベル23以上を必要とするドキュメントによれば、このような例外があってはなりません。

何か助けていただければ幸いです。

答えて

0

KeyPairGeneratorRSAまたはDSAなどの鍵ペア(秘密鍵と公開鍵)を使用するアルゴリズムです。

AESなどの対称キーの場合は、KeyGeneratorクラスを使用してください。

+0

ありがとう、私の不注意なので、ドキュメントを見逃す。 – DarthPaghius

関連する問題