setpk11provider.pl [plain text]
if ($#ARGV != 0) {
die "Usage: perl setpk11provider.pl <pkcs11_provider_dll_name>\n"
}
my $provider=$ARGV[0];
$provider =~ s|\.[dD][lL][lL]$||;
@filelist = ("../bin/pkcs11/win32//pk11keygen.mak",
"../bin/pkcs11/win32//pk11keygen.dsp",
"../bin/pkcs11/win32//pk11list.mak",
"../bin/pkcs11/win32//pk11list.dsp",
"../bin/pkcs11/win32//pk11destroy.mak",
"../bin/pkcs11/win32//pk11destroy.dsp");
sub updatefile {
my($filename, $substr, $line);
my(@Lines);
$filename = $_[0];
$substr = $_[1];
open (RFILE, $filename) || die "Can't open file $filename: $!";
@Lines = <RFILE>;
close (RFILE);
foreach $line (@Lines) {
$line =~ s/unknown_provider/$substr/gi;
}
open (RFILE, ">$filename") || die "Can't open file $filename: $!";
foreach $line (@Lines) {
print RFILE $line;
}
close(RFILE);
}
sub updateconfig {
my($havexml, $substr, $line);
my(@Lines);
$havexml = $_[0];
open (RFILE, "../config.h") || die "Can't open config.h";
@Lines = <RFILE>;
close (RFILE);
foreach $line (@Lines) {
if ($havexml) {
$line =~ s/^.* } else {
$line =~ s/^ }
}
open (RFILE, ">../config.h") || die "Can't open config.h";
print "Updating file ../config.h\n";
foreach $line (@Lines) {
print RFILE $line;
}
close(RFILE);
}
if ($provider ne 0) {
$ind = 0;
print "Provider is $provider\n";
foreach $file (@filelist) {
print "Updating file $file\n";
updatefile($file, $provider);
$ind++;
}
updateconfig(1);
} else {
updateconfig(0);
}