X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcske%2Fgroups.h;h=724bc3d5f86f1dec73ab9c022f485e6024a78e44;hb=7428855aff83c6dd40431bb88d3f1e5c973e7c06;hp=1e36c5dec556bf1c22e35dff542cd137807f2fb5;hpb=81b0d351d5bbfedf21db2addd2feb5bbeaa4fb9d;p=silc.git diff --git a/lib/silcske/groups.h b/lib/silcske/groups.h index 1e36c5de..724bc3d5 100644 --- a/lib/silcske/groups.h +++ b/lib/silcske/groups.h @@ -18,23 +18,127 @@ */ +/****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