void test_gcdext_simple(void){ bigint_t a, b, c, d, e; uint8_t a_b[5] = {0x71, 0x07, 0x00, 0x09, 0x16}; uint8_t b_b[5] = {0x72, 0x7D, 0x57, 0xAC, 0X6F}; uint8_t c_b[6], d_b[6], e_b[6]; a.wordv=a_b; a.length_B = 5; a.info=0x00; bigint_adjust(&a); b.wordv=b_b; b.length_B = 5; b.info=0x00; bigint_adjust(&b); c.wordv = c_b; d.wordv = d_b; e.wordv = e_b; bigint_gcdext(&c, &d, &e, &a, &b); cli_putstr_P(PSTR("\r\n test: gcd( ")); bigint_print_hex(&a); cli_putstr_P(PSTR(", ")); bigint_print_hex(&b); cli_putstr_P(PSTR(") => a = ")); bigint_print_hex(&d); cli_putstr_P(PSTR("; b = ")); bigint_print_hex(&e); cli_putstr_P(PSTR("; gcd = ")); bigint_print_hex(&c); }
void test_gcdext_bigint(void){ bigint_t a, b, c, d, e; cli_putstr_P(PSTR("\r\ngcdext test\r\n")); for(;;){ cli_putstr_P(PSTR("\r\nenter a:")); if(bigint_read_hex_echo(&a)){ cli_putstr_P(PSTR("\r\n end gcdext test")); return; } cli_putstr_P(PSTR("\r\nenter b:")); if(bigint_read_hex_echo(&b)){ free(a.wordv); cli_putstr_P(PSTR("\r\n end gcdext test")); return; } c.wordv = malloc((a.length_B<b.length_B)?a.length_B:b.length_B); d.wordv = malloc(1+(a.length_B>b.length_B)?a.length_B:b.length_B); e.wordv = malloc(1+(a.length_B>b.length_B)?a.length_B:b.length_B); cli_putstr_P(PSTR("\r\n gcdext( ")); bigint_print_hex(&a); cli_putstr_P(PSTR(", ")); bigint_print_hex(&b); cli_putstr_P(PSTR(") => ")); bigint_gcdext(&c, &d, &e, &a, &b); cli_putstr_P(PSTR("a = ")); bigint_print_hex(&d); cli_putstr_P(PSTR("; b = ")); bigint_print_hex(&e); cli_putstr_P(PSTR("; gcd = ")); bigint_print_hex(&c); cli_putstr_P(PSTR("\r\n")); free(a.wordv); free(b.wordv); free(c.wordv); free(d.wordv); free(e.wordv); } }
void test_gcdext_bigint(void){ bigint_t a, b, c, d, e; cli_putstr_P(PSTR("\r\ngcdext test\r\n")); for (;;) { cli_putstr_P(PSTR("\r\nenter a:")); if (bigint_read_hex_echo(&a, 0)) { cli_putstr_P(PSTR("\r\n end gcdext test")); return; } cli_putstr_P(PSTR("\r\nenter b:")); if (bigint_read_hex_echo(&b, 0)) { bigint_free(&a); cli_putstr_P(PSTR("\r\n end gcdext test")); return; } memset(&c, 0, sizeof(c)); memset(&d, 0, sizeof(d)); memset(&e, 0, sizeof(e)); cli_putstr_P(PSTR("\r\n gcdext( ")); bigint_print_hex(&a); cli_putstr_P(PSTR(", ")); bigint_print_hex(&b); cli_putstr_P(PSTR(") => ")); bigint_gcdext(&c, &d, &e, &a, &b); cli_putstr_P(PSTR("a = ")); bigint_print_hex(&d); cli_putstr_P(PSTR("; b = ")); bigint_print_hex(&e); cli_putstr_P(PSTR("; gcd = ")); bigint_print_hex(&c); cli_putstr_P(PSTR("\r\n")); bigint_free(&a); bigint_free(&b); bigint_free(&c); bigint_free(&d); bigint_free(&e); } }