summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/bn/bn_prime.pl
blob: bc85909bfb1062693381403e279ba79fd56cc8e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/perl
# bn_prime.pl

$num=2048;
$num=$ARGV[0] if ($#ARGV >= 0);

push(@primes,2);
$p=1;
loop: while ($#primes < $num-1)
	{
	$p+=2;
	$s=int(sqrt($p));

	for ($i=0; defined($primes[$i]) && $primes[$i]<=$s; $i++)
		{
		next loop if (($p%$primes[$i]) == 0);
		}
	push(@primes,$p);
	}

# print <<"EOF";
# /* Auto generated by bn_prime.pl */
# /* Copyright (C) 1995-1997 Eric Young (eay\@mincom.oz.au).
#  * All rights reserved.
#  * Copyright remains Eric Young's, and as such any Copyright notices in
#  * the code are not to be removed.
#  * See the COPYRIGHT file in the SSLeay distribution for more details.
#  */
#
# EOF

printf("/*\t\$" . "OpenBSD" . "\$ */\n");
print <<\EOF;
/*
 * Public domain, generated by bn_prime.pl.
 */

EOF

print "#include \"bn_prime.h\"\n\n";
print "const uint16_t primes[NUMPRIMES] = {";
for ($i=0; $i <= $#primes; $i++)
	{
	if ((($i%8) == 0)) {
		printf("\n\t")
	} else {
		printf(" ");
	}
	printf("%5d,",$primes[$i]);
	}
print "\n};\n";