Skip to content

Commit 782cda7

Browse files
czurniedensjaeckel
authored andcommitted
Update of examples in directory "etc"
1 parent fc17cf1 commit 782cda7

File tree

9 files changed

+134
-324
lines changed

9 files changed

+134
-324
lines changed

.gitignore

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,17 @@ mtest.exe
2929
mtest_opponent
3030
mtest_opponent.exe
3131

32+
2kprime
33+
2kprime.exe
34+
drprime
35+
drprime.exe
36+
mersenne
37+
mersenne.exe
38+
mont
39+
mont.exe
40+
pprime
41+
pprime.exe
42+
3243
# ignore eclipse project files
3344
.cproject
3445
.project
@@ -66,9 +77,11 @@ perf.data.old
6677
# ignore tommath_amalgam.c generated by make
6778
tommath_amalgam.c
6879

69-
# ignore file generated by make tune
80+
# ignore file generated by make 'tune and friends'
7081
tuning_list
7182
etc/tune
83+
2kprime.1
84+
drprimes.txt
7285

7386
# ignore stuff generated by "make manual" and "make poster"
7487
*.aux

etc/2kprime.c

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,24 @@ int main(void)
1010
size_t x;
1111
bool y;
1212
mp_int q, p;
13+
mp_err err;
1314
FILE *out;
1415
clock_t t1;
1516
mp_digit z;
1617

17-
mp_init_multi(&q, &p, NULL);
18+
if ((err = mp_init_multi(&q, &p, NULL)) != MP_OKAY) goto LTM_ERR;
1819

1920
out = fopen("2kprime.1", "w");
2021
if (out != NULL) {
2122
for (x = 0; x < (sizeof(sizes) / sizeof(sizes[0])); x++) {
2223
top:
23-
mp_2expt(&q, sizes[x]);
24-
mp_add_d(&q, 3uL, &q);
24+
if ((err = mp_2expt(&q, sizes[x])) != MP_OKAY) goto LTM_ERR;
25+
if ((err = mp_add_d(&q, 3uL, &q)) != MP_OKAY) goto LTM_ERR;
2526
z = -3;
2627

2728
t1 = clock();
2829
for (;;) {
29-
mp_sub_d(&q, 4uL, &q);
30+
if ((err = mp_sub_d(&q, 4uL, &q)) != MP_OKAY) goto LTM_ERR;
3031
z += 4uL;
3132

3233
if (z > MP_MASK) {
@@ -42,21 +43,21 @@ int main(void)
4243
}
4344

4445
/* quick test on q */
45-
mp_prime_is_prime(&q, 1, &y);
46+
if ((err = mp_prime_is_prime(&q, 1, &y)) != MP_OKAY) goto LTM_ERR;
4647
if (!y) {
4748
continue;
4849
}
4950

5051
/* find (q-1)/2 */
51-
mp_sub_d(&q, 1uL, &p);
52-
mp_div_2(&p, &p);
53-
mp_prime_is_prime(&p, 3, &y);
52+
if ((err = mp_sub_d(&q, 1uL, &p)) != MP_OKAY) goto LTM_ERR;
53+
if ((err = mp_div_2(&p, &p)) != MP_OKAY) goto LTM_ERR;
54+
if ((err = mp_prime_is_prime(&p, 3, &y)) != MP_OKAY) goto LTM_ERR;
5455
if (!y) {
5556
continue;
5657
}
5758

5859
/* test on q */
59-
mp_prime_is_prime(&q, 3, &y);
60+
if ((err = mp_prime_is_prime(&q, 3, &y)) != MP_OKAY) goto LTM_ERR;
6061
if (!y) {
6162
continue;
6263
}
@@ -69,13 +70,13 @@ int main(void)
6970
goto top;
7071
}
7172

72-
mp_to_decimal(&q, buf, sizeof(buf));
73+
if ((err = mp_to_decimal(&q, buf, sizeof(buf))) != MP_OKAY) goto LTM_ERR;
7374
printf("\n\n%d-bits (k = %lu) = %s\n", sizes[x], z, buf);
7475
fprintf(out, "%d-bits (k = %lu) = %s\n", sizes[x], z, buf);
7576
fflush(out);
7677
}
7778
fclose(out);
7879
}
79-
80+
LTM_ERR:
8081
return 0;
8182
}

etc/drprime.c

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,17 @@ int main(void)
1010
char buf[4096];
1111
FILE *out;
1212
mp_int a, b;
13+
mp_err err;
1314

14-
mp_init(&a);
15-
mp_init(&b);
15+
if ((err = mp_init(&a)) != MP_OKAY) goto LTM_ERR;
16+
if ((err = mp_init(&b)) != MP_OKAY) goto LTM_ERR;
1617

