Android AES Key Get getRawKey(byte[] seed)

Here you can find the source of getRawKey(byte[] seed)

Description

get Raw Key

Declaration

private static byte[] getRawKey(byte[] seed) throws Exception 

Method Source Code

//package com.java2s;
import java.security.SecureRandom;

import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;

public class Main {
    private final static int JELLY_BEAN_4_2 = 17;

    private static byte[] getRawKey(byte[] seed) throws Exception {
        KeyGenerator kgen = KeyGenerator.getInstance("AES"); // , "SC");
        SecureRandom sr = null;/*from   w  w  w  .ja  v a 2  s. c o m*/
        if (android.os.Build.VERSION.SDK_INT >= JELLY_BEAN_4_2) {
            sr = SecureRandom.getInstance("SHA1PRNG", "Crypto");
        } else {
            sr = SecureRandom.getInstance("SHA1PRNG");
        }
        sr.setSeed(seed);
        try {
            kgen.init(256, sr);
            // kgen.init(128, sr);
        } catch (Exception e) {
            // Log.w(LOG,
            // "This device doesn't suppor 256bits, trying 192bits.");
            try {
                kgen.init(192, sr);
            } catch (Exception e1) {
                // Log.w(LOG,
                // "This device doesn't suppor 192bits, trying 128bits.");
                kgen.init(128, sr);
            }
        }
        SecretKey skey = kgen.generateKey();
        byte[] raw = skey.getEncoded();
        return raw;
    }
}

Related

  1. createKey(String password)
  2. getKeyBytes(String key)
  3. getRawKey(String key)
  4. getRawKey(byte[] seed)
  5. getRawKey(byte[] seed)
  6. getRawKey(byte[] seed)
  7. getRawKey(byte[] seed)
  8. getRawKey(byte[] seed)