[interchange-cvs] interchange - ramoore modified lib/Vend/Order.pm
interchange-core@icdevgroup.org
interchange-core@icdevgroup.org
Sat Apr 5 20:10:00 2003
User: ramoore
Date: 2003-04-06 01:09:33 GMT
Modified: lib/Vend Order.pm
Log:
Update pgp_encrypt to accept multiple encryption keys. Keys should be
passed as a space or comma separated list.
Revision Changes Path
2.50 +26 -12 interchange/lib/Vend/Order.pm
rev 2.50, prev_rev 2.49
Index: Order.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Order.pm,v
retrieving revision 2.49
retrieving revision 2.50
diff -u -r2.49 -r2.50
--- Order.pm 2 Apr 2003 19:08:29 -0000 2.49
+++ Order.pm 6 Apr 2003 01:09:33 -0000 2.50
@@ -1,6 +1,6 @@
# Vend::Order - Interchange order routing routines
#
-# $Id: Order.pm,v 2.49 2003/04/02 19:08:29 mheins Exp $
+# $Id: Order.pm,v 2.50 2003/04/06 01:09:33 ramoore Exp $
#
# Copyright (C) 1996-2001 Red Hat, Inc. <interchange@redhat.com>
#
@@ -28,7 +28,7 @@
package Vend::Order;
require Exporter;
-$VERSION = substr(q$Revision: 2.49 $, 10);
+$VERSION = substr(q$Revision: 2.50 $, 10);
@ISA = qw(Exporter);
@@ -863,8 +863,17 @@
#::logDebug("called pgp_encrypt key=$key cmd=$cmd");
$cmd = $Vend::Cfg->{EncryptProgram} unless $cmd;
$key = $Vend::Cfg->{EncryptKey} unless $key;
+#::logDebug("pgp_encrypt using key=$key cmd=$cmd");
+
+ $key =~ s/,/ /g; # turn commas to spaces
+ $key =~ s/^\s+//; # strip leading spaces
+ $key =~ s/\s+$//; # strip trailing spaces
+ $key =~ s/\s+/ /g; # convert multiple spaces to single spaces
+
+ my @keys = split /\s/, $key;
+
+ my $keyparam;
-
if("\L$cmd" eq 'none') {
return ::errmsg("NEED ENCRYPTION ENABLED.");
}
@@ -872,25 +881,30 @@
return ::errmsg("NEED ENCRYPTION KEY POINTER.");
}
elsif($cmd =~ m{^(?:/\S+/)?\bgpg$}) {
- $cmd .= " --batch --always-trust -e -a -r '%s'";
+ $cmd .= " --batch --always-trust -e -a ";
+ $keyparam = ' -r ';
}
elsif($cmd =~ m{^(?:/\S+/)?pgpe$}) {
- $cmd .= " -fat -r '%s'";
+ $cmd .= " -fat ";
+ $keyparam = ' -r ';
}
elsif($cmd =~ m{^(?:/\S+/)?\bpgp$}) {
- $cmd .= " -fat - '%s'";
+ $cmd .= " -fat - ";
+ $keyparam = ' ';
}
if($cmd =~ /[;|]/) {
die ::errmsg("Illegal character in encryption command: %s", $cmd);
}
- if($key) {
- $cmd =~ s/%%/:~PERCENT~:/g;
- $key =~ s/'/\\'/g;
- $cmd =~ s/%s/$key/g;
- $cmd =~ s/:~PERCENT~:/%/g;
- }
+
+ $cmd =~ s/%%/:~PERCENT~:/g;
+
+ foreach my $thiskey (@keys) {
+ $thiskey =~ s/'/\\'/g;
+ $cmd .= "$keyparam '$thiskey' ";
+ }
+ $cmd =~ s/:~PERCENT~:/%/g;
#::logDebug("after pgp_encrypt key=$key cmd=$cmd");