#
# Menuconfig configuration file for OpenCA
# (c) 2002 by Massimiliano Pala and the OpenCA Group
#
# Thanks for the Linux Kernel group for providing us with the
# Menuconfig utility.
#

# Menuconfig settings
# define_bool CONFIG_EXPERIMENTAL y

# General Setup Values
define_string PREFIX /usr/local
define_string OPENCA_PREFIX $PREFIX/OpenCA
define_string MODULE_PREFIX
define_string LANGUAGE english
define_string OPENCA_USER root
define_string OPENCA_GROUP root
define_bool INSTALL_CA y
define_bool INSTALL_RASERVER n
define_bool INSTALL_ONLINE n
define_bool INSTALL_LDAP n
define_bool INSTALL_PUBLIC n
define_bool USE_SENDMAIL y
define_string SERVICE_EMAIL_ADDRESS support@openca.org


# OpenCA directory structure
define_string ETC_PREFIX $OPENCA_PREFIX/etc
define_string LIB_PREFIX $OPENCA_PREFIX/lib
define_string VAR_PREFIX $OPENCA_PREFIX/var
define_string CA_PREFIX $OPENCA_PREFIX/ca
define_string RA_PREFIX $OPENCA_PREFIX/ra
define_string ONLINE_PREFIX $OPENCA_PREFIX/online
define_string PUB_PREFIX $OPENCA_PREFIX/pub
define_string LDAP_PREFIX $OPENCA_PREFIX/ldap
define_string SCEP_PREFIX $OPENCA_PREFIX/scep

# Unique Serials definitions
define_int MODULE_SHIFT 8
define_int RA_MODULE_ID 1
define_int PUB_MODULE_ID 32

# Web Interface options
define_string WEB_HOST localhost
define_string HTTPD_HOST $WEB_HOST
define_string HTTPD_USER nobody
define_string HTTPD_GROUP nogroup
define_string HTTPD_URL_PREFIX
define_string HTTPD_FS_PREFIX $PREFIX/apache
define_string CGI_FS_PREFIX $HTTPD_FS_PREFIX/cgi-bin
define_string CGI_URL_PREFIX $HTTPD_URL_PREFIX/cgi-bin

# CA Interface options
define_string CA_HTDOCS_FS_PREFIX $HTTPD_FS_PREFIX/ca
define_string CA_HTDOCS_URL_PREFIX $HTTPD_URL_PREFIX/ca
define_string CA_CGI_FS_PREFIX $CGI_FS_PREFIX/ca
define_string CA_CGI_URL_PREFIX $CGI_URL_PREFIX/ca
define_string CA_ORGANIZATION OpenCA
define_string CA_LOCALITY
define_string CA_COUNTRY IT

# Online Interface options
define_string ONLINE_HTDOCS_FS_PREFIX $HTTPD_FS_PREFIX/online
define_string ONLINE_HTDOCS_URL_PREFIX $HTTPD_URL_PREFIX/online
define_string ONLINE_CGI_FS_PREFIX $CGI_FS_PREFIX/online
define_string ONLINE_CGI_URL_PREFIX $CGI_URL_PREFIX/online

# RA Interface options
define_string RA_HTDOCS_FS_PREFIX $HTTPD_FS_PREFIX/ra
define_string RA_HTDOCS_URL_PREFIX $HTTPD_URL_PREFIX/ra
define_string RA_CGI_FS_PREFIX $CGI_FS_PREFIX/ra
define_string RA_CGI_URL_PREFIX $CGI_URL_PREFIX/ra

# Pub Interface options
define_string PUB_HTDOCS_FS_PREFIX $HTTPD_FS_PREFIX/pub
define_string PUB_HTDOCS_URL_PREFIX $HTTPD_URL_PREFIX/pub
define_string PUB_CGI_FS_PREFIX $CGI_FS_PREFIX/pub
define_string PUB_CGI_URL_PREFIX $CGI_URL_PREFIX/pub

# LDAP Interface options
define_bool USE_LDAP y
define_string LDAP_HTDOCS_FS_PREFIX $HTTPD_FS_PREFIX/ldap
define_string LDAP_HTDOCS_URL_PREFIX $HTTPD_URL_PREFIX/ldap
define_string LDAP_CGI_FS_PREFIX $CGI_FS_PREFIX/ldap
define_string LDAP_CGI_URL_PREFIX $CGI_URL_PREFIX/ldap
define_string LDAP_HOST $WEB_HOST
define_int LDAP_PORT 389
define_string LDAP_ROOT cn=LDAP Manager, o=$CA_ORGANIZATION, c=$CA_COUNTRY
define_string LDAP_ROOT_PWD secret

