libclamav/hwp.h
9a1232d2
 /*
  * HWP Stuff
  * 
c442ca9c
  * Copyright (C) 2015-2019 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
9a1232d2
  * 
  * Authors: Kevin Lin
  * 
  * This program is free software; you can redistribute it and/or modify it under
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  * 
  * This program is distributed in the hope that it will be useful, but WITHOUT
  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  * more details.
  * 
  * You should have received a copy of the GNU General Public License along with
  * this program; if not, write to the Free Software Foundation, Inc., 51
  * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #ifndef __HWP_H__
 #define __HWP_H__
 
 #include "others.h"
 
 #define HWP5_COMPRESSED     0x1
 #define HWP5_PASSWORD       0x2
 #define HWP5_DISTRIBUTABLE  0x4
 #define HWP5_SCRIPT         0x8
 #define HWP5_DRM            0x10
 #define HWP5_XMLTEMPLATE    0x20
 #define HWP5_HISTORY        0x40
 #define HWP5_CERT_SIGNED    0x80
 #define HWP5_CERT_ENCRYPTED 0x100
 #define HWP5_CERT_EXTRA     0x200
 #define HWP5_CERT_DRM       0x400
 #define HWP5_CCL            0x800
 
 typedef struct hwp5_header {
     uint8_t signature[32];
     uint32_t version;
     uint32_t flags;
     /* uint8_t reserved[216] */
 } hwp5_header_t;
 
6cd5a9dc
 /* HWP EMBEDDED OLE2 - 4-byte prefixed OLE2 */
 int cli_scanhwpole2(cli_ctx *ctx);
 
9a1232d2
 /* HWP 5.0 - OLE2 */
9103b7e9
 int cli_hwp5header(cli_ctx *ctx, hwp5_header_t *hwp5);
d39cb658
 int cli_scanhwp5_stream(cli_ctx *ctx, hwp5_header_t *hwp5, char *name, int fd, const char *filepath);
9103b7e9
 
 /* HWP 3.0 - UNIQUE FORMAT */
 int cli_scanhwp3(cli_ctx *ctx);
9a1232d2
 
d2eea44a
 /* HWPML - SINGLE XML DOCUMENT (similar to MSXML) */
 int cli_scanhwpml(cli_ctx *ctx);
 
9a1232d2
 #endif /* __HWP_H__ */