Ведется поиск
русского мануала по функциям GMP, и их обвязке.
или просто проконсультируйте ( пошагово чтоль ), как перенести
Base10StringToFGInt('65537',e);
Base256StringToFGInt(sD,d); // sD - строка которую следует зашифровать,
Base256StringToFGInt(sM,m); // sM - rsa_key
FGIntMontgomeryModExp(d,e,m,r); // само шифрование, результат в r
FGIntToBase256String(r,sR); // преобразование к string;
возможно, как-то так
mpz_t m, e, d, r;
mpz_init(m);
mpz_init(e);
mpz_init(d);
mpz_init(r);
mpz_inp_str(d, sD, 16);
mpz_inp_str(m, sM, 16);
mpz_inp_str(e, "65537", 10);
mpz_powm(r, d, e, m);
mpz_out_str(sR, 16, r);
как видите по этой строчке:
mpz_inp_str(e, "65537", 10);
я не совсем понимаю, что есть FILE.
Поэтому, если есть такая возможность - подскажите..
Пользователь решил продолжить мысль 12 Ноября 2010, 00:37:52:
и как я понимаю, mpz_inp_str возможно не та функция, что мне нужна. ведь из файла я ничего читать не собираюсь..
мне тут намекнули на использование структур, как всегда ничего не обьяснив.
Пользователь решил продолжить мысль 12 Ноября 2010, 11:09:10:
вот тестовая 100% рабочая прога.
из командной строки компилится и запускается
gcc -Wall -lgmp fab.c -o fab && ./fab
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <gmp.h>
int main()
{
int num=0;
mpz_t f_1;
mpz_t f_2;
mpz_init(f_1);
mpz_init(f_2);
mpz_set_ui(f_1,0);
mpz_set_ui(f_1,111);
printf("%10d: 0\n",++num);
int i;
for( i = 0; i<64; i++){
mpz_add(f_1,f_2,f_1);
mpz_swap(f_1,f_2);
char * res = mpz_get_str(NULL,10,f_2);
printf("%10d: %s\n",++num, res);
free(res); }
mpz_clear(f_1);
mpz_clear(f_2);
return 0;
}
в ide выдает эту непонятную ошибку

undefined reference to `__gmpz_init'