Added SILC Server library.
[silc.git] / lib / silccrypt / silccipher.h
index 5947533430aba237c4dca56405e11f41584c040d..472b0ab8edeea4ffe11b6a53b1d32acf938b3387 100644 (file)
@@ -4,12 +4,12 @@
 
   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
   the Free Software Foundation; version 2 of the License.
-  
+
   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
@@ -33,7 +33,7 @@
 /****s* silccrypt/SilcCipherAPI/SilcCipher
  *
  * NAME
- * 
+ *
  *    typedef struct { ... } SilcCipher;
  *
  * DESCRIPTION
@@ -52,11 +52,11 @@ typedef struct {
   SilcUInt32 block_len;
   SilcUInt32 key_len;
 
-  bool (*set_key)(void *, const unsigned char *, SilcUInt32);
-  bool (*set_key_with_string)(void *, const unsigned char *, SilcUInt32);
-  bool (*encrypt)(void *, const unsigned char *, unsigned char *,
+  SilcBool (*set_key)(void *, const unsigned char *, SilcUInt32);
+  SilcBool (*set_key_with_string)(void *, const unsigned char *, SilcUInt32);
+  SilcBool (*encrypt)(void *, const unsigned char *, unsigned char *,
                  SilcUInt32, unsigned char *);
-  bool (*decrypt)(void *, const unsigned char *, unsigned char *, 
+  SilcBool (*decrypt)(void *, const unsigned char *, unsigned char *,
                  SilcUInt32, unsigned char *);
   SilcUInt32 (*context_len)();
 } SilcCipherObject;
@@ -89,21 +89,21 @@ extern DLLAPI const SilcCipherObject silc_default_ciphers[];
 /* These macros can be used to implement the SILC Crypto API and to avoid
    errors in the API these macros should be used always. */
 #define SILC_CIPHER_API_SET_KEY(cipher)                        \
-bool silc_##cipher##_set_key(void *context,            \
+SilcBool silc_##cipher##_set_key(void *context,                \
                             const unsigned char *key,  \
                             SilcUInt32 keylen)
 #define SILC_CIPHER_API_SET_KEY_WITH_STRING(cipher)                    \
-bool silc_##cipher##_set_key_with_string(void *context,                        \
+SilcBool silc_##cipher##_set_key_with_string(void *context,                    \
                                         const unsigned char *string,   \
                                         SilcUInt32 stringlen)
 #define SILC_CIPHER_API_ENCRYPT_CBC(cipher)                    \
-bool silc_##cipher##_encrypt_cbc(void *context,                        \
+SilcBool silc_##cipher##_encrypt_cbc(void *context,                    \
                                 const unsigned char *src,      \
                                 unsigned char *dst,            \
                                 SilcUInt32 len,                \
                                 unsigned char *iv)
 #define SILC_CIPHER_API_DECRYPT_CBC(cipher)                    \
-bool silc_##cipher##_decrypt_cbc(void *context,                        \
+SilcBool silc_##cipher##_decrypt_cbc(void *context,                    \
                                 const unsigned char *src,      \
                                 unsigned char *dst,            \
                                 SilcUInt32 len,                \
@@ -120,7 +120,7 @@ SilcUInt32 silc_##cipher##_context_len()
  *
  * SYNOPSIS
  *
- *    bool silc_cipher_register(const SilcCipherObject *cipher);
+ *    SilcBool silc_cipher_register(const SilcCipherObject *cipher);
  *
  * DESCRIPTION
  *
@@ -130,65 +130,65 @@ SilcUInt32 silc_##cipher##_context_len()
  *    as argument it has to be free'd after this function returns succesfully.
  *
  ***/
-bool silc_cipher_register(const SilcCipherObject *cipher);
+SilcBool silc_cipher_register(const SilcCipherObject *cipher);
 
 /****f* silccrypt/SilcCipherAPI/silc_cipher_unregister
  *
  * SYNOPSIS
  *
- *    bool silc_cipher_unregister(SilcCipherObject *cipher);
+ *    SilcBool silc_cipher_unregister(SilcCipherObject *cipher);
  *
  * DESCRIPTION
  *
  *    Unregister a cipher from the SILC.
  *
  ***/
-bool silc_cipher_unregister(SilcCipherObject *cipher);
+SilcBool silc_cipher_unregister(SilcCipherObject *cipher);
 
 /****f* silccrypt/SilcCipherAPI/silc_cipher_register_default
  *
  * SYNOPSIS
  *
- *    bool silc_cipher_register_default(void);
+ *    SilcBool silc_cipher_register_default(void);
  *
  * DESCRIPTION
  *
- *    Function that registers all the default ciphers (all builtin ciphers). 
+ *    Function that registers all the default ciphers (all builtin ciphers).
  *    The application may use this to register the default ciphers if specific
  *    ciphers in any specific order is not wanted.
  *
  ***/
-bool silc_cipher_register_default(void);
+SilcBool silc_cipher_register_default(void);
 
 /****f* silccrypt/SilcCipherAPI/silc_cipher_unregister_all
  *
  * SYNOPSIS
  *
- *    bool silc_cipher_unregister_all(void);
+ *    SilcBool silc_cipher_unregister_all(void);
  *
  * DESCRIPTION
  *
  *    Unregisters all ciphers.
  *
  ***/
-bool silc_cipher_unregister_all(void);
+SilcBool silc_cipher_unregister_all(void);
 
 /****f* silccrypt/SilcCipherAPI/silc_cipher_alloc
  *
  * SYNOPSIS
  *
- *    bool silc_cipher_alloc(const unsigned char *name,
+ *    SilcBool silc_cipher_alloc(const unsigned char *name,
  *                           SilcCipher *new_cipher);
  *
  * DESCRIPTION
  *
- *    Allocates a new SILC cipher object. Function returns 1 on succes and 0 
+ *    Allocates a new SILC cipher object. Function returns 1 on succes and 0
  *    on error. The allocated cipher is returned in new_cipher argument. The
  *    caller must set the key to the cipher after this function has returned
  *    by calling the ciphers set_key function.
  *
  ***/
