|
Packit |
762fc5 |
/* aide, Advanced Intrusion Detection Environment
|
|
Packit |
762fc5 |
*
|
|
Packit |
762fc5 |
* Copyright (C) 2000-2002,2005,2006 Rami Lehti,Pablo Virolainen,
|
|
Packit |
762fc5 |
* Richard van den Berg
|
|
Packit |
762fc5 |
* $Header$
|
|
Packit |
762fc5 |
*
|
|
Packit |
762fc5 |
* This program is free software; you can redistribute it and/or
|
|
Packit |
762fc5 |
* modify it under the terms of the GNU General Public License as
|
|
Packit |
762fc5 |
* published by the Free Software Foundation; either version 2 of the
|
|
Packit |
762fc5 |
* License, or (at your option) any later version.
|
|
Packit |
762fc5 |
*
|
|
Packit |
762fc5 |
* This program is distributed in the hope that it will be useful, but
|
|
Packit |
762fc5 |
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
762fc5 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
762fc5 |
* General Public License for more details.
|
|
Packit |
762fc5 |
*
|
|
Packit |
762fc5 |
* You should have received a copy of the GNU General Public License
|
|
Packit |
762fc5 |
* along with this program; if not, write to the Free Software
|
|
Packit |
762fc5 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
Packit |
762fc5 |
*/
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
#ifndef _MD_H_INCLUDED
|
|
Packit |
762fc5 |
#define _MD_H_INCLUDED
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
#include "aide.h"
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
/*
|
|
Packit |
762fc5 |
This should come from configure-script.
|
|
Packit |
762fc5 |
*/
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
#include "db_config.h"
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
#ifdef WITH_MHASH
|
|
Packit |
762fc5 |
#include <mhash.h>
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
#ifdef HAVE_MHASH_WHIRLPOOL
|
|
Packit |
762fc5 |
# define HASH_MHASH_COUNT MHASH_WHIRLPOOL /* WHIRLPOOL == 22 on 2006-10-11 */
|
|
Packit |
762fc5 |
#else
|
|
Packit |
762fc5 |
# define HASH_MHASH_COUNT MHASH_RIPEMD320
|
|
Packit |
762fc5 |
#endif
|
|
Packit |
762fc5 |
#define MHASH_RMD160 MHASH_RIPEMD160
|
|
Packit |
762fc5 |
#define MHASH_HAVAL MHASH_HAVAL256
|
|
Packit |
762fc5 |
#endif
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
#ifdef WITH_GCRYPT
|
|
Packit |
762fc5 |
#include <gcrypt.h>
|
|
Packit |
762fc5 |
#define HASH_GCRYPT_COUNT GCRY_MD_CRC32
|
|
Packit |
762fc5 |
#ifndef WITH_MHASH
|
|
Packit |
762fc5 |
#define HASH_USE_GCRYPT (DB_MD5|DB_SHA1|DB_RMD160|DB_TIGER|DB_CRC32|\
|
|
Packit |
762fc5 |
DB_HAVAL|DB_CRC32|DB_SHA256|DB_SHA512)
|
|
Packit |
762fc5 |
#endif
|
|
Packit |
762fc5 |
#endif
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
/*
|
|
Packit |
762fc5 |
Lengths. Hope I got there right :)
|
|
Packit |
762fc5 |
*/
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
#define HASH_MD5_LEN 16
|
|
Packit |
762fc5 |
#define HASH_SHA1_LEN 20
|
|
Packit |
762fc5 |
#define HASH_RMD160_LEN 20
|
|
Packit |
762fc5 |
#define HASH_TIGER_LEN 24
|
|
Packit |
762fc5 |
#define HASH_GOST_LEN 32
|
|
Packit |
762fc5 |
#define HASH_HAVAL224_LEN 28
|
|
Packit |
762fc5 |
#define HASH_HAVAL192_LEN 24
|
|
Packit |
762fc5 |
#define HASH_HAVAL160_LEN 20
|
|
Packit |
762fc5 |
#define HASH_HAVAL128_LEN 16
|
|
Packit |
762fc5 |
#define HASH_HAVAL256_LEN 32
|
|
Packit |
762fc5 |
#define HASH_TIGER128_LEN 16
|
|
Packit |
762fc5 |
#define HASH_TIGER160_LEN 20
|
|
Packit |
762fc5 |
#define HASH_MD4_LEN 16
|
|
Packit |
762fc5 |
#define HASH_SHA256_LEN 32
|
|
Packit |
762fc5 |
#define HASH_SHA512_LEN 64
|
|
Packit |
762fc5 |
#define HASH_WHIRLPOOL_LEN 64
|
|
Packit |
762fc5 |
#define HASH_ADLER32_LEN 4
|
|
Packit |
762fc5 |
#define HASH_CRC32B_LEN 4
|
|
Packit |
762fc5 |
#define HASH_CRC32_LEN 4
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
/*
|
|
Packit |
762fc5 |
What we use from what library?
|
|
Packit |
762fc5 |
*/
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
#ifdef WITH_MHASH
|
|
Packit |
762fc5 |
#define HASH_USE_MHASH (DB_MD5|DB_SHA1|DB_RMD160|DB_TIGER|DB_CRC32|\
|
|
Packit |
762fc5 |
DB_HAVAL|DB_GOST|DB_CRC32|\
|
|
Packit |
762fc5 |
DB_SHA256|DB_SHA512|DB_WHIRLPOOL)
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
#define HASH_USE_GCRYPT (0)
|
|
Packit |
762fc5 |
#endif
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
/*
|
|
Packit |
762fc5 |
This struct hold's internal data needed for md-calls.
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
*/
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
typedef struct md_container {
|
|
Packit |
762fc5 |
/*
|
|
Packit |
762fc5 |
final hashes. There might be more these than AIDE currently supports,
|
|
Packit |
762fc5 |
but that should be an easy task.
|
|
Packit |
762fc5 |
*/
|
|
Packit |
762fc5 |
char crc32[HASH_CRC32_LEN];
|
|
Packit |
762fc5 |
char md5[HASH_MD5_LEN];
|
|
Packit |
762fc5 |
char sha1[HASH_SHA1_LEN];
|
|
Packit |
762fc5 |
char haval[HASH_HAVAL256_LEN];
|
|
Packit |
762fc5 |
char rmd160[HASH_RMD160_LEN];
|
|
Packit |
762fc5 |
char tiger[HASH_TIGER_LEN];
|
|
Packit |
762fc5 |
char gost[HASH_GOST_LEN];
|
|
Packit |
762fc5 |
char crc32b[HASH_CRC32B_LEN];
|
|
Packit |
762fc5 |
char haval224[HASH_HAVAL224_LEN];
|
|
Packit |
762fc5 |
char haval192[HASH_HAVAL192_LEN];
|
|
Packit |
762fc5 |
char haval160[HASH_HAVAL160_LEN];
|
|
Packit |
762fc5 |
char haval128[HASH_HAVAL128_LEN];
|
|
Packit |
762fc5 |
char tiger128[HASH_TIGER128_LEN];
|
|
Packit |
762fc5 |
char tiger160[HASH_TIGER160_LEN];
|
|
Packit |
762fc5 |
char md4[HASH_MD4_LEN];
|
|
Packit |
762fc5 |
char sha256[HASH_SHA256_LEN];
|
|
Packit |
762fc5 |
char sha512[HASH_SHA512_LEN];
|
|
Packit |
762fc5 |
char adler32[HASH_ADLER32_LEN];
|
|
Packit |
762fc5 |
char whirlpool[HASH_WHIRLPOOL_LEN];
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
/*
|
|
Packit |
762fc5 |
Attr which are to be calculated.
|
|
Packit |
762fc5 |
*/
|
|
Packit |
762fc5 |
DB_ATTR_TYPE calc_attr;
|
|
Packit |
762fc5 |
/*
|
|
Packit |
762fc5 |
Attr which are not (yet) to be calculated.
|
|
Packit |
762fc5 |
After init hold's hashes which are not calculated :)
|
|
Packit |
762fc5 |
*/
|
|
Packit |
762fc5 |
DB_ATTR_TYPE todo_attr;
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
/*
|
|
Packit |
762fc5 |
Variables needed to cope with the library.
|
|
Packit |
762fc5 |
*/
|
|
Packit |
762fc5 |
#ifdef WITH_MHASH
|
|
Packit |
762fc5 |
MHASH mhash_mdh[HASH_MHASH_COUNT+1];
|
|
Packit |
762fc5 |
#endif
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
#ifdef WITH_GCRYPT
|
|
Packit |
762fc5 |
gcry_md_hd_t mdh;
|
|
Packit |
762fc5 |
#endif
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
} md_container;
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
int init_md(struct md_container*);
|
|
Packit |
762fc5 |
int update_md(struct md_container*,void*,ssize_t);
|
|
Packit |
762fc5 |
int close_md(struct md_container*);
|
|
Packit |
762fc5 |
void md2line(struct md_container*,struct db_line*);
|
|
Packit Service |
0ad43c |
DB_ATTR_TYPE get_available_crypto();
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
|
|
Packit |
762fc5 |
#endif /*_MD_H_INCLUDED*/
|