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