Main Page   Data Structures   File List   Data Fields   Globals  

hash.h

Go to the documentation of this file.
00001 
00005 #ifndef _CYFER_HASH_H_
00006 #define _CYFER_HASH_H_
00007 
00008 #define CYFER_HASH_NONE 0
00009 #define CYFER_HASH_MD4 1
00010 #define CYFER_HASH_MD5 2
00011 #define CYFER_HASH_SHA1 3
00012 #define CYFER_HASH_RMD160 4
00013 #define CYFER_HASH_ADLER32 5
00014 #define CYFER_HASH_SNEFRU 6
00015 #define CYFER_HASH_CRC32 7
00016 #define CYFER_HASH_MD2 8
00017 #define CYFER_HASH_SHA256 9
00018 
00019 #ifdef CYFER_INTERNAL
00020 #include <md4.h>
00021 #include <md5.h>
00022 #include <sha1.h>
00023 #include <rmd160.h>
00024 #include <adler32.h>
00025 #include <snefru.h>
00026 #include <crc32.h>
00027 #include <md2.h>
00028 #include <sha256.h>
00029 
00030 typedef struct {
00031         int type;
00032         union {
00033                 MD4_CTX md4;
00034                 MD5_CTX md5;
00035                 SHA1_CTX sha1;
00036                 RMD160_CTX rmd160;
00037                 ADLER32_CTX adler32;
00038                 SNEFRU_CTX snefru;
00039                 CRC32_CTX crc32;
00040                 MD2_CTX md2;
00041                 SHA256_CTX sha256;
00042         } u;
00043 } CYFER_HASH_CTX;
00044 #else
00045 #include <cyfer/cyfer.h>
00047 typedef void CYFER_HASH_CTX;
00048 #endif
00049 
00051 typedef struct {
00053         int type;
00055         char *name;
00057         size_t length;
00058 } CYFER_Hash_t;
00059 
00060 #ifdef __cplusplus
00061 extern "C" {
00062 #endif 
00063 
00065 CYFER_API CYFER_Hash_t *CYFER_Hash_Get_Supported(void);
00066 
00071 CYFER_API int CYFER_Hash_Select(const char *name, size_t *length);
00072 
00076 CYFER_API CYFER_HASH_CTX *CYFER_Hash_Init(int type);
00077 
00078 
00083 CYFER_API void CYFER_Hash_Update(CYFER_HASH_CTX *ctx, const unsigned char *data, size_t len);
00084 
00089 CYFER_API void CYFER_Hash_Finish(CYFER_HASH_CTX *ctx, unsigned char *md);
00090 
00096 CYFER_API int CYFER_Hash(int type, const unsigned char *data, size_t len, unsigned char *md);
00097 
00098 #ifdef __cplusplus
00099 };
00100 #endif 
00101 
00102 #endif /* _CYFER_HASH_H_ */
00103 

Generated on Sun Sep 26 13:53:58 2004 for Cyfer by doxygen1.3-rc3