title: Using Forge to encrypt/decrypt AES
body: <p>I want to create two functions encrypt(message, key) and decrypt(ciphertext, key) using the <a href="https://github.com/digitalbazaar/forge#aes" rel="nofollow">Forge</a> library in javascript, but I dont undestand the example code.</p>
  
  <pre><code>// generate a random key and IV
  var key = forge.random.getBytesSync(16);
  var iv = forge.random.getBytesSync(16);
  
  // encrypt some bytes using CBC mode
  // (other modes include: CFB, OFB, and CTR)
  var cipher = forge.aes.createEncryptionCipher(key, 'CBC');
  cipher.start(iv);
  cipher.update(forge.util.createBuffer(someBytes));
  cipher.finish();
  var encrypted = cipher.output;
  // outputs encrypted hex
  console.log(encrypted.toHex());
  
  // decrypt some bytes using CBC mode
  // (other modes include: CFB, OFB, and CTR)
  var cipher = forge.aes.createDecryptionCipher(key, 'CBC');
  cipher.start(iv);
  cipher.update(encrypted);
  cipher.finish();
  // outputs decrypted hex
  console.log(cipher.output.toHex());
  
  // generate a password-based 16-byte key
  var salt = forge.random.getBytesSync(128);
  var derivedKey = forge.pkcs5.pbkdf2('password', salt, numIterations, 16);
  </code></pre>
  
  <p>Where should I use my own key?
  Where can I choose 256 bit mode?
  Can you give me an easier example?</p>