title: AES encryption: InvalidKeyException: Key length not 128/192/256 bits
body: <p>I'm trying to encrypt a string on Android with AES. The symmetric key is determined previously with the Diffie-Hellman algorithm and seems to be ok (Key Length is 128 Bit, see below).<br>
  Nevertheless, I get a  <code>InvalidKeyException: "Key length not 128/192/256 bits.</code>"</p>
  
  <p>Code:</p>
  
  <pre><code>KeyAgreement keyAgree = KeyAgreement.getInstance("DH", "BC");
  keyAgree.init(this.smartphonePrivKey);
  keyAgree.doPhase(serverPubKey, true);
  SecretKey key = keyAgree.generateSecret("AES");
  System.out.println("Key Length: " + key.getEncoded().length);
  System.out.println("Key Algorithm: "+ key.getAlgorithm());
  System.out.println("Key Format: "+ key.getFormat());
  
  byte[] encrypted = null;
    Cipher cipher;
    try {
     cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
     System.out.println("Allowed Key Length: "
       + cipher.getMaxAllowedKeyLength("AES"));
     cipher.init(Cipher.ENCRYPT_MODE, key);
     encrypted = cipher.doFinal("YEAH".getBytes("UTF8"));
    } catch (NoSuchAlgorithmException e) {
     e.printStackTrace();
    } catch (NoSuchPaddingException e) {
     e.printStackTrace();
    } catch (InvalidKeyException e) {
     e.printStackTrace();
    } catch (IllegalBlockSizeException e) {
     e.printStackTrace();
    } catch (BadPaddingException e) {
     e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
     e.printStackTrace();
    }
  </code></pre>
  
  <p>The above Code leads to the following output:  </p>
  
  <pre><code>_12-10 20:24:53.119: INFO/System.out(757): Key Length: 128_  
  _12-10 20:24:53.119: INFO/System.out(757): Key Algorithm: AES_   
  _12-10 20:24:53.119: INFO/System.out(757): Key Format: RAW_  
  _12-10 20:24:53.470: INFO/System.out(757): Allowed Key Length: 2147483647_ 
  </code></pre>
  
  <p>After that, I get the <code>InvalidKeyException: Key length not 128/192/256 bits.</code> But as you can see, the SecretKey has a length of 128 Bits!  </p>
  
  <p>Any ideas?</p>