wolfssl-examples/mynewt/setup.sh

67 lines
2.3 KiB
Bash
Executable File

#!/bin/bash -e
# this scrypt deploy wolfssl and wolfcrypto source code to mynewt project
# run as bash "mynewt project root directory path"
SCRIPTDIR=`dirname $0`
SCRIPTDIR=`cd $SCRIPTDIR && pwd -P`
WOLFSSL_MYNEWTDIR=${SCRIPTDIR}
WOLFSSL_MYNEWTDIR=`cd $WOLFSSL_MYNEWTDIR && pwd -P`
BASEDIR=${SCRIPTDIR}/../..
BASEDIR=`cd ${BASEDIR} && pwd -P`
if [ $# -ne 1 ]; then
echo "Usage: $0 'mynewt project root directory path'" 1>&2
exit 1
fi
MYNEWT_PROJECT=$1
if [ ! -d $MYNEWT_PROJECT ] || [ ! -f $MYNEWT_PROJECT/project.yml ]; then
echo "target directory is not mynewt project.: $MYNEWT_PROJECT"
exit 1
fi
pushd $MYNEWT_PROJECT > /dev/null
echo "create apps/wolfsslclienttlsmn pkg"
/bin/rm -rf apps/wolfsslclienttlsmn
newt pkg new -t app apps/wolfsslclienttlsmn
/bin/rm -rf apps/wolfsslclienttlsmn/include
/bin/rm -rf apps/wolfsslclienttlsmn/src
/bin/mkdir -p apps/wolfsslclienttlsmn/src
popd > /dev/null # $MYNEWT_PROJECT
# deploy source files and pkg
pushd $BASEDIR > /dev/null
# deploy wolfssl client-tls to apps/wolfsslclienttlsmn
echo "deploy wolfssl client-tls to apps/wolfsslclienttlsmn"
/bin/cp $WOLFSSL_MYNEWTDIR/apps.wolfsslclienttlsmn.pkg.yml $MYNEWT_PROJECT/apps/wolfsslclienttlsmn/pkg.yml
/bin/cp $WOLFSSL_MYNEWTDIR/apps.wolfsslclienttlsmn.syscfg.yml $MYNEWT_PROJECT/apps/wolfsslclienttlsmn/syscfg.yml
/bin/mkdir -p $MYNEWT_PROJECT/apps/wolfsslclienttlsmn/src
/bin/cp $WOLFSSL_MYNEWTDIR/client-tls-mn.c $MYNEWT_PROJECT/apps/wolfsslclienttlsmn/src/main.c
/bin/cp $WOLFSSL_MYNEWTDIR/custom_ca.h $MYNEWT_PROJECT/apps/wolfsslclienttlsmn/src/custom_ca.h
# Generate local_ca.h from certs/ca-cert.pem.
LOCAL_CA_HEADER=$MYNEWT_PROJECT/apps/wolfsslclienttlsmn/src/local_ca.h
{
echo "/* Generated by mynewt/setup.sh from wolfssl-examples/certs/ca-cert.pem. */"
echo "#ifndef LOCAL_CA_H"
echo "#define LOCAL_CA_H"
echo "static const unsigned char local_ca_der[] = {"
openssl x509 -in $WOLFSSL_MYNEWTDIR/../certs/ca-cert.pem -outform der | xxd -i
echo "};"
echo "static const int sizeof_local_ca_der = sizeof(local_ca_der);"
echo "#endif /* LOCAL_CA_H */"
} > $LOCAL_CA_HEADER
if ! grep -q '0x' $LOCAL_CA_HEADER; then
echo "Error: generated $LOCAL_CA_HEADER has no CA bytes -- is" \
"$WOLFSSL_MYNEWTDIR/../certs/ca-cert.pem missing or unreadable?" 1>&2
exit 1
fi
popd > /dev/null # $BASEDIR