📄 main.c
字号:
#include <stdio.h>#include "field2n.h"#include "poly.h"#include "eliptic.h"extern FIELD2N poly_prime; extern unsigned long random_seed; CURVE ncrv = {1, {0x00000002,0x00000000,0x00000000,0x00000000,0x00000000,0x000000C9}, {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000002}, };CURVE ncrv1 = {1, {0x00000002,0x00000000,0x00000000,0x00000000,0x00000000,0x000000C9}, {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001}, };void put_nr(FIELD2N *cislo,FILE *f) {int i;for(i=161;i>-1;i--) fprintf(f,"%1d",(cislo->e[5-(i/32)]&(1<<(i%32))) ? 1 : 0 );fprintf(f,"\n");}void get_nr(FIELD2N *cislo) {int bit;INDEX i;SUMLOOP(i) cislo->e[i] = 0L; for(i=161;i>-1;i--) { //pro 163 bit cislascanf("%1d",&bit);//printf("i:%2d i/32 %2d i%32 %2d BIT:%1d\n",i,5-i/32,i%32,bit);cislo->e[5-(i/32)]|=bit<<(i%32);}}//extern CURVE crv;//parametr a ma jednicky na//161., 7., 6., 3., a 0. miste^/* coordinates for a point */// Nejdriv nejake includy// #include ... /*tahle main funkce je kuchnuta main ze souboru eliptic_poly.c Odstranil jsem nadbytecnosti a pridal pocitanis nahodnymi body na konec*/int main(){// FIELD2N t1, t2, test;// FIELD2N q, r, y, x, y2, xy, g[3];// INDEX i, error, j, order, k, m, n;// ELEMENT index, check;// FILE *del;// POINT p2, p3, p4, p5, p6, p7;// POINT Base;//CURVE rnd_crv;FILE *soucty,*body;POINT p2, p3, p4;int i,error; /* del = fopen("curves_points_5","w"); if (!del) return(0);*/// print_field("poly_prime = ", &poly_prime);//printf("%d\n",sizeof(unsigned long));if (!irreducible(&poly_prime)) return(0); // overeni ireducibilniho polynomu. Polynom je definovan v polymain.c print_field("poly_prime = ", &poly_prime); if (error = init_poly_math()) { printf("Can't initialize S matrix, row = %d\n", error); return(-1); }// get_nr(&t1);// put_nr(&t1);// print_field("Moje cislo = ", &t1); print_curve("Curve = ", &ncrv);random_seed = 0xDEADBEEF;body=fopen("body","w+"); soucty=fopen("soucty","w+"); for(i=1;i<1000;i++){ //cyklus podle potreby rand_point( &p2, &ncrv); rand_point( &p3, &ncrv); poly_esum( &p2, &p3, &p4, &ncrv); print_point("Point1 ", &p2); print_point("Point2 ", &p3); print_point("Sum: ", &p4); put_nr(&p2.x,body); put_nr(&p2.y,body); put_nr(&p3.x,body); put_nr(&p3.y,body); put_nr(&p4.x,soucty); put_nr(&p4.y,soucty);} fclose(body);fclose(soucty);//printf("%d",UPRMASK);//exit(255);/* zadani krivky - viz. eliptic.h*/// crv.form = 0;// null(&crv.a2);// null(&crv.a6);/* crv.a2.e[NUMWORD] = 5;*/ //crv.a6.e[] = 9;// null(&test); // test.e[NUMWORD] = 5;// poly_embed( &test, &crv, NUMWORD, 0, &p2); //definovano v eliptic_poly.c. // for(i=1;i<100;i++){ //cyklus podle potreby// rand_point( &p2, &ncrv);// rand_point( &p3, &ncrv);// poly_esum( &p2, &p3, &p4, &ncrv);// poly_esum( &p2, &p3, &p5, &ncrv1);// print_point("Point1 ", &p2);// print_point("Point2 ", &p3);// // print_point("Point1 + Point2 ", &p4);// print_point("Point1 + Point2 ", &p5);// }// printf("create Base curve and point\n\n"); // // rand_curve(&rnd_crv); // print_curve("random curve", &rnd_crv); // rand_point(&Base, &rnd_crv); // print_point("Base point", &Base); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -