#!/bin/bash # example usage # ./generate_SignedCA.sh rsa_private.pem rsa_public.pem ../../../../../../../wolfssl/certs/ca-cert.der ../../../../../../../wolfssl # ./generate_SignedCA.sh rsa_private.pem rsa_public.pem ../../../../../../../wolfssl/certs/ca-ecc-cert.der ../../../../../../../wolfssl # SIGOPT=rsa_padding_mode:pss SIGOPT2=rsa_pss_saltlen:-1 CURRENT=$(cd $(dirname $0);pwd) function usage() { cat <<- _EOT_ Usage: $0 private-key public-key file-name wolfssl-dir Options: private-key : private key for sign/verify public-key : public key for verify file-name : file name to be signed wolfssl-dir : wolfssl folder path _EOT_ exit 1 } if [ $# -ne 4 ]; then usage fi # $1 private key for sign/verify # $2 public key for verify # $3 file for sign/verify signed_file=$(basename $3) wolf_dir=$4 openssl dgst -sha256 -sign $1 -sigopt $SIGOPT -sigopt $SIGOPT2 -out ${CURRENT}/${signed_file}.sign $3 echo Verify by private key openssl dgst -sha256 -prverify $1 -sigopt $SIGOPT -sigopt $SIGOPT2 -signature ${CURRENT}/${signed_file}.sign $3 echo Verify by public key openssl dgst -sha256 -verify $2 -sigopt $SIGOPT -sigopt $SIGOPT2 -signature ${CURRENT}/${signed_file}.sign $3 # Convert Signed CA to c source ${wolf_dir}/scripts/dertoc.pl ${CURRENT}/${signed_file}.sign XXXXXXX ${signed_file}.c