Added SILC Server library.
[silc.git] / lib / silccrypt / silchash.c
index 7fcbf4411ef72aa1eec1e91fc4a7b08459053516..34aff02bb6adabed5f90f37855471eef3722963d 100644 (file)
@@ -1,10 +1,10 @@
 /*
 
-  silchash.c 
+  silchash.c
 
   Author: Pekka Riikonen <priikone@silcnet.org>
 
-  Copyright (C) 1997 - 2002 Pekka Riikonen
+  Copyright (C) 1997 - 2005 Pekka Riikonen
 
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@
 */
 /* $Id$ */
 
-#include "silcincludes.h"
+#include "silc.h"
 
 #include "md5.h"
 #include "sha1.h"
@@ -36,12 +36,12 @@ SilcDList silc_hash_list = NULL;
 #endif /* SILC_EPOC */
 
 /* Default hash functions for silc_hash_register_default(). */
-const SilcHashObject silc_default_hash[] = 
+const SilcHashObject silc_default_hash[] =
 {
-  { "sha1", 20, 64, silc_sha1_init, silc_sha1_update, silc_sha1_final,
-    silc_sha1_transform, silc_sha1_context_len },
   { "sha256", 32, 64, silc_sha256_init, silc_sha256_update, silc_sha256_final,
     silc_sha256_transform, silc_sha256_context_len },
+  { "sha1", 20, 64, silc_sha1_init, silc_sha1_update, silc_sha1_final,
+    silc_sha1_transform, silc_sha1_context_len },
   { "md5", 16, 64, silc_md5_init, silc_md5_update, silc_md5_final,
     silc_md5_transform, silc_md5_context_len },
 
@@ -51,7 +51,7 @@ const SilcHashObject silc_default_hash[] =
 /* Registers a new hash function into the SILC. This function is used at
    the initialization of the SILC. */
 
-bool silc_hash_register(const SilcHashObject *hash)
+SilcBool silc_hash_register(const SilcHashObject *hash)
 {
 #ifndef SILC_EPOC
   SilcHashObject *new;
@@ -89,7 +89,7 @@ bool silc_hash_register(const SilcHashObject *hash)
 
 /* Unregister a hash function from the SILC. */
 
-bool silc_hash_unregister(SilcHashObject *hash)
+SilcBool silc_hash_unregister(SilcHashObject *hash)
 {
 #ifndef SILC_EPOC
   SilcHashObject *entry;
@@ -119,11 +119,11 @@ bool silc_hash_unregister(SilcHashObject *hash)
   return FALSE;
 }
 
-/* Function that registers all the default hash funcs (all builtin ones). 
+/* Function that registers all the default hash funcs (all builtin ones).
    The application may use this to register the default hash funcs if
    specific hash funcs in any specific order is not wanted. */
 
-bool silc_hash_register_default(void)
+SilcBool silc_hash_register_default(void)
 {
 #ifndef SILC_EPOC
   int i;
@@ -135,7 +135,7 @@ bool silc_hash_register_default(void)
   return TRUE;
 }
 
-bool silc_hash_unregister_all(void)
+SilcBool silc_hash_unregister_all(void)
 {
 #ifndef SILC_EPOC
   SilcHashObject *entry;
@@ -156,10 +156,10 @@ bool silc_hash_unregister_all(void)
 /* Allocates a new SilcHash object. New object is returned into new_hash
    argument. */
 
-bool silc_hash_alloc(const unsigned char *name, SilcHash *new_hash)
+SilcBool silc_hash_alloc(const unsigned char *name, SilcHash *new_hash)
 {
   SilcHashObject *entry = NULL;
-  
+
   SILC_LOG_DEBUG(("Allocating new hash object"));
 
 #ifndef SILC_EPOC
@@ -226,7 +226,7 @@ const char *silc_hash_get_name(SilcHash hash)
 
 /* Returns TRUE if hash algorithm `name' is supported. */
 
-bool silc_hash_is_supported(const unsigned char *name)
+SilcBool silc_hash_is_supported(const unsigned char *name)
 {
 #ifndef SILC_EPOC
   SilcHashObject *entry;
@@ -263,8 +263,8 @@ char *silc_hash_get_supported(void)
     while ((entry = silc_dlist_get(silc_hash_list)) != SILC_LIST_END) {
       len += strlen(entry->name);
       list = silc_realloc(list, len + 1);
-      
-      memcpy(list + (len - strlen(entry->name)), 
+
+      memcpy(list + (len - strlen(entry->name)),
             entry->name, strlen(entry->name));
       memcpy(list + len, ",", 1);
       len++;
@@ -277,8 +277,8 @@ char *silc_hash_get_supported(void)
       entry = (SilcHashObject *)&(silc_default_hash[i]);
       len += strlen(entry->name);
       list = silc_realloc(list, len + 1);
-      
-      memcpy(list + (len - strlen(entry->name)), 
+
+      memcpy(list + (len - strlen(entry->name)),
             entry->name, strlen(entry->name));
       memcpy(list + len, ",", 1);
       len++;
@@ -293,7 +293,7 @@ char *silc_hash_get_supported(void)
 
 /* Creates the hash value and returns it to the return_hash argument. */
 
-void silc_hash_make(SilcHash hash, const unsigned char *data, 
+void silc_hash_make(SilcHash hash, const unsigned char *data,
                    SilcUInt32 len, unsigned char *return_hash)
 {
   silc_hash_init(hash);
@@ -378,15 +378,15 @@ char *silc_hash_babbleprint(SilcHash hash, const unsigned char *data,
   babbleprint[0] = co[16];
 
   check = 1;
-  for (i = 0, k = 1; i < hash->hash->hash_len - 1; i += 2, k += 6) { 
+  for (i = 0, k = 1; i < hash->hash->hash_len - 1; i += 2, k += 6) {
     a = (((hval[i] >> 6) & 3) + check) % 6;
     b = (hval[i] >> 2) & 15;
     c = ((hval[i] & 3) + (check / 6)) % 6;
     d = (hval[i + 1] >> 4) & 15;
     e = hval[i + 1] & 15;
-    
+
     check = ((check * 5) + (hval[i] * 7) + hval[i + 1]) % 36;
-    
+
     babbleprint[k + 0] = vo[a];
     babbleprint[k + 1] = co[b];
     babbleprint[k + 2] = vo[c];
@@ -402,7 +402,7 @@ char *silc_hash_babbleprint(SilcHash hash, const unsigned char *data,
     babbleprint[k + 0] = vo[a];
     babbleprint[k + 1] = co[b];
     babbleprint[k + 2] = vo[c];
-  } else { 
+  } else {
     a = check % 6;
     b = 16;
     c = check / 6;