-bool silc_cipher_alloc(const unsigned char *name, SilcCipher *new_cipher);
+SilcBool silc_cipher_alloc(const unsigned char *name, SilcCipher *new_cipher);
 
 /****f* silccrypt/SilcCipherAPI/silc_cipher_free
  *
@@ -207,14 +207,14 @@ void silc_cipher_free(SilcCipher cipher);
  *
  * SYNOPSIS
  *
- * bool silc_cipher_is_supported(const unsigned char *name);
+ * SilcBool silc_cipher_is_supported(const unsigned char *name);
  *
  * DESCRIPTION
  *
  *    Returns TRUE if cipher `name' is supported.
- * 
+ *
  ***/
-bool silc_cipher_is_supported(const unsigned char *name);
+SilcBool silc_cipher_is_supported(const unsigned char *name);
 
 /****f* silccrypt/SilcCipherAPI/silc_cipher_get_supported
  *
@@ -233,28 +233,30 @@ char *silc_cipher_get_supported(void);
  *
  * SYNOPSIS
  *
- *    bool silc_cipher_encrypt(SilcCipher cipher, const unsigned char *src,
- *                             unsigned char *dst, SilcUInt32 len, 
- *                             unsigned char *iv);
+ *    SilcBool silc_cipher_encrypt(SilcCipher cipher,
+ *                                 const unsigned char *src,
+ *                                 unsigned char *dst, SilcUInt32 len,
+ *                                 unsigned char *iv);
  *
  * DESCRIPTION
  *
  *    Encrypts data from `src' into `dst' with the specified cipher and
  *    Initial Vector (IV).  If the `iv' is NULL then the cipher's internal
  *    IV is used.  The `src' and `dst' maybe same buffer.
- * 
+ *
  ***/
-bool silc_cipher_encrypt(SilcCipher cipher, const unsigned char *src,
-                        unsigned char *dst, SilcUInt32 len, 
-                        unsigned char *iv);
+SilcBool silc_cipher_encrypt(SilcCipher cipher, const unsigned char *src,
+                            unsigned char *dst, SilcUInt32 len,
+                            unsigned char *iv);
 
 /****f* silccrypt/SilcCipherAPI/silc_cipher_decrypt
  *
  * SYNOPSIS
  *
- *    bool silc_cipher_decrypt(SilcCipher cipher, const unsigned char *src,
- *                             unsigned char *dst, SilcUInt32 len, 
- *                             unsigned char *iv);
+ *    SilcBool silc_cipher_decrypt(SilcCipher cipher,
+ *                                 const unsigned char *src,
+ *                                 unsigned char *dst, SilcUInt32 len,
+ *                                 unsigned char *iv);
  *
  * DESCRIPTION
  *
@@ -263,15 +265,15 @@ bool silc_cipher_encrypt(SilcCipher cipher, const unsigned char *src,
  *    IV is used.  The `src' and `dst' maybe same buffer.
  *
  ***/
-bool silc_cipher_decrypt(SilcCipher cipher, const unsigned char *src,
-                        unsigned char *dst, SilcUInt32 len, 
-                        unsigned char *iv);
+SilcBool silc_cipher_decrypt(SilcCipher cipher, const unsigned char *src,
+                            unsigned char *dst, SilcUInt32 len,
+                            unsigned char *iv);
 
 /****f* silccrypt/SilcCipherAPI/silc_cipher_set_key
  *
  * SYNOPSIS
  *
- *    bool silc_cipher_set_key(SilcCipher cipher, const unsigned char *key,
+ *    SilcBool silc_cipher_set_key(SilcCipher cipher, const unsigned char *key,
  *                             SilcUInt32 keylen);
  *
  * DESCRIPTION
@@ -280,8 +282,8 @@ bool silc_cipher_decrypt(SilcCipher cipher, const unsigned char *src,
  *    bits.
  *
  ***/
-bool silc_cipher_set_key(SilcCipher cipher, const unsigned char *key,
-                        SilcUInt32 keylen);
+SilcBool silc_cipher_set_key(SilcCipher cipher, const unsigned char *key,
+                            SilcUInt32 keylen);
 
 /****f* silccrypt/SilcCipherAPI/silc_cipher_set_iv
  *
@@ -291,7 +293,7 @@ bool silc_cipher_set_key(SilcCipher cipher, const unsigned char *key,
  *
  * DESCRIPTION
  *
- *    Sets the IV (initial vector) for the cipher.  The `iv' must be 
+ *    Sets the IV (initial vector) for the cipher.  The `iv' must be
  *    the size of the block size of the cipher.
  *
  ***/
@@ -305,9 +307,9 @@ void silc_cipher_set_iv(SilcCipher cipher, const unsigned char *iv);
  *
  * DESCRIPTION
  *
- *    Returns the IV (initial vector) of the cipher.  The returned 
+ *    Returns the IV (initial vector) of the cipher.  The returned
  *    pointer must not be freed by the caller.
- * 
+ *
  ***/
 unsigned char *silc_cipher_get_iv(SilcCipher cipher);
 
@@ -320,7 +322,7 @@ unsigned char *silc_cipher_get_iv(SilcCipher cipher);
  * DESCRIPTION
  *
  *    Returns the key length of the cipher in bits.
- * 
+ *
  ***/
 SilcUInt32 silc_cipher_get_key_len(SilcCipher cipher);