#!/bin/bash set -e cd "$(dirname $0)" # Run this script to generate files used by tests. echo "Creating protosets..." protoc testing/test.proto \ --include_imports \ --descriptor_set_out=testing/test.protoset protoc testing/example.proto \ --include_imports \ --descriptor_set_out=testing/example.protoset echo "Creating certs for TLS testing..." if ! hash certstrap 2>/dev/null; then # certstrap not found: try to install it go get github.com/square/certstrap go install github.com/square/certstrap fi function cs() { certstrap --depot-path testing/tls "$@" --passphrase "" } rm -rf testing/tls # Create CA cs init --years 10 --common-name ca # Create client cert cs request-cert --common-name client cs sign client --years 10 --CA ca # Create server cert cs request-cert --common-name server --ip 127.0.0.1 --domain localhost cs sign server --years 10 --CA ca # Create another server cert for error testing cs request-cert --common-name other --ip 1.2.3.4 --domain foobar.com cs sign other --years 10 --CA ca # Create another CA and client cert for more # error testing cs init --years 10 --common-name wrong-ca cs request-cert --common-name wrong-client cs sign wrong-client --years 10 --CA wrong-ca # Create expired cert cs request-cert --common-name expired --ip 127.0.0.1 --domain localhost cs sign expired --years 0 --CA ca