You are viewing a plain text version of this content. The canonical link for it is here.
Posted to test-cvs@httpd.apache.org by do...@apache.org on 2002/01/29 04:16:23 UTC
cvs commit: httpd-test/perl-framework/Apache-Test/lib/Apache TestSSLCA.pm
dougm 02/01/28 19:16:23
Modified: perl-framework/Apache-Test/lib/Apache TestSSLCA.pm
Log:
make it possible to override $CA/$ca_dn/$cert_dn values when generating a test CA
Revision Changes Path
1.8 +37 -21 httpd-test/perl-framework/Apache-Test/lib/Apache/TestSSLCA.pm
Index: TestSSLCA.pm
===================================================================
RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestSSLCA.pm,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- TestSSLCA.pm 29 Jan 2002 02:16:43 -0000 1.7
+++ TestSSLCA.pm 29 Jan 2002 03:16:23 -0000 1.8
@@ -33,7 +33,7 @@
my $passin = "-passin pass:$pass";
my $passout = "-passout pass:$pass";
-my %ca_dn = (
+my $ca_dn = {
asf => {
C => 'US',
ST => 'California',
@@ -43,9 +43,9 @@
CN => '',
Email => 'test-dev@httpd.apache.org',
},
-);
+};
-my %cert_dn = (
+my $cert_dn = {
client_snakeoil => {
C => 'AU',
ST => 'Queensland',
@@ -53,6 +53,10 @@
O => 'Snake Oil, Ltd.',
OU => 'Staff',
},
+ client_ok => {
+ },
+ client_revoked => {
+ },
server => {
CN => 'localhost',
},
@@ -60,18 +64,28 @@
CN => 'localhost',
OU => 'httpd-test/perl-framework',
},
-);
+};
+
+sub ca_dn {
+ $ca_dn = shift if @_;
+ $ca_dn;
+}
+
+sub cert_dn {
+ $cert_dn = shift if @_;
+ $cert_dn;
+}
sub dn {
my $name = shift;
- my %dn = %{ $ca_dn{$CA} }; #default values
+ my %dn = %{ $ca_dn->{$CA} }; #default values
$dn{CN} ||= $name; #try make sure each Common Name is different
- my $cert_dn = $cert_dn{$name};
+ my $default_dn = $cert_dn->{$name};
- if ($cert_dn) {
- while (my($key, $value) = each %$cert_dn) {
+ if ($default_dn) {
+ while (my($key, $value) = each %$default_dn) {
#override values
$dn{$key} = $value;
}
@@ -279,7 +293,7 @@
sub setup {
$CA = shift;
- unless ($ca_dn{$CA}) {
+ unless ($ca_dn->{$CA}) {
die "unknown CA $CA";
}
@@ -290,26 +304,28 @@
init();
new_ca();
- my @names = qw(server client_ok client_revoked client_snakeoil);
+ my @names = keys %$cert_dn;
for my $name (@names) {
- new_key($name);
- new_cert($name);
- }
-
- @names = qw(server_des3);
+ my @key_args = ();
+ if ($name =~ /_des3$/) {
+ push @key_args, '-des3';
+ }
- for my $name (@names) {
- new_key($name, '-des3');
+ new_key($name, @key_args);
new_cert($name);
- }
- revoke_cert('client_revoked');
+ if ($name =~ /_revoked$/) {
+ revoke_cert($name);
+ }
+ }
}
sub generate {
$Config = shift;
+ $CA = shift || $Config->{vars}->{sslcaorg};
+
my $root = $Config->{vars}->{sslca};
return if -d $root;
@@ -327,9 +343,9 @@
chdir $dir;
- warning "generating SSL CA";
+ warning "generating SSL CA for $CA";
- setup('asf');
+ setup($CA);
chdir $pwd;
}