public static MasterPrivateKey createFromEncryptedSeed(String passphrase,byte[] encryptedSeed) throws HyperLedgerException {
  try {
    byte[] key=SCrypt.generate(passphrase.getBytes("UTF-8"),BITCOIN_SEED,16384,8,8,32);
    SecretKeySpec keyspec=new SecretKeySpec(key,"AES");
    if (encryptedSeed.length != 32) {
      throw new HyperLedgerException("Incorrect encrypted seed length");
    }
    Cipher cipher=Cipher.getInstance("AES/ECB/NoPadding","BC");
    cipher.init(Cipher.DECRYPT_MODE,keyspec);
    return create(cipher.doFinal(encryptedSeed));
  }
 catch (  UnsupportedEncodingException|NoSuchPaddingException|NoSuchProviderException|NoSuchAlgorithmException|InvalidKeyException|BadPaddingException|IllegalBlockSizeException e) {
    throw new HyperLedgerException(e);
  }
}

public static MasterPrivateKey createFromEncryptedSeed ( String passphrase , byte [ ] encryptedSeed ) throws HyperLedgerException { try { byte [ ] key = SCrypt . generate ( passphrase . getBytes ( "UTF-8" ) , BITCOIN_SEED , 16384 , 8 , 8 , 32 ) ; SecretKeySpec keyspec = new SecretKeySpec ( key , "AES" ) ; if ( encryptedSeed . length != 32 ) { throw new HyperLedgerException ( "Incorrect encrypted seed length" ) ; } Cipher cipher = Cipher . getInstance ( "AES/ECB/NoPadding" , "BC" ) ; cipher . init ( Cipher . DECRYPT_MODE , keyspec ) ; return create ( cipher . doFinal ( encryptedSeed ) ) ; } catch ( UnsupportedEncodingException | NoSuchPaddingException | NoSuchProviderException | NoSuchAlgorithmException | InvalidKeyException | BadPaddingException | IllegalBlockSizeException e ) { throw new HyperLedgerException ( e ) ; } }
create a masterprivatekey from a seed , that is assumed to be encrypted . in practice often simply random .
