#!/bin/bash

function polarssl_enable {
	if [ "$1" = "" ]; then
		return
	fi
	sed -i "s/^\/\/#define ${1}$/#define ${1}/" include/polarssl/config.h
}

function polarssl_disable {
	if [ "$1" = "" ]; then
		return
	fi
	sed -i "s/^#define ${1}$/\/\/#define ${1}/" include/polarssl/config.h
}

cd `dirname $0`

if [ "$1" = "" ]; then
	version=`curl -s https://polarssl.org/download/latest-stable-version`
else
	version=${1}
fi

echo "Downloading PolarSSL version ${version}."
wget --no-check-certificate -qO polarssl.tgz "https://polarssl.org/download/polarssl-${version}-gpl.tgz?do=yes"

if [ ! -s polarssl.tgz ]; then 
	rm -f polarssl.tgz
	echo "Download error."
	exit
fi

echo "Removing current PolarSSL library."
rm -rf include
rm -rf library

echo "Installing new PolarSSL library."
tar -xzf polarssl.tgz
dir=`tar -tzf polarssl.tgz | head -n1 | sed 's/\/$//'`
mv ${dir}/ChangeLog .
mv ${dir}/include .
mv ${dir}/library .

echo "Disabling SSL3.0 and RC4."
polarssl_disable POLARSSL_SSL_PROTO_SSL3
polarssl_disable POLARSSL_ARC4_C
polarssl_enable  POLARSSL_REMOVE_ARC4_CIPHERSUITES

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

echo "Cleaning up."
rm -f include/.gitignore
rm -f library/.gitignore
rm -rf ${dir}
rm polarssl.tgz

echo "PolarSSL upgraded to version ${version}."
