updates.
[silc.git] / lib / silcske / silcske_status.h
index f223354bc50f7ef87cac7d3d6c9d3ce28f71b0bc..4ca238de02a1750797c763b3fad56cac6b0cac68 100644 (file)
@@ -1,16 +1,15 @@
 /*
 
-  silcske_status.h
+  silcske_status.h 
 
   Author: Pekka Riikonen <priikone@silcnet.org>
 
-  Copyright (C) 2000 - 2001 Pekka Riikonen
+  Copyright (C) 2000 - 2002 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; either version 2 of the License, or
-  (at your option) any later version.
-  
+  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
 
 */
 
+/****h* silcske/SilcSKEStatuses
+ *
+ * DESCRIPTION
+ *
+ * Defines the SilcSKEStatus type, that is returned by all SKE routines,
+ * and a utility interface for handling the status.
+ *
+ ***/
+
 #ifndef SILCSKE_STATUS_H
 #define SILCSKE_STATUS_H
 
-/* Status flags returned by all SKE routines */
+/****d* silcske/SilcSKEStatuses/SilcSKEStatus
+ *
+ * NAME
+ * 
+ *    typedef enum { ... } SilcSKEStatus;
+ *
+ * DESCRIPTION
+ *
+ *    Status types returned by all SKE routines. This tell the status of
+ *    the SKE session, and if an error occurred. 
+ *
+ * SOURCE
+ */
 typedef enum {
   /* These are defined by the protocol */
-  SILC_SKE_STATUS_OK                     = 0,
-  SILC_SKE_STATUS_ERROR                  = 1,
-  SILC_SKE_STATUS_BAD_PAYLOAD            = 2,
-  SILC_SKE_STATUS_UNKNOWN_GROUP          = 3,
-  SILC_SKE_STATUS_UNKNOWN_CIPHER         = 4,
-  SILC_SKE_STATUS_UNKNOWN_PKCS           = 5,
-  SILC_SKE_STATUS_UNKNOWN_HASH_FUNCTION  = 6,
-  SILC_SKE_STATUS_UNKNOWN_HMAC           = 7,
-  SILC_SKE_STATUS_UNSUPPORTED_PUBLIC_KEY = 8,
-  SILC_SKE_STATUS_INCORRECT_SIGNATURE    = 9,
-  SILC_SKE_STATUS_BAD_VERSION            = 10,
-  SILC_SKE_STATUS_INVALID_COOKIE         = 11,
-
-  SILC_SKE_STATUS_PENDING,
-  SILC_SKE_STATUS_PUBLIC_KEY_NOT_PROVIDED,
-  SILC_SKE_STATUS_KEY_EXCHANGE_NOT_ACTIVE,
-  SILC_SKE_STATUS_BAD_RESERVED_FIELD,
-  SILC_SKE_STATUS_BAD_PAYLOAD_LENGTH,
-  SILC_SKE_STATUS_INCORRECT_HASH,
-  SILC_SKE_STATUS_FREED,
+  SILC_SKE_STATUS_OK                     = 0,  /* No error */
+  SILC_SKE_STATUS_ERROR                  = 1,  /* Unknown error */
+  SILC_SKE_STATUS_BAD_PAYLOAD            = 2,  /* Malformed payload */
+  SILC_SKE_STATUS_UNKNOWN_GROUP          = 3,  /* Unsupported DH group */
+  SILC_SKE_STATUS_UNKNOWN_CIPHER         = 4,  /* Unsupported cipher */
+  SILC_SKE_STATUS_UNKNOWN_PKCS           = 5,  /* Unsupported PKCS algorithm */
+  SILC_SKE_STATUS_UNKNOWN_HASH_FUNCTION  = 6,  /* Unsupported hash function */
+  SILC_SKE_STATUS_UNKNOWN_HMAC           = 7,  /* Unsupported HMAC */
+  SILC_SKE_STATUS_UNSUPPORTED_PUBLIC_KEY = 8,  /* Unsupported/not trusted PK */
+  SILC_SKE_STATUS_INCORRECT_SIGNATURE    = 9,  /* Incorrect signature */
+  SILC_SKE_STATUS_BAD_VERSION            = 10, /* Unsupported version */
+  SILC_SKE_STATUS_INVALID_COOKIE         = 11, /* Cookie was modified */
+
+  /* Implementation specific status types */
+  SILC_SKE_STATUS_PENDING,                    /* SKE library is pending */
+  SILC_SKE_STATUS_PUBLIC_KEY_NOT_PROVIDED,     /* Remote did not send PK */
+  SILC_SKE_STATUS_KEY_EXCHANGE_NOT_ACTIVE,     /* SKE is not started */
+  SILC_SKE_STATUS_BAD_RESERVED_FIELD,         /* Reserved field was not 0 */
+  SILC_SKE_STATUS_BAD_PAYLOAD_LENGTH,         /* Payload includes garbage */
+
+  /* Other internal status types */
+  SILC_SKE_STATUS_FREED,                      /* Internal libary status */
 } SilcSKEStatus;
+/***/
 
-extern const char *silc_ske_status_string[];
+/****f* silcske/SilcSKEStatuses/silc_ske_map_status
+ *
+ * SYNOPSIS
+ *
+ *    const char *silc_ske_map_status(SilcSKEStatus status);
+ *
+ * DESCRIPTION
+ *
+ *    Utility function to map the `status' into human readable message.
+ *
+ ***/
+const char *silc_ske_map_status(SilcSKEStatus status);
 
-#endif
+#endif /* SILCSKE_STATUS_H */