code: function (sessionKey) {
  
          //The first 16 bytes (MSB first) will be the key, the next 16 bytes (MSB first) will be the initialization vector (IV), and the final 8 bytes (MSB first) will be the salt.
          var key = new Buffer(16); //just the key... +8); //key plus salt
          var iv = new Buffer(16); //initialization vector
  
          sessionKey.copy(key, 0, 0, 16); //copy the key
          //sessionKey.copy(key, 16, 32, 40); //append the 8-byte salt
          sessionKey.copy(iv, 0, 16, 32); //copy the iv
  
          //are we not be doing something with the salt here?
  
          return crypto.createCipheriv('aes-128-cbc', key, iv);
      }
docs: Returns a readable/writeable aes 128 cbc stream for communicating
  with the spark core
  @param sessionKey
  @returns {*}
  @constructor