--- loncom/CrGenerate.pl 2004/06/29 10:47:46 1.1 +++ loncom/CrGenerate.pl 2004/06/29 11:32:06 1.3 @@ -2,7 +2,7 @@ # The LearningOnline Network # CrGenerate - Generate a loncapa certificate request. # -# $Id: CrGenerate.pl,v 1.1 2004/06/29 10:47:46 foxr Exp $ +# $Id: CrGenerate.pl,v 1.3 2004/06/29 11:32:06 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -54,16 +54,17 @@ use LONCAPA::Configuration; # Global variable declarations: -$SSLCommand; # Full path to openssl command. -$CertificateDirectory; # LONCAPA Certificate directory. -$KeyFilename; # Key filename (within CertificateDirectory). -$Passphrase="loncapawhatever"; # Initial passphrase for keyfile -$RequestEmail; # Email address of loncapa cert admin. +my $SSLCommand; # Full path to openssl command. +my $CertificateDirectory; # LONCAPA Certificate directory. +my $KeyFilename; # Key filename (within CertificateDirectory). +my $Passphrase="loncapawhatever"; # Initial passphrase for keyfile +my $RequestEmail; # Email address of loncapa cert admin. + + # Debug/log support: # - -$DEBUG = 1; # 1 for on, 0 for off. +my $DEBUG = 1; # 1 for on, 0 for off. # Send debugging to stderr. # Parameters: @@ -72,14 +73,68 @@ $DEBUG = 1; # 1 for on, 0 for off. # $DEBUG - message is only written if this is true. # sub Debug { - $msg = shift; + my $msg = shift; if($DEBUG) { print STDERR "$msg\n"; } } +# +# Read the LonCAPA web config files to get the values of the +# configuration global variables we need: +# Implicit inputs: +# loncapa.conf - configuration file to read (user specific). +# Implicit outputs (see global variables section): +# SSLCommand, +# CertificateDirectory +# KeyfileName +# RequestEmail +# Side-Effects: +# Exit with error if cannot complete. +# +sub ReadConfig { + + Debug("Reading configuration"); + my $perlvarref = LONCAPA::Configuration::read_conf('loncapa.conf'); + + # Name of the SSL Program + + if($perlvarref->{SSLProgram}) { + $SSLCommand = $perlvarref->{SSLProgram}; + Debug("SSL Command: $SSLCommand"); + } + else { + die "Unable to read the SSLCommand configuration option\n"; + } + + # Where the certificates, and host key are installed: -sub ReadConfig {} + if($perlvarref->{lonCertificateDirectory}) { + $CertificateDirectory = $perlvarref->{lonCertificateDirectory}; + Debug("Local certificate Directory: $CertificateDirectory"); + } + else { + die "Unable to read SSLDirectory configuration option\n"; + } + # The name of the host key file (to be installed in SSLDirectory). + # + if($perlvarref->{lonnetPrivateKey}) { + $KeyFilename = $perlvarref->{lonnetPrivateKey}; + Debug("Private key will be installed as $KeyFilename"); + } + else { + die "Unable to read lonnetPrivateKey conrig paraemter\n"; + } + # The email address to which the certificate request is sent: + + if($perlvarref->{SSLEmail}) { + $RequestEmail = $perlvarref->{SSLEmail}; + Debug("Certificate request will be sent to $RequestEmail"); + } + else { + die "Could not read SSLEmail coniguration key"; + } +} sub GenerateRequest {} sub InstallKey {} sub MailRequest {}