int main(int argc, char *argv[]) {
  unsigned char *sourceFile;
  unsigned char *dstFile;
  unsigned char key[AES_BLOCK_SIZE];
  unsigned int i;

  // check command args
  if (argc != 3 && argc != 5) {
    printf("decrypt_dir src_file dst_file -k key\n");
    return -1;
  }

  sourceFile = argv[1];
  dstFile = argv[2];

  for (i = 0; i < AES_BLOCK_SIZE; i++) {
    key[i] = 32 + i;
  }

  if (argc == 5) {
    if (strlen(argv[4]) >= 16) {
      argv[4][15] = '\0';
    }
    sprintf(key, "%s", argv[4]);
  }

  unsigned char *content = readFileContent(sourceFile);
  unsigned char *decryptContent = aes_decrypt_cbc_str(key, content);
  writeContentToFile(decryptContent, dstFile);

  free(content);
  free(decryptContent);

  return 0;
}
void SvgBasicShapeWriter::writeShapes(const char *filePath, SvgBasicShape **shapes, const int size) {
	delete[] content;
	content = new char[MAX_XML_LEN];
	content[0] = '\0';

	writeXmlTemplate();

	for(int i = 0; i < size; i ++) {
		strcat(content, "\t");
		addContent(shapes[i]->toXmlElement());
		strcat(content, "\n");
	}

	strcat(content, "</svg");
	writeContentToFile(filePath);
}