#! /bin/sh
#
# $Id: mkimapdcert.in,v 1.2 2000/09/18 11:14:24 mrsam Exp $
#
# Copyright 2000 Double Precision, Inc.  See COPYING for
# distribution information.
#
# This is a short script to quickly generate a self-signed X.509 key for
# IMAP over SSL.  Normally this script would get called by an automatic
# package installation routine.

if test -f /etc/ssl/private/imapd.pem
then
	echo "/etc/ssl/private/imapd.pem already exists."
	exit 1
fi

cp /dev/null /etc/ssl/private/imapd.pem
chmod 600 /etc/ssl/private/imapd.pem
chown root /etc/ssl/private/imapd.pem

cleanup() {
	rm -f /etc/ssl/private/imapd.pem
	rm -f /etc/ssl/private/imapd.rand
	exit 1
}

dd if=/dev/urandom of=/etc/ssl/private/imapd.rand count=1 2>/dev/null
/usr/sbin/openssl req -new -x509 -days 365 -nodes \
	-config /etc/imapd.cnf -out /etc/ssl/private/imapd.pem -keyout /etc/ssl/private/imapd.pem || cleanup
/usr/sbin/openssl gendh -rand /etc/ssl/private/imapd.rand 512 >>/etc/ssl/private/imapd.pem || cleanup
/usr/sbin/openssl x509 -subject -dates -fingerprint -noout -in /etc/ssl/private/imapd.pem || cleanup
rm -f /etc/ssl/private/imapd.rand
