Home | History | Annotate | Line # | Download | only in x509
      1  1.1  joerg #!/bin/sh
      2  1.1  joerg #
      3  1.3    nia # $NetBSD: pkgsrc.sh,v 1.3 2021/04/10 19:49:59 nia Exp $
      4  1.1  joerg #
      5  1.1  joerg 
      6  1.1  joerg CA="openssl ca -config pkgsrc.cnf"
      7  1.1  joerg REQ="openssl req -config pkgsrc.cnf"
      8  1.1  joerg 
      9  1.1  joerg set -e
     10  1.1  joerg 
     11  1.1  joerg new_ca() {
     12  1.1  joerg 	if [ -f $1/serial ]; then
     13  1.1  joerg 		echo "CA already exists, exiting" >& 2
     14  1.1  joerg 		exit 1
     15  1.1  joerg 	fi
     16  1.1  joerg 
     17  1.1  joerg 	mkdir -p $1/certs $1/crl $1/newcerts $1/private
     18  1.1  joerg 	echo "00" > $1/serial
     19  1.1  joerg 	touch $1/index.txt
     20  1.1  joerg 
     21  1.1  joerg 	echo "Making CA certificate ..."
     22  1.1  joerg 	$REQ -new -keyout $1/private/cakey.pem \
     23  1.1  joerg 		   -out $1/careq.pem
     24  1.1  joerg 	$CA -out $1/cacert.pem -batch \
     25  1.1  joerg 		   -keyfile $1/private/cakey.pem -selfsign \
     26  1.1  joerg 		   -infiles $1/careq.pem
     27  1.1  joerg }
     28  1.1  joerg 
     29  1.1  joerg new_pkgkey() {
     30  1.1  joerg 	$REQ -new -keyout pkgkey_key.pem -out pkgkey_req.pem
     31  1.1  joerg 	$CA -extensions pkgkey -policy policy_match -out pkgkey_cert.pem -infiles pkgkey_req.pem
     32  1.1  joerg 	rm pkgkey_req.pem
     33  1.1  joerg 	echo "Signed certificate is in pkgkey_cert.pem, key in pkgkey_key.pem"
     34  1.1  joerg }
     35  1.1  joerg 
     36  1.1  joerg new_pkgsec() {
     37  1.1  joerg 	$REQ -new -keyout pkgsec_key.pem -out pkgsec_req.pem
     38  1.1  joerg 	$CA -extensions pkgsec -policy policy_match -out pkgsec_cert.pem -infiles pkgsec_req.pem
     39  1.1  joerg 	rm pkgsec_req.pem
     40  1.1  joerg 	echo "Signed certificate is in pkgsec_cert.pem, key in pkgsec_key.pem"
     41  1.1  joerg }
     42  1.1  joerg 
     43  1.1  joerg usage() {
     44  1.1  joerg 	echo "$0:"
     45  1.1  joerg 	echo "setup - create new CA in ./pkgsrc for use by pkg_install"
     46  1.1  joerg 	echo "pkgkey - create and sign a certificate for binary packages"
     47  1.1  joerg 	echo "pkgsec - create and sign a certificate for pkg-vulnerabilities"
     48  1.1  joerg }
     49  1.1  joerg 
     50  1.1  joerg case "$1" in
     51  1.1  joerg setup)
     52  1.1  joerg 	new_ca ./pkgsrc
     53  1.1  joerg 	;;
     54  1.1  joerg pkgkey)
     55  1.1  joerg 	new_pkgkey
     56  1.1  joerg 	;;
     57  1.1  joerg pkgsec)
     58  1.1  joerg 	new_pkgsec
     59  1.1  joerg 	;;
     60  1.1  joerg *)
     61  1.1  joerg 	usage
     62  1.1  joerg 	;;
     63  1.1  joerg esac
     64