00001 /****************************** -*- mode: C -*- ******************************/ 00013 #ifndef C4E_BIGINT_H 00014 #define C4E_BIGINT_H 00015 00016 00017 /* INCLUDES ******************************************************************/ 00018 00019 #include "c4e_elements.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 /* PROTOTYPES ****************************************************************/ 00037 00038 00039 /* FUNCTION ******************************************************************/ 00052 C4eElemCmp c4e_bigint_cmp(C4E_CONST C4eElement* a, C4E_CONST C4eElement* b); 00053 00054 00055 /* FUNCTION ******************************************************************/ 00073 void c4e_bigint_add(C4E_CONST C4eElement* a, C4E_CONST C4eElement* b, 00074 C4eElement* c); 00075 00076 00077 /* FUNCTION ******************************************************************/ 00102 C4eSysBool c4e_bigint_sub(C4E_CONST C4eElement* a, C4E_CONST C4eElement* b, 00103 C4eElement* c); 00104 00105 00106 /* FUNCTION ******************************************************************/ 00128 C4eSysBool c4e_bigint_dec(C4E_CONST C4eElement* b, C4eElement* c); 00129 00130 00131 #ifdef C4E_CONFIG_ENABLE_COMBA 00132 00133 /* FUNCTION ******************************************************************/ 00191 #else /* !C4E_CONFIG_ENABLE_COMBA */ 00192 00193 /* FUNCTION ******************************************************************/ 00218 #endif /* C4E_CONFIG_ENABLE_COMBA */ 00219 00220 void c4e_bigint_mul(C4E_CONST C4eElement* C4E_RESTRICT a, 00221 C4E_CONST C4eElement* C4E_RESTRICT b, 00222 C4eElement* C4E_RESTRICT c); 00223 00224 00225 #ifdef C4E_CONFIG_ENABLE_COMBA 00226 00227 /* FUNCTION ******************************************************************/ 00262 #else /* !C4E_CONFIG_ENABLE_COMBA */ 00263 00264 /* FUNCTION ******************************************************************/ 00298 #endif /* C4E_CONFIG_ENABLE_COMBA */ 00299 00300 void c4e_bigint_sqr(C4E_CONST C4eElement* C4E_RESTRICT b, 00301 C4eElement* C4E_RESTRICT c); 00302 00303 00304 /* FUNCTION ******************************************************************/ 00347 void c4e_bigint_div(C4eElement* C4E_RESTRICT a, C4eElement* C4E_RESTRICT b, 00348 C4eElement* C4E_RESTRICT q); 00349 00350 00351 00352 /* FUNCTION ******************************************************************/ 00393 void c4e_bigint_mod(C4eElement* C4E_RESTRICT a, C4eElement* C4E_RESTRICT b); 00394 00395 00396 00397 /* FUNCTION ******************************************************************/ 00467 void c4e_bigint_gcd(C4eElemTriple* a, C4eElemTriple* b, C4eArchSize n); 00468 00469 00470 #ifdef __cplusplus 00471 } 00472 #endif 00473 00474 00475 #endif /* C4E_BIGINT_H */ 00476 00477 00478 /******************************************************************************/ 00479 /* END OF FILE */ 00480 /******************************************************************************/ 00481