# SCEP Interface options
# define_string SCEP_HTDOCS_FS_PREFIX $HTTPD_FS_PREFIX/
# define_string SCEP_HTDOCS_URL_PREFIX $HTTPD_URL_PREFIX/
define_string SCEP_CGI_FS_PREFIX $CGI_FS_PREFIX/
define_string SCEP_CGI_URL_PREFIX $CGI_URL_PREFIX/
define_string OPENSCEP_OPENSSL_PREFIX /usr

# OpenSSL options
define_string OPENSSL_PREFIX /usr/local/bin
define_bool OPENSSL_ENGINE n

# Basic DBMS options
define_bool ENABLE_DB y
define_bool ENABLE_DBI n
define_bool ENABLE_RBAC n
define_bool DBMS_PG y
define_string DB_TYPE Pg
define_string DB_NAME openca
define_string DB_HOST localhost
define_int DB_PORT 5432
define_string DB_USER openca
define_string DB_PASSWD

# Optional boolean modules options
define_bool INSTALL_OCSPD n
define_string OCSPD_BIND 127.0.0.1
define_int OCSPD_PORT 2560
define_bool INSTALL_OPENSCEP n

########################## Main Menu ##############################
mainmenu_name "OpenCA Configuration"

# comment 'General menu configuration'

mainmenu_option next_comment
comment 'Code maturity level options'
bool 'Prompt for devel/incomplete options' CONFIG_EXPERIMENTAL
endmenu

########################## OpenCA Components ########################
comment 'Install components'

mainmenu_option next_comment
comment 'Certification Authority'

bool 'Install CA' INSTALL_CA
if [ "$INSTALL_CA" = "y" ] ; then
	comment "CA Installation"
fi
endmenu

mainmenu_option next_comment
comment 'Registration Authority'

bool 'Install RA server' INSTALL_RASERVER
if [ "$INSTALL_RASERVER" = "y" ] ; then
	comment 'null options'
fi
endmenu

mainmenu_option next_comment
comment 'Online Registration Authority'
bool 'Install RA Online server' INSTALL_ONLINE
if [ "$INSTALL_ONLINE" = "y" ] ; then
	comment 'null options'
fi

endmenu

mainmenu_option next_comment
comment 'Public Interface'

bool 'Install Public interface' INSTALL_PUBLIC
if [ "$INSTALL_PUBLIC" = "y" ] ; then
	comment 'null options'
fi
endmenu

##################################### OpenCA Modules #####################
comment 'Modules'

mainmenu_option next_comment
comment 'Basic modules'

comment 'Database System'
choice 'DBMS system installed' \
	"BerkeleyDB             ENABLE_DB \
	 SQL                    ENABLE_DBI"

if [ "$ENABLE_DBI" = "y" ] ; then
	choice 'Database system' \
	"Postgress		DBMS_PG \
	 MySQL			DBMS_MySQL \
	 DB2			DBMS_DB2 \
	 Oracle			DBMS_ORACLE"

	if [ "$DBMS_PG" = "y" ] ; then
		DBMS_TYPE=Pg
	fi

	if [ "$DBMS_MySQL" = "y" ] ; then
		DBMS_TYPE=MYSQL
	fi

	if [ "$DBMS_DB2" = "y" ] ; then
		DBMS_TYPE=DB2
	fi

	if [ "$DBMS_ORACLE" = "y" ] ; then
		DBMS_TYPE=ORACLE
	fi

	string 'DB Host' DB_HOST
	int 'DB port' DB_PORT
	string 'DB name' DB_NAME
	string 'DB user' DB_USER
	string 'DB password' DB_PASSWD
fi

bool 'LDAP support' INSTALL_LDAP

endmenu

mainmenu_option next_comment
comment 'Optional modules'

dep_bool 'OCSPD support (EXPERIMENTAL)' INSTALL_OCSPD $CONFIG_EXPERIMENTAL
if [ "$INSTALL_OCSPD" = "y" ] ; then
	string 'iface binding address' OCSPD_BIND
	int 'OCSPD port' OCSPD_PORT
fi

dep_bool 'OpenSCEP support (EXPERIMENTAL)' INSTALL_OPENSCEP $CONFIG_EXPERIMENTAL

endmenu

############################# Crypto Backend #####################
comment 'Cryptographic backend'

mainmenu_option next_comment
comment 'OpenSSL'

string 'OpenSSL prefix' OPENSSL_PREFIX
if [ "$CONFIG_EXPERIMENTAL" = "y" ] ; then
	bool 'ENGINE support' OPENSSL_ENGINE
fi

endmenu

endmenu
