Integer type name change.
[silc.git] / lib / silccrypt / silchash.h
index db7c58cb075a1f39bcc06243fd8896094d179d7c..8de3e5eb8db07bab37319c8efb44addef2c69df2 100644 (file)
 /* The default Silc hash object to represent any hash function in SILC. */
 typedef struct {
   char *name;
-  uint32 hash_len;
-  uint32 block_len;
+  SilcUInt32 hash_len;
+  SilcUInt32 block_len;
 
   void (*init)(void *);
-  void (*update)(void *, unsigned char *, uint32);
+  void (*update)(void *, unsigned char *, SilcUInt32);
   void (*final)(void *, unsigned char *);
-  void (*transform)(uint32 *, unsigned char *);
-  uint32 (*context_len)();
+  void (*transform)(SilcUInt32 *, unsigned char *);
+  SilcUInt32 (*context_len)();
 } SilcHashObject;
 
 /* The main SILC hash structure. Use SilcHash instead of SilcHashStruct.
@@ -41,15 +41,19 @@ typedef struct SilcHashStruct {
   void *context;
 
   void (*make_hash)(struct SilcHashStruct *, const unsigned char *, 
-                   uint32, unsigned char *);
+                   SilcUInt32, unsigned char *);
 } *SilcHash;
 
-extern struct SilcHashListStruct *silc_hash_list;
-
 /* Marks for all hash functions. This can be used in silc_hash_unregister
    to unregister all hash function at once. */
 #define SILC_ALL_HASH_FUNCTIONS ((SilcHashObject *)1)
 
+/* Default hash functions for silc_hash_register_default(). */
+extern DLLAPI SilcHashObject silc_default_hash[];
+
+/* Default HASH function in the SILC protocol */
+#define SILC_DEFAULT_HASH "sha1"
+
 /* Macros */
 
 /* Following macros are used to implement the SILC Hash API. These
@@ -70,26 +74,29 @@ extern struct SilcHashListStruct *silc_hash_list;
 void silc_##hash##_init(void *context)
 #define SILC_HASH_API_UPDATE(hash)                             \
 void silc_##hash##_update(void *context, unsigned char *data,  \
-                                       uint32 len)
+                                       SilcUInt32 len)
 #define SILC_HASH_API_FINAL(hash)                              \
 void silc_##hash##_final(void *context, unsigned char *digest)
 #define SILC_HASH_API_TRANSFORM(hash)                                  \
-void silc_##hash##_transform(uint32 *state,                    \
+void silc_##hash##_transform(SilcUInt32 *state,                        \
                                          unsigned char *buffer)
 #define SILC_HASH_API_CONTEXT_LEN(hash)                \
-uint32 silc_##hash##_context_len()
+SilcUInt32 silc_##hash##_context_len()
 
 /* Prototypes */
-int silc_hash_register(SilcHashObject *hash);
-int silc_hash_unregister(SilcHashObject *hash);
-int silc_hash_alloc(const unsigned char *name, SilcHash *new_hash);
+bool silc_hash_register(SilcHashObject *hash);
+bool silc_hash_unregister(SilcHashObject *hash);
+bool silc_hash_register_default(void);
+bool silc_hash_alloc(const unsigned char *name, SilcHash *new_hash);
 void silc_hash_free(SilcHash hash);
-uint32 silc_hash_len(SilcHash hash);
-int silc_hash_is_supported(const unsigned char *name);
-char *silc_hash_get_supported();
+SilcUInt32 silc_hash_len(SilcHash hash);
+bool silc_hash_is_supported(const unsigned char *name);
+char *silc_hash_get_supported(void);
 void silc_hash_make(SilcHash hash, const unsigned char *data,
-                   uint32 len, unsigned char *return_hash);
+                   SilcUInt32 len, unsigned char *return_hash);
 char *silc_hash_fingerprint(SilcHash hash, const unsigned char *data,
-                           uint32 data_len);
+                           SilcUInt32 data_len);
+char *silc_hash_babbleprint(SilcHash hash, const unsigned char *data,
+                           SilcUInt32 data_len);
 
 #endif