libclamav/xar.h
ca019d6d
 /*
c442ca9c
  *  Copyright (C) 2013-2019 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
ca019d6d
  *  Copyright (C) 2013 Sourcefire, Inc.
  *
  *  Authors: David Raynor <draynor@sourcefire.com>
  *
  *  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 __XAR_H
 #define __XAR_H
 
 #if HAVE_CONFIG_H
 #include "clamav-config.h"
 #endif
 
95b2d68c
 #include "clamav-types.h"
ca019d6d
 #include "others.h"
 
 #ifndef HAVE_ATTRIB_PACKED
 #define __attribute__(x)
 #endif
 
 #ifdef HAVE_PRAGMA_PACK
 #pragma pack(1)
 #endif
 
 #ifdef HAVE_PRAGMA_PACK_HPPA
 #pragma pack 1
 #endif
 
 struct xar_header {
     uint32_t magic;
     uint16_t size;
     uint16_t version;
     uint64_t toc_length_compressed;
     uint64_t toc_length_decompressed;
     uint32_t chksum_alg; /* 0 = none */
 };
 
5e56b827
 #define XAR_HEADER_MAGIC 0x78617221
 #define XAR_HEADER_VERSION 0
 
e3f87685
 #define XAR_CKSUM_NONE   0
 #define XAR_CKSUM_SHA1   1
 #define XAR_CKSUM_MD5    2
 #define XAR_CKSUM_OTHER  3
 
ca019d6d
 #ifdef HAVE_PRAGMA_PACK
 #pragma pack()
 #endif
 
 #ifdef HAVE_PRAGMA_PACK_HPPA
 #pragma pack
 #endif
 
 int cli_scanxar(cli_ctx *ctx);
 
 #endif