Я хочу внедрить RSA-подпись, где я могу вычислить подпись файла и проверить подпись файла.Поэтому я использую библиотеку gmp.Но когда я хочу напечатать данные файла, он всегда печатает 0, даже если файл не пустой.Вот мой код:
//compiled with gcc rsa-sig.c -O3 -Wall -l gmp -o rsa-sig
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <assert.h>
#include <math.h>
#include <gmp.h> /* GNU Multi Precision library */
int main(int argc, char *argv[])
{
int r;
mpz_t modulus;
mpz_init(modulus);
r=mpz_set_str(modulus, "FFFF",16); //just an example modulus
mpz_t data;
mpz_init(data);
FILE * stream;
stream = fopen("file.bin", "rb");
r= mpz_inp_str(data, stream,16);
mpz_mod(data,data,modulus);
gmp_printf("%Zd\n",data);
}
Я не могу понять, почему результат равен 0. Может быть, у одного из вас, ребята, есть идея.Спасибо !!