#! /bin/ksh

# Global variables
#------------------

# Minimum java version needed to run this script
MIN_JAVA_VERSION="1.4"

# Where we are
EXEC_DIR=`dirname $0`
MFWK_ROOT=${EXEC_DIR}/..

# OS
OS=`uname -s`

# OS dependant variables
if [ "${OS}" = "SunOS" ]
then
  WHICH="/bin/ksh whence"
  GREP="/usr/bin/grep" 
  PKGINFO="/usr/bin/pkginfo"
  SED="/usr/bin/sed"
  PKGCHK="/usr/sbin/pkgchk"
  ECHO="echo"
  CUT="/usr/bin/cut"
  LS="/usr/bin/ls"
  CHGRP="/usr/bin/chgrp"
  CHMOD="/usr/bin/chmod"
  CHOWN="/usr/bin/chown"
  MKDIR="/usr/bin/mkdir"
elif [ "${OS}" = "Linux" ]
then
  WHICH="which --skip-alias"
  GREP="/bin/grep"
  RPM="/bin/rpm"
  ECHO="/bin/echo -e"
  CUT="/bin/cut"
  LS="/bin/ls"
  CHGRP="/bin/chgrp"
  CHMOD="/bin/chmod"
  CHOWN="/bin/chown"
  MKDIR="/bin/mkdir"
else
  echo "Not supported operating system: ${OS}"
  exit 1
fi

# Call mfwksetup to get the java location
MFWK_JAVA_HOME=`${EXEC_DIR}/mfwksetup list-settings | grep MFWK_JAVA_HOME | cut -d'=' -f2`
if [ -z "${MFWK_JAVA_HOME}" ]
then
    $ECHO "No Java runtime found."
    exit 1
fi
JAVA=${MFWK_JAVA_HOME}/bin/java
KEYTOOL=${MFWK_JAVA_HOME}/bin/keytool
# Paranoid checks
if [ ! -x ${JAVA} ]
then
    $ECHO "java executable not found."
    exit 1
fi
if [ ! -x ${KEYTOOL} ]
then
    $ECHO "keytool executable not found."
    exit 1
fi

# Call mfwksetup to get the NSS lib location
NSS_LIB_HOME=`${EXEC_DIR}/mfwksetup list-settings | grep NSS_LIB_HOME | cut -d'=' -f2`
if [ -z "${NSS_LIB_HOME}" ]
then
    $ECHO "Cannot find NSS libs."
    exit 1
fi
# set the LD_LIBRARY_PATH, as some old libs may exist on the machine
LD_LIBRARY_PATH=${NSS_LIB_HOME}:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH

# Call mfwksetup to get the NSS tools location
NSS_TOOLS_HOME=`${EXEC_DIR}/mfwksetup list-settings | grep NSS_TOOLS_HOME | cut -d'=' -f2`
if [ -z "${NSS_TOOLS_HOME}" ]
then
    $ECHO "Cannot find NSS tools."
    exit 1
fi
CERTUTIL=${NSS_TOOLS_HOME}/certutil
# Paranoid checks
if [ ! -x ${CERTUTIL} ]
then
    $ECHO "certutil executable not found."
    exit 1
fi
# Needed for password generation
if [ "${OS}" = "SunOS" ]
then
  CLASSPATH=${MFWK_ROOT}/lib/mfwk_instrum_tk.jar
elif [ "${OS}" = "Linux" ]
then
  CLASSPATH=${MFWK_ROOT}/share/lib/mfwk_instrum_tk.jar
fi

# Keytool/NSS
ALGO="RSA"
KEYSIZE=1024
SIGALGO="MD5withRSA"
VALIDITY=7300
VALIDITY_MONTH=240
DNAME="CN=mwfk_ca, OU=mfwk_agent, O=Sun Microsystems, L=Grenoble, ST=France, C=FR"
CA_DNAME="CN=`hostname`, OU=mfwk_agent, O=Sun Microsystems, L=Grenoble, ST=France, C=FR"
STORETYPE="jks"

# Paths
if [ "${OS}" = "SunOS" ]
then
  SECURITY_DIR=${SECURITY_DIR:-/etc/opt/SUNWmfwk/config/security}
fi

if [ "${OS}" = "Linux" ]
then
  SECURITY_DIR=${SECURITY_DIR:-/etc/opt/sun/mfwk/config/security}
fi
OUTPUT_DIR=${OUTPUT_DIR:-$SECURITY_DIR}

AGENT_KEYSTORE=${SECURITY_DIR}/jsse/keystore
AGENT_TRUSTSTORE=${SECURITY_DIR}/jsse/truststore
AGENT_PASS_FILE=${SECURITY_DIR}/password.agent
TRUST_PASS_FILE=${SECURITY_DIR}/password.cp
AGENT_PRIV_ALIAS=mfwk_agent
AGENT_TRUST_PASS="mfwktrust"
AGENT_DISC_PRIV_ALIAS=discovery

# Security files ownership
SECURITY_FILE_OWNER_USER=root
SECURITY_FILE_OWNER_GROUP=root

# keygen macros
SECURITY_AGT_UMASK=600
SECURITY_DIRECTORY_UMASK="755"
SECURITY_CPS_UMASK="644"
PASSWD_FILE_UMASK=644

# Bugid 6356370
SAVED_UMASK=`umask`

GEN_PASS_CLASS="com.sun.mfwk.security.password.MfPassword"
GEN_SEED_CLASS="com.sun.mfwk.security.genkey.MfRandom"
MFWK_TMP_SEED=/tmp/mfwk.seed

TMP_OUT=/tmp/mfwkcmd.$$.out

