• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

c4e_dlc.h (Version 579)

Go to the documentation of this file.
00001 /****************************** -*- mode: C -*- ******************************/
00013 #ifndef C4E_DLC_H
00014 #define C4E_DLC_H
00015 
00016 
00017 /* INCLUDES ******************************************************************/
00018 
00019 #include "c4e_elements.h" /* C4eElement, C4E_ELEM_DIGITS_NUM() */
00020 #include "c4e_modn.h"     /* C4E_MODN_POW_SPACE() */
00021 
00022 
00023 
00024 #ifdef  __cplusplus
00025 extern "C" {
00026 #endif
00027 
00028 
00041 /* TYPEDEFS ******************************************************************/
00042 
00043 
00053 #define C4E_DLC_ALGO_NONE     (0U) 
00054 #define C4E_DLC_ALGO_DH       (1U)      
00055 #define C4E_DLC_ALGO_DSA      (2U)     
00056 #define C4E_DLC_ALGO_RSA      (4U)     
00057 #define C4E_DLC_ALGO_ALL      (~0U) 
00078     typedef struct
00079     {
00104         C4eElemOsp m;
00105 
00106 #ifndef C4E_CONFIG_DISABLE_DSA
00107 
00126         C4eElemOsp q;
00127 
00138         C4eElement g;
00139 
00140 #endif  /* C4E_CONFIG_DISABLE_DSA */
00141 
00142     } C4eDlcDomain;
00143 
00144 
00145 
00146 /* DEFINES *******************************************************************/
00147 
00148 
00158 #define C4E_DLC_GF_BYTES_MAX  ((8U * 1024U) / 8U)    /* 8192 bit (1024 byte) */
00159 
00160 
00161 
00162 /* MACROS ********************************************************************/
00163 
00164 
00180 /* MACRO *********************************************************************/
00211 #define C4E_DLC_TMP_NUM(tmpid, keylen)                                  \
00212     ((tmpid) * C4E_MODN_POW_SPACE(C4E_ELEM_DIGITS_NUM(keylen)))
00213 
00214 
00220 /* PROTOTYPES ****************************************************************/
00221 
00222 
00223 /* FUNCTION ******************************************************************/
00278     C4eSysStatus c4e_dlc_domchk(C4eArchUint algos, C4E_CONST C4eDlcDomain* dom);
00279 
00280 
00281 /* FUNCTION ******************************************************************/
00326     C4eSysStatus c4e_dlc_keychk_prv(C4eArchUint algos,
00327                                     C4E_CONST C4eDlcDomain* C4E_RESTRICT dom,
00328                                     C4E_CONST C4eElement* C4E_RESTRICT key,
00329                                     C4eArchDigit tmp[C4E_RESTRICT]);
00330 
00331 
00332 
00333 /* FUNCTION ******************************************************************/
00366     C4eSysStatus c4e_dlc_keychk_pub(C4eArchUint algos,
00367                                     C4E_CONST C4eDlcDomain* C4E_RESTRICT dom,
00368                                     C4E_CONST C4eElement* C4E_RESTRICT key,
00369                                     C4eArchDigit tmp[C4E_RESTRICT]);
00370 
00375 #ifdef  __cplusplus
00376 }
00377 #endif
00378 
00379 
00380 
00381 
00382 #endif /* C4E_DLC_H */
00383 
00384 
00385 /******************************************************************************/
00386 /* END OF FILE                                                                */
00387 /******************************************************************************/

Generated by Ralf Hoppe, Ginsterweg 49, 73230 Kirchheim unter Teck, Germany
on Sun Jun 7 14:10:49 2015 for CRY4E using doxygen 1.6.1