xref: /freebsd/crypto/libecc/scripts/gen_openssl_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 EvansCURVES=`openssl ecparam -list_curves | grep prime | cut -d':' -f1 | tr '\n' ' '`
19*f0865ec9SKyle Evans
20*f0865ec9SKyle Evans# Find a suitable python command if none has been provided
21*f0865ec9SKyle Evansif [ -z "$PYTHON" ]
22*f0865ec9SKyle Evansthen
23*f0865ec9SKyle Evans        echo "Looking for suitable python and deps"
24*f0865ec9SKyle Evans        # Try to guess which python we want to use depending on the installed
25*f0865ec9SKyle Evans        # packages. We need Pyscard, Crypto, and IntelHex
26*f0865ec9SKyle Evans        for i in python python3 python2; do
27*f0865ec9SKyle Evans                if [ -x "`which $i`" ]; then
28*f0865ec9SKyle Evans                        echo "Found and using python=$i"
29*f0865ec9SKyle Evans                        PYTHON=$i
30*f0865ec9SKyle Evans                        break
31*f0865ec9SKyle Evans                fi
32*f0865ec9SKyle Evans        done
33*f0865ec9SKyle Evanselse
34*f0865ec9SKyle Evans        echo "Using user provided python=$PYTHON"
35*f0865ec9SKyle Evansfi
36*f0865ec9SKyle Evans
37*f0865ec9SKyle Evansif [ -z "$PYTHON" ]; then
38*f0865ec9SKyle Evans        echo "Failed to find working python cmd!" >&2
39*f0865ec9SKyle Evans        exit
40*f0865ec9SKyle Evansfi
41*f0865ec9SKyle Evans
42*f0865ec9SKyle Evans# Get the expand_libecc python script path
43*f0865ec9SKyle EvansBASEDIR=$(dirname "$0")
44*f0865ec9SKyle EvansEXPAND_LIBECC=$BASEDIR/expand_libecc.py
45*f0865ec9SKyle Evans
46*f0865ec9SKyle Evansfor curve in $CURVES
47*f0865ec9SKyle Evansdo
48*f0865ec9SKyle Evans	echo "Adding $curve"
49*f0865ec9SKyle Evans	openssl ecparam -param_enc explicit -outform DER -name $curve -out "$curve".der
50*f0865ec9SKyle Evans	$PYTHON $EXPAND_LIBECC --name="$curve" --ECfile="$curve".der --add-test-vectors=2
51*f0865ec9SKyle Evans	rm "$curve".der
52*f0865ec9SKyle Evansdone
53