updates.
[silc.git] / lib / silcske / groups.h
index 1e36c5dec556bf1c22e35dff542cd137807f2fb5..724bc3d5f86f1dec73ab9c022f485e6024a78e44 100644 (file)
 
 */
 
+/****h* silcske/SilcSKEGroups
+ *
+ * DESCRIPTION
+ *
+ * This interface defines the Diffie Hellman group management and utility
+ * functions for the SKE.  They can be used find DH groups by group number,
+ * and group name.  These routines are used during the SKE session.
+ *
+ ***/
+
 #ifndef GROUPS_H
 #define GROUPS_H
 
 #include "silcske_status.h"
 
-/* Forward declaration */
+/****s* silcske/SilcSKEGroups/SilcSKEDiffieHellmanGroup
+ *
+ * NAME
+ * 
+ *    typedef struct SilcSKEDiffieHellmanGroupStruct 
+ *                     *SilcSKEDiffieHellmanGroup;
+ *
+ * DESCRIPTION
+ *
+ *    This context represents one Diffie Hellman group, and is returned
+ *    by the utility functions for finding correct groups.  The context
+ *    is freed by calling the silc_ske_group_free function.
+ *
+ ***/
 typedef struct SilcSKEDiffieHellmanGroupStruct *SilcSKEDiffieHellmanGroup;
 
-/* List of defined groups. */
-extern const struct SilcSKEDiffieHellmanGroupDefStruct silc_ske_groups[];
-
 /* Prototypes */
-SilcSKEStatus silc_ske_get_group_by_number(int number,
+
+/****f* silcske/SilcSKEGroups/silc_ske_group_get_by_number
+ *
+ * SYNOPSIS
+ *
+ *    SilcSKEStatus 
+ *    silc_ske_group_get_by_number(int number,
+ *                                 SilcSKEDiffieHellmanGroup *ret);
+ *
+ * DESCRIPTION
+ *
+ *    Returns the Diffie Hellman group into the `ret' pointer by
+ *    group number indicated by the `number'.  Returns error status
+ *    if the group was not found.
+ *
+ ***/
+SilcSKEStatus silc_ske_group_get_by_number(int number,
                                           SilcSKEDiffieHellmanGroup *ret);
-SilcSKEStatus silc_ske_get_group_by_name(const char *name,
+
+/****f* silcske/SilcSKEGroups/silc_ske_group_get_by_name
+ *
+ * SYNOPSIS
+ *
+ *    SilcSKEStatus 
+ *    silc_ske_get_group_by_name(const char *name,
+ *                               SilcSKEDiffieHellmanGroup *ret);
+ *
+ * DESCRIPTION
+ *
+ *    Returns the Diffie Hellman group into the `ret' pointer by
+ *    group name indicated by the `name'.  Returns error status
+ *    if the group was not found.
+ *
+ ***/
+SilcSKEStatus silc_ske_group_get_by_name(const char *name,
                                         SilcSKEDiffieHellmanGroup *ret);
+
+/****f* silcske/SilcSKEGroups/silc_ske_group_free
+ *
+ * SYNOPSIS
+ *
+ *    void silc_ske_group_free(SilcSKEDiffieHellmanGroup group);
+ *
+ * DESCRIPTION
+ *
+ *    Free the Diffie Hellman group indicated by the `group'.
+ *
+ ***/
+void silc_ske_group_free(SilcSKEDiffieHellmanGroup group);
+
+/****f* silcske/SilcSKEGroups/silc_ske_get_supported_groups
+ *
+ * SYNOPSIS
+ *
+ *    char *silc_ske_get_supported_groups();
+ *
+ * DESCRIPTION
+ *
+ *    Returns a comma separated list of support Diffie Hellman groups.
+ *    This can be used to get the list of supported groups for SKE
+ *    packets.
+ *
+ ***/
 char *silc_ske_get_supported_groups();
+
+/****f* silcske/SilcSKEGroups/silc_ske_group_get_number
+ *
+ * SYNOPSIS
+ *
+ *    int silc_ske_group_get_number(SilcSKEDiffieHellmanGroup group);
+ *
+ * DESCRIPTION
+ *
+ *    Return the group number of the group indicated by the `group'.
+ *
+ ***/
 int silc_ske_group_get_number(SilcSKEDiffieHellmanGroup group);
 
+/****f* silcske/SilcSKEGroups/silc_ske_group_get_name
+ *
+ * SYNOPSIS
+ *
+ *    const char *silc_ske_group_get_name(SilcSKEDiffieHellmanGroup group);
+ *
+ * DESCRIPTION
+ *
+ *    Return the group name of the group indicated by the `group'.
+ *
+ ***/
+const char *silc_ske_group_get_name(SilcSKEDiffieHellmanGroup group);
+
 #endif