#!/bin/sh

mbedtls_enable() {
	if [ "$1" = "" ]; then
		return
	fi
	perl -pi -e "s/^\/\/#define ${1}$/#define ${1}/" include/mbedtls/config.h
}

mbedtls_disable() {
	if [ "$1" = "" ]; then
		return
	fi
	perl -pi -e "s/^#define ${1}$/\/\/#define ${1}/" include/mbedtls/config.h
}

cd `dirname $0`

if [ ! `which curl` ]; then
	echo "Curl not found."
	exit
fi

echo "Downloading mbed TLS latest version."
curl -sO https://codeload.github.com/ARMmbed/mbedtls/zip/development
unzip -q development
rm -f development
version=`grep "^=" mbedtls-development/ChangeLog | head -1 | cut -f4 -d' '`

echo "Removing current mbed TLS library."
rm -rf include
rm -rf library

echo "Installing new mbed TLS library."
mv mbedtls-development/ChangeLog .
mv mbedtls-development/include .
mv mbedtls-development/library .

mbedtls_enable MBEDTLS_THREADING_PTHREAD
mbedtls_enable MBEDTLS_THREADING_C

echo "Disabling RC4, secp192r1 and secp192k1."
mbedtls_disable MBEDTLS_ARC4_C
mbedtls_disable MBEDTLS_ECP_DP_SECP192R1_ENABLED
mbedtls_disable MBEDTLS_ECP_DP_SECP192K1_ENABLED

if [ -f ${version}.patch ]; then
	echo "Applying patch."
	patch -p1 < ${version}.patch
fi

echo "Cleaning up."
rm -f include/.gitignore
rm -f library/.gitignore
rm -rf mbedtls-development

echo "mbed TLS upgraded to version ${version}."
