tommath/test.c
2010-07-15 17:25:29 +02:00

46 lines
1.3 KiB
C

#include <tommath.h>
int main(int argc, char ** argv) {
const unsigned int a = 65537;
char b[] =
"272621192922230283305477639564135351471136149273956463844361347729298759183125368038593484043149128512765280523210111782526587388894777249539002925324108547349408624093466297893486263619517809026841716115227596170065100354451708345238523975900663359145770823068375223714001310312030819080370340176730626251422070";
char radix[1000];
mp_int vala, valb, valc;
if (mp_init(&vala) != MP_OKAY) {
fprintf(stderr, "failed to init vala\n");
exit(1);
}
if (mp_init(&valb) != MP_OKAY) {
fprintf(stderr, "failed to init valb\n");
exit(1);
}
if (mp_init(&valc) != MP_OKAY) {
fprintf(stderr, "failed to init valc\n");
exit(1);
}
if (mp_set_int(&vala, 65537) != MP_OKAY) {
fprintf(stderr, "failed to set vala to 65537\n");
exit(1);
}
if (mp_read_radix(&valb, b, 10) != MP_OKAY) {
fprintf(stderr, "failed to set valb to %s\n", b);
exit(1);
}
if (mp_invmod(&vala, &valb, &valc) != MP_OKAY) {
fprintf(stderr, "mp_invmod failed\n");
exit(1);
}
if (mp_toradix(&valc, radix, 10) != MP_OKAY) {
fprintf(stderr, "failed to convert value to radix 10\n");
exit(1);
}
fprintf(stderr, "a = %d\nb = %s\nc = %s\n", a, b, radix);
return 0;
}