1718
out = fopen("drprimes.txt", "w");
1819
if (out != NULL) {
1920
for (x = 0; x < (int)(sizeof(sizes)/sizeof(sizes[0])); x++) {
2021
top:
2122
printf("Seeking a %d-bit safe prime\n", sizes[x] * MP_DIGIT_BIT);
22-
mp_grow(&a, sizes[x]);
23+
if ((err = mp_grow(&a, sizes[x])) != MP_OKAY) goto LTM_ERR;
2324
mp_zero(&a);
2425
for (y = 1; y < sizes[x]; y++) {
2526
a.dp[y] = MP_MASK;
@@ -34,15 +35,15 @@ int main(void)
3435
for (;;) {
3536
a.dp[0] += 4uL;
3637
if (a.dp[0] >= MP_MASK) break;
37-
mp_prime_is_prime(&a, 1, &res);
38+
if ((err = mp_prime_is_prime(&a, 1, &res)) != MP_OKAY) goto LTM_ERR;
3839
if (!res) continue;
3940
printf(".");
4041
fflush(stdout);
41-
mp_sub_d(&a, 1uL, &b);
42-
mp_div_2(&b, &b);
43-
mp_prime_is_prime(&b, 3, &res);
42+
if ((err = mp_sub_d(&a, 1uL, &b)) != MP_OKAY) goto LTM_ERR;
43+
if ((err = mp_div_2(&b, &b)) != MP_OKAY) goto LTM_ERR;
44+
if ((err = mp_prime_is_prime(&b, 3, &res)) != MP_OKAY) goto LTM_ERR;
4445
if (!res) continue;
45-
mp_prime_is_prime(&a, 3, &res);
46+
if ((err = mp_prime_is_prime(&a, 3, &res)) != MP_OKAY) goto LTM_ERR;
4647
if (res) break;
4748
}
4849

@@ -51,7 +52,7 @@ int main(void)
5152
sizes[x] += 1;
5253
goto top;
5354
} else {
54-
mp_to_decimal(&a, buf, sizeof(buf));
55+
if ((err = mp_to_decimal(&a, buf, sizeof(buf))) != MP_OKAY) goto LTM_ERR;
5556
printf("\n\np == %s\n\n", buf);
5657
fprintf(out, "%d-bit prime:\np == %s\n\n", mp_count_bits(&a), buf);
5758
fflush(out);
@@ -60,6 +61,7 @@ int main(void)
6061
fclose(out);
6162
}
6263

64+
LTM_ERR:
6365
mp_clear(&a);
6466
mp_clear(&b);
6567

etc/drprimes.txt

Lines changed: 0 additions & 9 deletions
This file was deleted.

etc/makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ LTM_TUNE_CFLAGS = $(CFLAGS) $(LTM_CFLAGS) -Wall -W -Wextra -Wshadow -O3 -I../
66
# libname when you can't install the lib with install
77
LIBNAME=../libtommath.a
88

9+
all: pprime tune test_standalone mersenne drprime 2kprime mont
10+
911
#provable primes
1012
pprime: pprime.o
1113
$(CC) $(LTM_TUNE_CFLAGS) pprime.o $(LIBNAME) -o pprime

etc/mersenne.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ static mp_err is_mersenne(long s, bool *pp)
5757

5858
/* if u == 0 then its prime */
5959
if (mp_iszero(&u)) {
60-
mp_prime_is_prime(&n, 8, pp);
60+
if ((res = mp_prime_is_prime(&n, 8, pp)) != MP_OKAY) {
61+
goto LBL_MU;
62+
}
6163
if (!*pp) printf("FAILURE\n");
6264
}
6365

etc/mont.c

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,32 @@ int main(void)
77
{
88
mp_int modulus, R, p, pp;
99
mp_digit mp;
10+
mp_err err;
1011
int x, y;
1112

1213
srand(time(NULL));
13-
mp_init_multi(&modulus, &R, &p, &pp, NULL);
14+
if ((err = mp_init_multi(&modulus, &R, &p, &pp, NULL)) != MP_OKAY) goto LTM_ERR;
1415

1516
/* loop through various sizes */
1617
for (x = 4; x < 256; x++) {
1718
printf("DIGITS == %3d...", x);
1819
fflush(stdout);
1920

2021
/* make up the odd modulus */
21-
mp_rand(&modulus, x);
22+
if ((err = mp_rand(&modulus, x)) != MP_OKAY) goto LTM_ERR;
2223
modulus.dp[0] |= 1uL;
2324

2425
/* now find the R value */
25-
mp_montgomery_calc_normalization(&R, &modulus);
26-
mp_montgomery_setup(&modulus, &mp);
26+
if ((err = mp_montgomery_calc_normalization(&R, &modulus)) != MP_OKAY) goto LTM_ERR;
27+
if ((err = mp_montgomery_setup(&modulus, &mp)) != MP_OKAY) goto LTM_ERR;
2728

2829
/* now run through a bunch tests */
2930
for (y = 0; y < 1000; y++) {
30-
mp_rand(&p, x/2); /* p = random */
31-
mp_mul(&p, &R, &pp); /* pp = R * p */
32-
mp_montgomery_reduce(&pp, &modulus, mp);
31+
/* p = random */
32+
if ((err = mp_rand(&p, x/2)) != MP_OKAY) goto LTM_ERR;
33+
/* pp = R * p */
34+
if ((err = mp_mul(&p, &R, &pp)) != MP_OKAY) goto LTM_ERR;
35+
if ((err = mp_montgomery_reduce(&pp, &modulus, mp)) != MP_OKAY) goto LTM_ERR;
3336

3437
/* should be equal to p */
3538
if (mp_cmp(&pp, &p) != MP_EQ) {
@@ -40,5 +43,6 @@ int main(void)
4043
printf("PASSED\n");
4144
}
4245

46+
LTM_ERR:
4347
return 0;
4448
}

0 commit comments

Comments
 (0)