diff options
author | Manuel Pégourié-Gonnard <mpg@elzevir.fr> | 2014-12-19 18:06:47 +0100 |
---|---|---|
committer | Manuel Pégourié-Gonnard <mpg@elzevir.fr> | 2015-02-16 17:28:10 +0000 |
commit | 500de6eb184629f245d1b3ec3eb302b631588f88 (patch) | |
tree | c002806ef9d890111a749ef08752d6d7832de0c1 | |
parent | 71e75dc2f06b043e312396ff94c4b9652a4010b0 (diff) | |
download | mbedtls-500de6eb184629f245d1b3ec3eb302b631588f88.zip mbedtls-500de6eb184629f245d1b3ec3eb302b631588f88.tar.gz mbedtls-500de6eb184629f245d1b3ec3eb302b631588f88.tar.bz2 |
New script ecc-heap.sh
-rwxr-xr-x | scripts/ecc-heap.sh | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/scripts/ecc-heap.sh b/scripts/ecc-heap.sh new file mode 100755 index 0000000..edd4132 --- /dev/null +++ b/scripts/ecc-heap.sh @@ -0,0 +1,69 @@ +#!/bin/sh + +# Measure heap usage (and perfomance) of ECC operations with various values of +# the relevant tunable compile-time parameters. + +set -eu + +CONFIG_H='include/polarssl/config.h' + +if [ -r $CONFIG_H ]; then :; else + echo "$CONFIG_H not found" >&2 + exit 1 +fi + +if grep -i cmake Makefile >/dev/null; then :; else + echo "Needs Cmake" >&2 + exit 1 +fi + +if git status | grep -F $CONFIG_H >/dev/null 2>&1; then + echo "config.h not clean" >&2 + exit 1 +fi + +CONFIG_BAK=${CONFIG_H}.bak +cp $CONFIG_H $CONFIG_BAK + +cat << EOF >$CONFIG_H +#define POLARSSL_PLATFORM_C +#define POLARSSL_PLATFORM_MEMORY +#define POLARSSL_MEMORY_BUFFER_ALLOC_C +#define POLARSSL_MEMORY_DEBUG + +#define POLARSSL_TIMING_C + +#define POLARSSL_BIGNUM_C +#define POLARSSL_ECP_C +#define POLARSSL_ASN1_PARSE_C +#define POLARSSL_ASN1_WRITE_C +#define POLARSSL_ECDSA_C +#define POLARSSL_ECDH_C + +#define POLARSSL_ECP_DP_SECP192R1_ENABLED +#define POLARSSL_ECP_DP_SECP224R1_ENABLED +#define POLARSSL_ECP_DP_SECP256R1_ENABLED +#define POLARSSL_ECP_DP_SECP384R1_ENABLED +#define POLARSSL_ECP_DP_SECP521R1_ENABLED + +#include "check_config.h" + +//#define POLARSSL_ECP_WINDOW_SIZE 6 +//#define POLARSSL_ECP_FIXED_POINT_OPTIM 1 +EOF + +for F in 0 1; do + for W in 2 3 4 5 6; do + scripts/config.pl set POLARSSL_ECP_WINDOW_SIZE $W + scripts/config.pl set POLARSSL_ECP_FIXED_POINT_OPTIM $F + make benchmark >/dev/null 2>&1 + echo "fixed point optim = $F, max window size = $W" + echo "--------------------------------------------" + programs/test/benchmark + done +done + +# cleanup + +mv $CONFIG_BAK $CONFIG_H +make clean |