xref: /freebsd/crypto/libecc/scripts/gen_curves_tests.sh (revision f0865ec9906d5a18fa2a3b61381f22ce16e606ad)
1*f0865ec9SKyle Evans#/*
2*f0865ec9SKyle Evans# *  Copyright (C) 2017 - This file is part of libecc project
3*f0865ec9SKyle Evans# *
4*f0865ec9SKyle Evans# *  Authors:
5*f0865ec9SKyle Evans# *      Ryad BENADJILA <ryadbenadjila@gmail.com>
6*f0865ec9SKyle Evans# *      Arnaud EBALARD <arnaud.ebalard@ssi.gouv.fr>
7*f0865ec9SKyle Evans# *      Jean-Pierre FLORI <jean-pierre.flori@ssi.gouv.fr>
8*f0865ec9SKyle Evans# *
9*f0865ec9SKyle Evans# *  Contributors:
10*f0865ec9SKyle Evans# *      Nicolas VIVET <nicolas.vivet@ssi.gouv.fr>
11*f0865ec9SKyle Evans# *      Karim KHALFALLAH <karim.khalfallah@ssi.gouv.fr>
12*f0865ec9SKyle Evans# *
13*f0865ec9SKyle Evans# *  This software is licensed under a dual BSD and GPL v2 license.
14*f0865ec9SKyle Evans# *  See LICENSE file at the root folder of the project.
15*f0865ec9SKyle Evans# */
16*f0865ec9SKyle Evans#!/bin/sh
17*f0865ec9SKyle Evans
18*f0865ec9SKyle Evans# Find a suitable python command if none has been provided
19*f0865ec9SKyle Evansif [ -z "$PYTHON" ]
20*f0865ec9SKyle Evansthen
21*f0865ec9SKyle Evans	echo "Looking for suitable python and deps"
22*f0865ec9SKyle Evans	# Try to guess which python we want to use depending on the installed
23*f0865ec9SKyle Evans	# packages. We need Pyscard, Crypto, and IntelHex
24*f0865ec9SKyle Evans	for i in python python3 python2; do
25*f0865ec9SKyle Evans		if [ -x "`which $i`" ]; then
26*f0865ec9SKyle Evans			echo "Found and using python=$i"
27*f0865ec9SKyle Evans			PYTHON=$i
28*f0865ec9SKyle Evans			break
29*f0865ec9SKyle Evans		fi
30*f0865ec9SKyle Evans	done
31*f0865ec9SKyle Evanselse
32*f0865ec9SKyle Evans	echo "Using user provided python=$PYTHON"
33*f0865ec9SKyle Evansfi
34*f0865ec9SKyle Evansif [ -z "$PYTHON" ]; then
35*f0865ec9SKyle Evans	echo "Failed to find working python cmd!" >&2
36*f0865ec9SKyle Evans	exit
37*f0865ec9SKyle Evansfi
38*f0865ec9SKyle Evans
39*f0865ec9SKyle Evans# Get the expand_libecc python script path
40*f0865ec9SKyle EvansBASEDIR=$(dirname "$0")
41*f0865ec9SKyle EvansEXPAND_LIBECC=$BASEDIR/expand_libecc.py
42*f0865ec9SKyle Evans
43*f0865ec9SKyle Evans# SECP192R1
44*f0865ec9SKyle Evansecho "SECP192R1"
45*f0865ec9SKyle Evans$PYTHON $EXPAND_LIBECC --name="SECP192R1" --prime=6277101735386680763835789423207666416083908700390324961279 --a=6277101735386680763835789423207666416083908700390324961276 --b=2455155546008943817740293915197451784769108058161191238065 --gx=602046282375688656758213480587526111916698976636884684818 --gy=174050332293622031404857552280219410364023488927386650641 --order=6277101735386680763835789423176059013767194773182842284081 --cofactor=1 --add-test-vectors=2
46*f0865ec9SKyle Evans
47*f0865ec9SKyle Evans# SECP224R1
48*f0865ec9SKyle Evansecho "SECP224R1"
49*f0865ec9SKyle Evans$PYTHON $EXPAND_LIBECC --name="SECP224R1" --prime=26959946667150639794667015087019630673557916260026308143510066298881 --a=26959946667150639794667015087019630673557916260026308143510066298878 --b=18958286285566608000408668544493926415504680968679321075787234672564 --gx=19277929113566293071110308034699488026831934219452440156649784352033 --gy=19926808758034470970197974370888749184205991990603949537637343198772 --order=26959946667150639794667015087019625940457807714424391721682722368061 --cofactor=1 --add-test-vectors=2
50*f0865ec9SKyle Evans
51*f0865ec9SKyle Evans# SECP256R1
52*f0865ec9SKyle Evansecho "SECP256R1"
53*f0865ec9SKyle Evans$PYTHON $EXPAND_LIBECC --name="SECP256R1" --prime=115792089210356248762697446949407573530086143415290314195533631308867097853951 --a=115792089210356248762697446949407573530086143415290314195533631308867097853948 --b=41058363725152142129326129780047268409114441015993725554835256314039467401291 --gx=48439561293906451759052585252797914202762949526041747995844080717082404635286 --gy=36134250956749795798585127919587881956611106672985015071877198253568414405109 --order=115792089210356248762697446949407573529996955224135760342422259061068512044369 --cofactor=1 --add-test-vectors=2
54*f0865ec9SKyle Evans
55*f0865ec9SKyle Evans# SECP384R1
56*f0865ec9SKyle Evansecho "SECP384R1"
57*f0865ec9SKyle Evans$PYTHON $EXPAND_LIBECC --name="SECP384R1" --prime=39402006196394479212279040100143613805079739270465446667948293404245721771496870329047266088258938001861606973112319 --a=39402006196394479212279040100143613805079739270465446667948293404245721771496870329047266088258938001861606973112316 --b=27580193559959705877849011840389048093056905856361568521428707301988689241309860865136260764883745107765439761230575 --gx=26247035095799689268623156744566981891852923491109213387815615900925518854738050089022388053975719786650872476732087 --gy=8325710961489029985546751289520108179287853048861315594709205902480503199884419224438643760392947333078086511627871 --order=39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942643 --cofactor=1 --add-test-vectors=2
58*f0865ec9SKyle Evans
59*f0865ec9SKyle Evans# SECP521R1
60*f0865ec9SKyle Evansecho "SECP521R1"
61*f0865ec9SKyle Evans$PYTHON $EXPAND_LIBECC --name="SECP521R1" --prime=6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151 --a=6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057148 --b=1093849038073734274511112390766805569936207598951683748994586394495953116150735016013708737573759623248592132296706313309438452531591012912142327488478985984 --gx=2661740802050217063228768716723360960729859168756973147706671368418802944996427808491545080627771902352094241225065558662157113545570916814161637315895999846 --gy=3757180025770020463545507224491183603594455134769762486694567779615544477440556316691234405012945539562144444537289428522585666729196580810124344277578376784 --order=6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005449 --cofactor=1 --add-test-vectors=2
62*f0865ec9SKyle Evans
63*f0865ec9SKyle Evans# BRAINPOOL160R1
64*f0865ec9SKyle Evansecho "BRAINPOOL160R1"
65*f0865ec9SKyle Evans$PYTHON $EXPAND_LIBECC --name="BRAINPOOL160R1" --prime=1332297598440044874827085558802491743757193798159 --a=0x340E7BE2A280EB74E2BE61BADA745D97E8F7C300 --b=0x1E589A8595423412134FAA2DBDEC95C8D8675E58 --gx=0xBED5AF16EA3F6A4F62938C4631EB5AF7BDBCDBC3 --gy=0x1667CB477A1A8EC338F94741669C976316DA6321 --order=0xE95E4A5F737059DC60DF5991D45029409E60FC09 --cofactor=1 --add-test-vectors=2
66*f0865ec9SKyle Evans
67*f0865ec9SKyle Evans# BRAINPOOL192R1
68*f0865ec9SKyle Evansecho "BRAINPOOL192R1"
69*f0865ec9SKyle Evans$PYTHON $EXPAND_LIBECC --name="BRAINPOOL192R1" --prime=4781668983906166242955001894344923773259119655253013193367 --a=0x6A91174076B1E0E19C39C031FE8685C1CAE040E5C69A28EF --b=0x469A28EF7C28CCA3DC721D044F4496BCCA7EF4146FBF25C9 --gx=0xC0A0647EAAB6A48753B033C56CB0F0900A2F5C4853375FD6 --gy=0x14B690866ABD5BB88B5F4828C1490002E6773FA2FA299B8F --order=0xC302F41D932A36CDA7A3462F9E9E916B5BE8F1029AC4ACC1 --cofactor=1 --add-test-vectors=2
70*f0865ec9SKyle Evans
71*f0865ec9SKyle Evans# BRAINPOOL224R1
72*f0865ec9SKyle Evansecho "BRAINPOOL224R1"
73*f0865ec9SKyle Evans$PYTHON $EXPAND_LIBECC --name="BRAINPOOL224R1" --prime=22721622932454352787552537995910928073340732145944992304435472941311 --a=0x68A5E62CA9CE6C1C299803A6C1530B514E182AD8B0042A59CAD29F43 --b=0x2580F63CCFE44138870713B1A92369E33E2135D266DBB372386C400B --gx=0xD9029AD2C7E5CF4340823B2A87DC68C9E4CE3174C1E6EFDEE12C07D --gy=0x58AA56F772C0726F24C6B89E4ECDAC24354B9E99CAA3F6D3761402CD --order=0xD7C134AA264366862A18302575D0FB98D116BC4B6DDEBCA3A5A7939F --cofactor=1 --add-test-vectors=2
74*f0865ec9SKyle Evans
75*f0865ec9SKyle Evans# BRAINPOOL256R1
76*f0865ec9SKyle Evansecho "BRAINPOOL256R1"
77*f0865ec9SKyle Evans$PYTHON $EXPAND_LIBECC --name="BRAINPOOL256R1" --prime=76884956397045344220809746629001649093037950200943055203735601445031516197751 --a=0x7D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9 --b=0x26DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B6 --gx=0x8BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262 --gy=0x547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F046997 --order=0xA9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7 --cofactor=1 --add-test-vectors=2
78*f0865ec9SKyle Evans
79*f0865ec9SKyle Evans# BRAINPOOL320R1
80*f0865ec9SKyle Evansecho "BRAINPOOL320R1"
81*f0865ec9SKyle Evans$PYTHON $EXPAND_LIBECC --name="BRAINPOOL320R1" --prime=1763593322239166354161909842446019520889512772719515192772960415288640868802149818095501499903527 --a=0x3EE30B568FBAB0F883CCEBD46D3F3BB8A2A73513F5EB79DA66190EB085FFA9F492F375A97D860EB4 --b=0x520883949DFDBC42D3AD198640688A6FE13F41349554B49ACC31DCCD884539816F5EB4AC8FB1F1A6 --gx=0x43BD7E9AFB53D8B85289BCC48EE5BFE6F20137D10A087EB6E7871E2A10A599C710AF8D0D39E20611 --gy=0x14FDD05545EC1CC8AB4093247F77275E0743FFED117182EAA9C77877AAAC6AC7D35245D1692E8EE1 --order=0xD35E472036BC4FB7E13C785ED201E065F98FCFA5B68F12A32D482EC7EE8658E98691555B44C59311 --cofactor=1 --add-test-vectors=2
82*f0865ec9SKyle Evans
83*f0865ec9SKyle Evans# BRAINPOOL384R1
84*f0865ec9SKyle Evansecho "BRAINPOOL384R1"
85*f0865ec9SKyle Evans$PYTHON $EXPAND_LIBECC --name="BRAINPOOL384R1" --prime=21659270770119316173069236842332604979796116387017648600081618503821089934025961822236561982844534088440708417973331 --a=0x7BC382C63D8C150C3C72080ACE05AFA0C2BEA28E4FB22787139165EFBA91F90F8AA5814A503AD4EB04A8C7DD22CE2826 --b=0x4A8C7DD22CE28268B39B55416F0447C2FB77DE107DCD2A62E880EA53EEB62D57CB4390295DBC9943AB78696FA504C11 --gx=0x1D1C64F068CF45FFA2A63A81B7C13F6B8847A3E77EF14FE3DB7FCAFE0CBD10E8E826E03436D646AAEF87B2E247D4AF1E --gy=0x8ABE1D7520F9C2A45CB1EB8E95CFD55262B70B29FEEC5864E19C054FF99129280E4646217791811142820341263C5315 --order=0x8CB91E82A3386D280F5D6F7E50E641DF152F7109ED5456B31F166E6CAC0425A7CF3AB6AF6B7FC3103B883202E9046565 --cofactor=1 --add-test-vectors=2
86*f0865ec9SKyle Evans
87*f0865ec9SKyle Evans# BRAINPOOL512R1
88*f0865ec9SKyle Evansecho "BRAINPOOL512R1"
89*f0865ec9SKyle Evans$PYTHON $EXPAND_LIBECC --name="BRAINPOOL512R1" --prime=8948962207650232551656602815159153422162609644098354511344597187200057010413552439917934304191956942765446530386427345937963894309923928536070534607816947 --a=0x7830A3318B603B89E2327145AC234CC594CBDD8D3DF91610A83441CAEA9863BC2DED5D5AA8253AA10A2EF1C98B9AC8B57F1117A72BF2C7B9E7C1AC4D77FC94CA --b=0x3DF91610A83441CAEA9863BC2DED5D5AA8253AA10A2EF1C98B9AC8B57F1117A72BF2C7B9E7C1AC4D77FC94CADC083E67984050B75EBAE5DD2809BD638016F723 --gx=0x81AEE4BDD82ED9645A21322E9C4C6A9385ED9F70B5D916C1B43B62EEF4D0098EFF3B1F78E2D0D48D50D1687B93B97D5F7C6D5047406A5E688B352209BCB9F822 --gy=0x7DDE385D566332ECC0EABFA9CF7822FDF209F70024A57B1AA000C55B881F8111B2DCDE494A5F485E5BCA4BD88A2763AED1CA2B2FA8F0540678CD1E0F3AD80892 --order=0xAADD9DB8DBE9C48B3FD4E6AE33C9FC07CB308DB3B3C9D20ED6639CCA70330870553E5C414CA92619418661197FAC10471DB1D381085DDADDB58796829CA90069 --cofactor=1 --add-test-vectors=2
90