code: func encrypt(block cipher.Block, value []byte) ([]byte, error) {
  	iv := GenerateRandomKey(block.BlockSize())
  	if iv == nil {
  		return nil, errGeneratingIV
  	}
  	// Encrypt it.
  	stream := cipher.NewCTR(block, iv)
  	stream.XORKeyStream(value, value)
  	// Return iv + ciphertext.
  	return append(iv, value...), nil
  }
docs: // Encryption -----------------------------------------------------------------
  // encrypt encrypts a value using the given block in counter mode.
  //
  // A random initialization vector (http://goo.gl/zF67k) with the length of the
  // block size is prepended to the resulting ciphertext.