00001 /****************************** -*- mode: C -*- ******************************/ 00013 #ifndef C4E_MODN_H 00014 #define C4E_MODN_H 00015 00016 00017 /* INCLUDES ******************************************************************/ 00018 00019 #include "c4e_bigint.h" 00020 00021 00022 #ifdef __cplusplus 00023 extern "C" { 00024 #endif 00025 00026 00027 /* TYPEDEFS ******************************************************************/ 00028 00029 00030 /* DEFINES *******************************************************************/ 00031 00032 00033 /* MACROS ********************************************************************/ 00034 00035 00036 /* MACRO *********************************************************************/ 00047 #define C4E_MODN_POW_SPACE(msize) ((msize) + 2U) 00048 00049 00050 00051 00052 /* PROTOTYPES ****************************************************************/ 00053 00054 00055 /* FUNCTION ******************************************************************/ 00112 void c4e_modn_pow(C4eElement* C4E_RESTRICT a, 00113 C4E_CONST C4eElement* C4E_RESTRICT n, 00114 C4eElement* C4E_RESTRICT m, 00115 C4eElement* C4E_RESTRICT tmp, 00116 C4eElement* c); 00117 00118 00119 00120 /* FUNCTION ******************************************************************/ 00200 void c4e_modn_crt(C4eElemTriple* C4E_RESTRICT p, 00201 C4eElemTriple* C4E_RESTRICT q); 00202 00203 00204 #ifdef __cplusplus 00205 } 00206 #endif 00207 00208 00209 #endif /* C4E_MODN_H */ 00210 00211 00212 /******************************************************************************/ 00213 /* END OF FILE */ 00214 /******************************************************************************/ 00215