#!/bin/bash
 
# dkcreator - DomainKeys Creator script
# Version 0.01 - 29/Oct/2004
#
# Author: Toni de la Fuente Diaz
# http://blyx.com
#
# ENGLISH
# dkcreator is a simple script that creates public and private
# keys with Openssl and show a line to add to DNS server
# valid for BIND8 and above.
#
# SPANISH
# dkcreator es un simple script que crea las claves publica
# y privada con Openssl. Ademas muestra la correspondiente
# linea para añadir al servidor DNS, valido para BIND8 y
# superior.
#
 
ARGS=3
 
if [ $# -ne "$ARGS" ]; then
  echo
  echo "   ENGLISH"
  echo "   Usage: `basename $0` <selector> <domain> <keyleng>"
  echo "   Example: dkcreator october blyx.com 1024"
  echo "   Valid keyleng are 512, 768, 1024, 1536 or 2048"
  echo
  echo "   For more info please read the draft like me ;)"
  echo "   http://antispam.yahoo.com/domainkeys/draft-delany-domainkeys-base-01.txt"
  echo
  echo "   SPANISH"
  echo "   Uso: `basename $0` <selector> <dominio> <longitud-de-clave>"
  echo "   Ejemplo: dkcreator october blyx.com 1024"
  echo "   Longitud de clave valida: 512, 768, 1024, 1536 o 2048"
  echo
  echo "   Para mas info por favor lee el borrador como he hecho yo ;)"
  echo "   http://antispam.yahoo.com/domainkeys/draft-delany-domainkeys-base-01.txt"
  echo
  exit 65
fi
 
OPENSSL=/usr/bin/openssl
 
# Making private key
$OPENSSL genrsa -out $PWD/rsa.private.$1.$2 $3 2> /dev/null
chmod 600 $PWD/rsa.private.$1.$2
 
# Making public key
$OPENSSL rsa -in $PWD/rsa.private.$1.$2 -out $PWD/rsa.public.$1.$2 -pubout -outform PEM 2> /dev/null
 
PUBKEY=`grep -v "PUBLIC KEY" $PWD/rsa.public.$1.$2 | tr -s "\n" -d " "`
 
echo
echo "Copy and paste this line in your domain name zone:"
echo "Copia y pega esta linea en la zona correspondiente a tu dominio:"
echo
echo "$1._domainkey     IN      TXT     \"t=y; k=rsa; p=$PUBKEY\""
echo

