installationservices/swi/test/testexes/prepareexes.pl
changeset 4 32704c33136d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/testexes/prepareexes.pl	Tue Jan 26 12:06:03 2010 +0200
@@ -0,0 +1,878 @@
+#
+# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
+use Cwd;
+use strict;
+use Getopt::Std;
+use File::Basename;
+use File::Copy;     # for future portability
+
+# Note that although Win32 internally will quite happily accept
+# forward slashes as directory separators, both cmd.exe and
+# makesis.exe/signsis.exe interpret these as option separators,
+# so use backslashes when calling these programs.
+
+die "EPOCROOT not defined" if !defined ($ENV{EPOCROOT});
+my $makesis = "$ENV{EPOCROOT}epoc32\\tools\\makesis.exe";
+my $signsis = "$ENV{EPOCROOT}epoc32\\tools\\signsis.exe";
+if ( ! -x $makesis || ! -x $signsis ) {
+   die "$makesis and $signsis are not executable";
+}
+
+my $cert_path = "$ENV{'SECURITYSOURCEDIR'}\\installationservices\\switestfw\\testcertificates";
+my %opt;
+getopts( "vch:", \%opt ) or usage();
+
+my $platform = lc($ARGV[0]);
+my $configuration = lc($ARGV[1]);
+my $packagedir = "packages";
+my $non_iby_packagedir = "non_iby_packages";
+my $builddir = "buildsis_${platform}_${configuration}";
+
+usage() if $opt{h};
+clean() if $opt{c};
+usage() if !defined($ARGV[0]) || !defined($ARGV[1]);
+
+# --------------------------------------------------------------------------
+
+sub usage() {
+    print STDERR << "EOF";
+    usage: $0 [-hcv] <platform> <udeb|urel>
+     -h        : this (help) message
+     -v        : verbose output
+     -c        : clean up signed .sis files
+EOF
+   exit;
+}
+
+# --------------------------------------------------------------------------
+
+sub clean() {
+   foreach my $file (getFiles($builddir, "\.pkg\$")) { unlink("$builddir/$file"); }
+   foreach my $file (getFiles($builddir, "\.sis\$")) { unlink("$builddir/$file"); }
+   exit;
+}
+
+# --------------------------------------------------------------------------
+
+sub mtime($) {
+    my ($file) = shift;
+    my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,
+      $size,$atime,$mtime,$ctime,$blksize,$blocks) = stat($file);
+
+    $mtime = 0 if ! defined( $mtime );
+    return $mtime;
+}
+
+# --------------------------------------------------------------------------
+
+# Return an array of files matching a regexp in a directory
+sub getFiles($$) {
+    my $dir = shift;
+    my $regfiles = shift;
+    my @files;
+
+    if ( opendir DIR, $dir ) {
+       @files = grep (/$regfiles/, readdir(DIR));
+       closedir DIR;
+    }
+    return @files;
+}
+
+# --------------------------------------------------------------------------
+
+# Edit a file
+sub EditFile ($$) {
+	my ($file, $coderef) = @_;
+	local $_ = ReadFile($file);
+	&$coderef();
+	WriteFile($file, $_);
+}
+
+# --------------------------------------------------------------------------
+
+# Read the contents of a file into a string and return it
+sub ReadFile ($) {
+	my ($file) = @_;
+	open FILE, "<$file" or die "Can't read from $file: $!";
+	local $/ = undef;
+	my $data = <FILE>;
+	close FILE;
+	return $data;
+}
+
+# --------------------------------------------------------------------------
+
+# Replace a file with a string
+sub WriteFile ($$) {
+	my ($file, $data) = @_;
+
+	# Ensure directory exists
+	if ($file =~ basename($1) && ! -e $1) {
+		mkdir($1);
+	}
+
+	system("attrib -r $file");
+	open FILE, ">$file" or die "Can't write to $file: $!";
+	print FILE $data;
+	close FILE;
+}
+
+# --------------------------------------------------------------------------
+
+print "\nBuilding test executables for $platform $configuration configuration\n\n";
+
+if ($platform =~ /armv5/i)
+{
+	mkdir("/epoc32/winscw/c/tswi/tsis/data/armv5/");
+	my $testexeiby = "/epoc32/rom/include/tswiexes.iby";
+	unlink $testexeiby;
+	open(iby, ">> $testexeiby" ) || die "Could not open $testexeiby: $!";
+}
+
+mkdir($builddir);
+
+
+print "Processing files in directory: $builddir\n\n";
+MakeSISFiles($packagedir,"yes");
+MakeSISFiles($non_iby_packagedir,"no");
+
+# Copy emulator version of preinstalled exes to location script expects.
+# They will be moved by the test script to the e: drive.
+if ($platform =~/winscw/i)
+	{
+	mkdir("/epoc32/winscw/c/tswi/tuiscriptadaptors/data");
+	copy("/epoc32/release/$platform/$configuration/console_app_longrun_forpackage.exe",
+	     "/epoc32/winscw/c/tswi/tuiscriptadaptors/data/preinstalled_console_app.exe");
+	copy("/epoc32/release/$platform/$configuration/runtestexe2_forpackage.exe",
+	     "/epoc32/winscw/c/tswi/tuiscriptadaptors/data/preinstalled_runtestexe2.exe");
+	copy("/epoc32/release/$platform/$configuration/runwait1.exe",
+	     "/epoc32/winscw/c/tswi/tuiscriptadaptors/data/runwait1.exe");
+	copy("/epoc32/release/$platform/$configuration/runwait2.exe",
+	     "/epoc32/winscw/c/tswi/tuiscriptadaptors/data/runwait2.exe");
+	copy("/epoc32/release/$platform/$configuration/runwait3.exe",
+	     "/epoc32/winscw/c/tswi/tuiscriptadaptors/data/runwait3.exe");
+	}
+
+AddCustomSisFiles(\*iby, $platform);
+
+
+sub MakeSISFiles($$)
+  {
+    my ($dir, $add_to_iby) = @_;
+    foreach my $file ( getFiles( $dir, "\.pkg\$" ))
+      {
+	# Copy package files to builddir if not present or package more recent.
+	# Some package files are re-written with platform, config and builddir.
+	#
+	if ( mtime("$dir/$file") > mtime("$builddir/$file") )
+	{
+		print "Copying $dir/$file to $builddir/$file and re-writing\n" if $opt{v};
+		copy("$dir/$file", "$builddir/$file");
+
+		# replace <PLATFORM> with the platform and <CFG> with the configuration
+		EditFile("$builddir/$file" , sub { s/<PLATFORM>/$platform/gm;
+						   s/<CONFIGURATION>/$configuration/gm;
+						   s/<BUILD>/$builddir/gm; });
+	}
+
+	# Run makesis/signsis if needed on package files
+	#
+	$file =~ s/\.pkg//;
+	if (    mtime("$builddir/$file.sis") < mtime("$builddir/$file.pkg")
+	     || mtime("$builddir/$file.sis") < mtime("$cert_path/swi/test/testexes/certs/default.cer")
+	     || mtime("$builddir/$file.sis") < mtime("certs/default.key")
+	     || mtime("$builddir/$file.sis") < mtime($makesis)
+	     || mtime("$builddir/$file.sis") < mtime($signsis))
+	{
+		# build sis file
+		system("$makesis $builddir\\$file.pkg $builddir\\$file-tmp.sis");
+		print ("$makesis $builddir\\$file.pkg $builddir\\$file-tmp.sis\n") if $opt{v};
+		system("$signsis -s $builddir\\$file-tmp.sis $builddir\\$file.sis $cert_path\\swi\\test\\testexes\\certs\\default.cer certs\\default.key");
+ 		print ("$signsis -s $builddir\\$file-tmp.sis $builddir\\$file.sis $cert_path\\swi\\test\\testexes\\certs\\default.cer certs\\default.key\n") if $opt{v};
+		print "\n" if $opt{v};
+	} else {
+		print ("$builddir/$file.sis is up-to-date\n");
+	}
+
+	# If the package file contains the string "CREATE_UNSIGNED_SIS"
+	# copy the unsigned sis file too. Note that these SIS files are
+	# not currently added to the ROM, since we can't change the
+	# swipolicy file on the fly on the ROM.
+
+	if (grep(/CREATE_UNSIGNED_SIS/, ReadFile("$builddir/$file.pkg")))
+	{
+		rename("$builddir/$file-tmp.sis", "$builddir/$file-unsigned.sis");
+		AddIby(\*NULL, $builddir, $platform, "$file-unsigned");
+	} else {
+		unlink("$builddir/$file-tmp.sis");
+	}
+
+	if ($add_to_iby eq "yes")
+	  {
+	    AddIby(\*iby, $builddir, $platform, $file);
+	  }
+	elsif ($platform =~/winscw/i)
+	  {
+	    copy("$builddir/$file.sis", "/epoc32/winscw/c/tswi/tsis/data/$file.sis");
+	  }
+      }
+  }
+
+# Find all of the custom sis files for each platform and make sure they are exported
+sub AddCustomSisFiles($$)
+{
+	my ($iby, $platform) = @_;
+	my @sisFiles;
+
+	opendir DIR, "custom/sis/$platform";
+	@sisFiles = readdir DIR;
+	closedir DIR;
+
+	foreach my $sisFile (@sisFiles)
+	{
+		next unless $sisFile =~ /\.sis$/i;
+		$sisFile =~ s/\.sis//g;
+		AddIby($iby, "custom\\sis\\$platform", $platform, $sisFile);
+	}
+
+	# Special case for testsidcheck_ROM.exe
+	# must be placed in \system\bin\ with other executables
+	# must have a different filename so comparison is done by SID
+	if ($platform =~ /armv5/i)
+	{
+		print $iby "file = ABI_DIR\\BUILD_DIR\\testsidcheck_ROM.exe	sys\\bin\\testsidcheckROM.exe\n";
+	}
+
+	if ($platform =~/winscw/i)
+	{
+		# copy the testsidcheck_ROM.exe into the Z:\\sys\\bin\\ directory
+		copy("/epoc32/release/$platform/$configuration/testsidcheck_ROM.exe",
+		     "/epoc32/release/$platform/$configuration/Z/sys/bin/testsidcheckROM.exe");
+	}
+
+}
+
+sub AddIby($$$$)
+{
+	my ($iby, $builddir, $platform, $entry) = @_;
+
+	if ($platform =~/winscw/i)
+	{
+		copy("$builddir/$entry.sis", "/epoc32/winscw/c/tswi/tsis/data/$entry.sis");
+	}
+	if ($platform =~ /armv5/i)
+	{
+		copy("$builddir/$entry.sis", "/epoc32/winscw/c/tswi/tsis/data/armv5/$entry.sis");
+		print $iby "data = ZDRIVE\\tswi\\tsis\\data\\armv5\\$entry.sis \\tswi\\tsis\\data\\$entry.sis\n";
+	}
+}
+
+sub AddIby2($$$)
+{
+	my ($iby, $platform, $entry) = @_;
+	if ($platform =~ /armv5/i)
+	{
+	print $iby "data = ZDRIVE\\tswi\\tsis\\data\\armv5\\$entry \\tswi\\tsis\\data\\$entry\n";
+	}
+}
+
+sub AddNormalFiles($)
+{
+	my ($iby) = @_;
+	if ($platform =~ /armv5/i)
+	{
+	print $iby "#ifdef __SECURITY_NORMAL_SWICERTSTORE__\n";
+	}
+}
+
+sub EndNormalFiles($)
+{
+	my ($iby) = @_;
+	if ($platform =~ /armv5/i)
+	{
+	print $iby "#endif\n";
+	}
+}
+
+# Keep original method names for ease of merging/compatibility
+sub SignFile($$$$)  { SignFileLen(1, @_); }
+sub SignFile_noiby($$$)  { SignFileLen_noiby(1, @_); }
+sub SignFile2($$$$) { SignFileLen(2, @_); }
+sub SignFile2_noiby($$$) { SignFileLen_noiby(2, @_); }
+
+sub SignFileLen($$$$$)
+{
+	my ($len, $infile, $outfile, $signwith, $iby) = @_;
+	my $certpath="$ENV{'SECURITYSOURCEDIR'}/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/";			
+ 	my $keypath = "../tsisfile/data/signedsis";
+	my $sispath="";
+	if ($platform =~ /armv5/i)
+		{
+		$sispath="\\epoc32\\winscw\\c\\tswi\\tsis\\data\\armv5";
+		}
+	if ($platform =~/winscw/i)
+		{
+		$sispath="\\epoc32\\winscw\\c\\tswi\\tsis\\data";
+		}
+
+	my $type="rsa";
+	if ($signwith =~ /DSA/i) {
+		$type="dsa";
+	}
+
+	my $pemfile = "$certpath\\$signwith\\cert_chain_$type\_len$len\\chain_$type\_len$len.cert.pem ";
+	my $keyfile = "$keypath\\$signwith\\cert_chain_$type\_len$len\\" . $type .  "$len.key";
+
+	# If infile, keyfile, pemfile or signsis.exe is more recent than
+	# outfile, or outfile is non-existent then sign the sis file.
+	#
+	if (   mtime("$sispath/$outfile") < mtime("$sispath/$infile")
+	    || mtime("$sispath/$outfile") < mtime("$signsis")
+	    || mtime("$sispath/$outfile") < mtime("$pemfile")
+	    || mtime("$sispath/$outfile") < mtime("$keyfile")) {
+		printf("\t$infile with $signwith to $outfile $pemfile $keyfile\n");
+		my $cmd = "$signsis -s $sispath\\$infile $builddir\\$outfile $pemfile $keyfile";
+		system($cmd);
+		print "$cmd\n\n" if $opt{v};
+		copy("$builddir\\$outfile", "$sispath\\$outfile");
+	} else {
+		print("$sispath/$outfile is up-to-date\n");
+	}
+	AddIby2($iby, $platform, $outfile);
+}
+
+sub SignFileLen_noiby($$$$)
+{
+	my ($len, $infile, $outfile, $signwith) = @_;
+	my $certpath="$ENV{'SECURITYSOURCEDIR'}/installationservices/switestfw/testcertificates/swi/test/tsisfile/data/signedsis/";
+	my $keypath="../tsisfile/data/signedsis";
+	my $sispath="";
+	if ($platform =~ /armv5/i)
+		{
+		$sispath="\\epoc32\\winscw\\c\\tswi\\tsis\\data\\armv5";
+		}
+	if ($platform =~/winscw/i)
+		{
+		$sispath="\\epoc32\\winscw\\c\\tswi\\tsis\\data";
+		}
+
+	my $type="rsa";
+	if ($signwith =~ /DSA/i) {
+		$type="dsa";
+	}
+
+	my $pemfile = "$certpath\\$signwith\\cert_chain_$type\_len$len\\chain_$type\_len$len.cert.pem ";
+	my $keyfile = "$keypath\\$signwith\\cert_chain_$type\_len$len\\" . $type .  "$len.key";
+
+	# If infile, keyfile, pemfile or signsis.exe is more recent than
+	# outfile, or outfile is non-existent then sign the sis file.
+	#
+	if (   mtime("$sispath/$outfile") < mtime("$sispath/$infile")
+	    || mtime("$sispath/$outfile") < mtime("$signsis")
+	    || mtime("$sispath/$outfile") < mtime("$pemfile")
+	    || mtime("$sispath/$outfile") < mtime("$keyfile")) {
+		printf("\t$infile with $signwith to $outfile $pemfile $keyfile\n");
+		my $cmd = "$signsis -s $sispath\\$infile $builddir\\$outfile $pemfile $keyfile";
+		system($cmd);
+		print "$cmd\n\n" if $opt{v};
+		copy("$builddir\\$outfile", "$sispath\\$outfile");
+	} else {
+		print("$sispath/$outfile is up-to-date\n");
+	}
+}
+
+
+sub SignFileWithSpecifiedCert($$$$$)
+{
+	my ($infile, $outfile, $signcert, $signkey, $iby) = @_;
+	
+	my $certpath="$ENV{'SECURITYSOURCEDIR'}/installationservices/switestfw/testcertificates/swi/test/";
+ 	my $keypath = "";
+ 	if ($signkey =~ /.pem$/)
+ 		{
+ 		$keypath = "$ENV{'SECURITYSOURCEDIR'}/installationservices/switestfw/testcertificates/swi/test/";
+ 		}
+ 	else
+ 	{
+ 		$keypath = "../tsisfile/data/signedsis";
+ 	}
+ 
+ 
+	my $sispath="";
+
+	if ($platform =~ /armv5/i)
+		{
+		$sispath="\\epoc32\\winscw\\c\\tswi\\tsis\\data\\armv5";
+		}
+	if ($platform =~/winscw/i)
+		{
+		$sispath="\\epoc32\\winscw\\c\\tswi\\tsis\\data";
+		}
+
+	if (   mtime("$sispath/$outfile") < mtime("$sispath/$infile")
+	    || mtime("$sispath/$outfile") < mtime("$signsis")
+	    || mtime("$sispath/$outfile") < mtime("$keypath/$signkey")
+	    || mtime("$sispath/$outfile") < mtime("$certpath/$signcert")) {
+		printf("\t$infile with $signcert and $signkey to $outfile\n");
+		my $cmd = "$signsis -s $sispath\\$infile $builddir\\$outfile $certpath$signcert $keypath\\$signkey";
+		printf($cmd);
+		system($cmd);
+		print "$cmd\n\n" if $opt{v};
+		copy("$builddir\\$outfile", "$sispath\\$outfile");
+	} else {
+		print("$sispath/$outfile is up-to-date\n");
+	}
+	AddIby2($iby, $platform, $outfile);
+}
+
+
+# Create SIS files that depend on signed versions of others
+
+sub CreateEmbeddingSisFiles($$$$)
+{
+	my ($platform, $configuration, $platform, $builddir) = @_;
+	my $packagedir = "embed";
+
+	foreach my $file ( getFiles( $packagedir, "\.pkg\$" )) {
+
+	# Copy package files to builddir if not present or package more recent.
+	# Some package files are re-written with platform, config and builddir.
+	#
+	if ( mtime("$packagedir/$file") > mtime("$builddir/$file") )
+	{
+		print "Copying $packagedir/$file to $builddir/$file and re-writing\n" if $opt{v};
+		copy("$packagedir/$file", "$builddir/$file");
+
+		# replace <PLATFORM> with the platform and <CFG> with the configuration
+		EditFile("$builddir/$file" , sub { s/<PLATFORM>/$platform/gm;
+						   s/<CONFIGURATION>/$configuration/gm;
+						   s/<BUILD>/$builddir/gm; });
+	}
+
+
+	# Run makesis/signsis if needed on package files
+	#
+	$file =~ s/\.pkg//;
+	if (    mtime("$builddir/$file.sis") < mtime("$builddir/$file.pkg")
+	     || mtime("$builddir/$file.sis") < mtime("$cert_path/swi/test/testexes/certs/default.cer")
+	     || mtime("$builddir/$file.sis") < mtime("certs/default.key")
+	     || mtime("$builddir/$file.sis") < mtime($makesis)
+	     || mtime("$builddir/$file.sis") < mtime($signsis))
+	{
+		# build sis file
+		# because of the way embedded package work, we'll have to change directory
+		chdir($builddir);
+		system("$makesis $file.pkg $file-tmp.sis");
+		print ("$makesis $file.pkg $file-tmp.sis\n") if $opt{v};
+		chdir("..");
+		system("$signsis -s $builddir\\$file-tmp.sis $builddir\\$file.sis $cert_path\\swi\\test\\testexes\\certs\\default.cer certs\\default.key");
+		print ("$signsis -s $builddir\\$file-tmp.sis $builddir\\$file.sis $cert_path\\swi\\test\\testexes\\certs\\default.cer certs\\default.key\n") if $opt{v};
+		print "\n" if $opt{v};
+	} else {
+		print ("$builddir/$file.sis is up-to-date\n");
+	}
+
+
+	AddIby(\*iby, $builddir, $platform, $file);
+
+}
+}
+
+#
+# Sign the files as necessary for the following tests
+#
+
+printf("Signing files...\n");
+
+#Tests:
+#
+#User:
+#
+#Do these three with grant user caps dialog response Yes/No
+
+#	tusergrantable unsigned	-	should ask
+# N/A
+
+#	tusergrantable signed with SymbianTestDSACA - should ask
+SignFile("tswiusergrantable.sis","tswiusergrantable_DSACA.sis","SymbianTestRootCADSA",\*iby);
+
+#	tusergrantable signed with SymbianTestRSACA - should ask
+SignFile("tswiusergrantable.sis","tswiusergrantable_RSACA.sis","SymbianTestRootCARSA",\*iby);
+
+#tusergrantable signed with SymbianTestDSACA, SymbianTestRSACA - should pass
+SignFile("tswiusergrantable_RSACA.sis","tswiusergrantable_RSACA_DSACA.sis","SymbianTestRootCADSA",\*iby);
+
+#tusergrantable signed with SymbianTestDSACA, SymbianTestRSACA - used for mandatory testing
+SignFile("tswiusergrantable_RSACA.sis","tswiusergrantable_RSACA_Root5.sis","Root5CA",\*iby);
+
+#tusergrantable signed with SymbianTestDSACA, SymbianTestRSACA - used for mandatory testing
+SignFile("tswiusergrantable_DSACA.sis","tswiusergrantable_DSACA_Root5.sis","Root5CA",\*iby);
+
+
+#System:
+
+#tswisystemcapability signed with Root5CA	-	Should pass
+SignFile("tswisystemcapability.sis","tswisystemcapability_Root5CA.sis","Root5CA",\*iby);
+
+#runwaitmax signed with Root5CA	-	Should pass
+SignFile("runwaitmax.sis","runwaitmax_Root5CA.sis","Root5CA",\*iby);
+
+#runwait signed with Root5CA	-	Should pass
+SignFile("runwait.sis","runwait_Root5CA.sis","Root5CA",\*iby);
+
+#runwait_pa signed with Root5CA	-	Should pass
+SignFile("runwait_pa.sis","runwait_pa_Root5CA.sis","Root5CA",\*iby);
+
+#runwait_ecomfail with Root5CA	-	Should pass
+SignFile("runwait_ecomfail.sis","runwait_ecomfail_Root5CA.sis","Root5CA",\*iby);
+
+#runwait _failsigned with Root5CA	-	Should pass
+SignFile("runwait_fail.sis","runwait_fail_Root5CA.sis","Root5CA",\*iby);
+
+#runmimehandler signed with Root5CA	-	Should pass
+SignFile("runmimehandler.sis","runmimehandler_Root5CA.sis","Root5CA",\*iby);
+
+#tswisystemcapability signed with SymbianTestDSACA	-	should fail, unsigned system capabilities
+SignFile("tswisystemcapability.sis","tswisystemcapability_DSACA.sis","SymbianTestRootCADSA",\*iby);
+
+#tswisystemcapability signed with Root5CA	-	Should pass
+SignFile("tswisystemcapability_option.sis","tswisystemcapability_option_Root5CA.sis","Root5CA",\*iby);
+
+#tswisystemcapability signed with SymbianTestDSACA	-	should fail, unsigned system capabilities
+SignFile("tswisystemcapability_option.sis","tswisystemcapability_option_DSACA.sis","SymbianTestRootCADSA",\*iby);
+
+#tswisystemcapability signed with SymbianTestRootCADiffSerial	-	Should pass
+SignFile2("tswisystemcapability.sis","tswisystemcapability_DiffSerial.sis","SymbianTestRootCADiffSerial",\*iby);
+
+#tswiallcapabilities unsigned - should fail
+# N/A
+
+#tswiallcapabilities signed with Root5CA - should pass
+SignFile("tswiallcapabilities.sis","tswiallcapabilities_Root5.sis","Root5CA",\*iby);
+
+#tswiallcapabilities signed with SymbiantestRSACA - should fail
+SignFile("tswiallcapabilities.sis","tswiallcapabilities_RSACA.sis","SymbianTestRootCARSA",\*iby);
+
+#tswiallcapabilities signed with Root5CA, SymbiantestRSACA - should pass
+SignFile("tswiallcapabilities_Root5.sis","tswiallcapabilities_Root5_RSACA.sis","SymbianTestRootCARSA",\*iby);
+
+#tswisignedcap_8	signed with Root5CA - should fail
+SignFile("tswisignedcap_8.sis","tswisignedcap_8_Root5.sis","Root5CA",\*iby);
+
+#tswisignedcap_8	signed with Root5CA, SymbianTestRSACA - should fail
+SignFile("tswisignedcap_8_Root5.sis","tswisignedcap_8_Root5_RSACA.sis","SymbianTestRootCARSA",\*iby);
+
+#tswisignedcap_8	signed with Root5CA, SymbianTestRSACA, SymbianTestDSACA - should pass
+SignFile("tswisignedcap_8_Root5_RSACA.sis","tswisignedcap_8_Root5_RSACA_DSACA.sis","SymbianTestRootCADSA",\*iby);
+
+
+#tswisignedcap_8	signed with Root5CA, SymbianTestDSACA - should fail
+SignFile("tswisignedcap_8_Root5.sis","tswisignedcap_8_Root5_DSACA.sis","SymbianTestRootCADSA",\*iby);
+
+#tswisignedcap_8	signed with Root5CA, SymbianTestDSACA, SymbianTestRSACA - should pass
+SignFile("tswisignedcap_8_Root5_DSACA.sis","tswisignedcap_8_Root5_DSACA_RSACA.sis","SymbianTestRootCARSA",\*iby);
+
+# eclipsing upgrades, correctly signed
+SignFile("eclipsingdllupgradesp.sis","eclipsingdllupgradesp_Root5CA.sis","Root5CA",\*iby);
+SignFile("eclipsingdllupgradepu.sis","eclipsingdllupgradepu_Root5CA.sis","Root5CA",\*iby);
+SignFile("eclipsingdllupgradewildcardsp.sis","eclipsingdllupgradewildcardsp_Root5CA.sis","Root5CA",\*iby);
+
+SignFile("twoeclipses1.sis","twoeclipses1_Root5CA.sis","Root5CA",\*iby);
+SignFile("twoeclipses2.sis","twoeclipses2_Root5CA.sis","Root5CA",\*iby);
+SignFile("fileeclipsepu.sis","fileeclipsepu_Root5CA.sis","Root5CA",\*iby);
+SignFile("fileeclipsepu2.sis","fileeclipsepu2_Root5CA.sis","Root5CA",\*iby);
+SignFile_noiby("fileeclipsepu3.sis","fileeclipsepu3_DSACA.sis","SymbianTestRootCADSA");
+SignFile("fileeclipsepu3_DSACA.sis","fileeclipsepu3_Root5CA.sis","Root5CA",\*iby);
+SignFile_noiby("fileeclipsesa.sis","fileeclipsesa_DSACA.sis","SymbianTestRootCADSA");
+SignFile("fileeclipsesa_DSACA.sis","fileeclipsesa_Root5CA.sis","Root5CA",\*iby);
+SignFile("eclipsenotpresent.sis","eclipsenotpresent_Root5CA.sis","Root5CA",\*iby);
+
+SignFile("stubprivatesidsp.sis","stubprivatesidsp_Root5CA.sis","Root5CA",\*iby);
+SignFile("stubprivatesidwildcardsp.sis","stubprivatesidwildcardsp_Root5CA.sis","Root5CA",\*iby);
+
+SignFile("stubupgradewildcard.sis","stubupgradewildcard_Root5CA.sis","Root5CA",\*iby);
+
+#tswinocapability	signed with SymbianTestRSACA - should fail because mandatory Root5CA certificate is required
+SignFile("tswinocapability.sis","tswinocapability_RSA.sis","\SymbianTestRootCARSA",\*iby);
+
+#tswinocapability	signed with Root5CA - should pass
+SignFile2("tswinocapability.sis","tswinocapability_Root5.sis","Root5CA",\*iby);
+
+#INC065244A	signed with Root5CA - should pass
+SignFile("inc065244A.sis","inc065244A_Root5.sis","\Root5CA",\*iby);
+
+# DEF072973
+SignFile("testrun_exe2.sis","testrun_exe2_Root5.sis","Root5CA",\*iby);
+SignFile("testrun_exeRI.sis","testrun_exeRI_Root5.sis","Root5CA",\*iby);
+SignFile("testrun_exeRI_pu.sis","testrun_exeRI_pu_Root5.sis","Root5CA",\*iby);
+SignFile("testrun_exeRI_sp.sis","testrun_exeRI_sp_Root5.sis","Root5CA",\*iby);
+SignFile("testrun_exeRIRW2.sis","testrun_exeRIRW2_Root5.sis","Root5CA",\*iby);
+
+#CR1240
+SignFile("datetime_0001-unsigned.sis","datetime_0001_signed.sis","SymbianTestRootCADiffSerial",\*iby);
+
+# DEF086668
+SignFile("testrun_exeRI_longrun_pu.sis","testrun_exeRI_longrun_pu_Root5.sis","Root5CA",\*iby);
+
+#INC065244B	signed with Root5CA - should pass
+SignFile("inc065244b.sis","inc065244B_Root5.sis","Root5CA",\*iby);
+
+#CR EGUO-6G9J6M - DLL VID correctness enforcement in SWIS
+SignFile("tswidllnocapabilityprotectedvid.sis", "tswidllnocapabilityprotectedvid_Root5.sis", "Root5CA",\*iby);
+SignFile("tswidllnocapabilityunprotectedvid.sis", "tswidllnocapabilityunprotectedvid_Root5.sis", "Root5CA",\*iby);
+
+SignFile("tswinocapabilityhardcode.sis", "tswinocapabilityhardcode_root5.sis", "Root5CA", \*iby);
+SignFile("backuprestore_test_rom_stub_pu_upgrade.sis","backuprestore_test_rom_stub_pu_upgrade_Root5.sis","\Root5CA",\*iby);
+SignFile("backuprestore_test_sa_base.sis","backuprestore_test_sa_base_Root5.sis","\Root5CA",\*iby);
+SignFile("backuprestore_test_pu_upgrade.sis","backuprestore_test_pu_upgrade_Root5.sis","\Root5CA",\*iby);
+
+# DEF070572 - SIS files signed by multiple chains to test OCSP result dialog
+SignFileWithSpecifiedCert("tswinocapability_Root5.sis", "testocspresultdialog_a.sis", "tsisfile\\data\\signedsis\\SymbianTestRootExpiredCARSA\\cacert.pem", "tsisfile\\data\\signedsis\\SymbianTestRootExpiredCARSA\\cakey.pem", \*iby);
+SignFileWithSpecifiedCert("testocspresultdialog_a.sis", "testocspresultdialog_b.sis", "tdevcerts\\SymbianTestRootCARSA_OCSP\\SymbianTestRootCARSA\\certs\\revoked_user_caps.cert.pem", "tdevcerts\\SymbianTestRootCARSA_OCSP\\SymbianTestRootCARSA\\certs\\revoked_user_caps.key.pem", \*iby);
+
+# INC110222 - SIS files signed by a revoked cert then an unknown cert to test OCSP result dialog
+SignFileWithSpecifiedCert("tswinocapability_Root5.sis", "tswinocapability_revoked.sis", "tdevcerts\\SymbianTestRootCARSA_OCSP\\SymbianTestRootCARSA\\certs\\revoked_user_caps.cert.pem", "tdevcerts\\SymbianTestRootCARSA_OCSP\\SymbianTestRootCARSA\\certs\\revoked_user_caps.key.pem", \*NULL);
+SignFileWithSpecifiedCert("tswinocapability_revoked.sis", "tswinocapability_unknown.sis", "tsisfile\\data\\signedsis\\extendedkeyusage\\standardsigningoid_eku.pem", "tsisfile\\data\\signedsis\\extendedkeyusage\\ekuprivatekey.pem", \*iby);
+
+SignFileWithSpecifiedCert("tswinocapability-unsigned.sis", "tswinocapability_ekustdcodesigning.sis", "tsisfile\\data\\signedsis\\extendedkeyusage\\standardsigningoid_eku.pem", "tsisfile\\data\\signedsis\\extendedkeyusage\\ekuprivatekey.pem", \*iby);
+SignFileWithSpecifiedCert("tswinocapability-unsigned.sis", "tswinocapability_ekualtcodesigning.sis", "tsisfile\\data\\signedsis\\extendedkeyusage\\alternativesigningoid_eku.pem", "tsisfile\\data\\signedsis\\extendedkeyusage\\ekuprivatekey.pem", \*iby);
+SignFileWithSpecifiedCert("tswinocapability-unsigned.sis", "tswinocapability_ekunocodesigning.sis", "tsisfile\\data\\signedsis\\extendedkeyusage\\no_eku.pem", "tsisfile\\data\\signedsis\\extendedkeyusage\\ekuprivatekey.pem", \*iby);
+SignFileWithSpecifiedCert("tswinocapability-unsigned.sis", "tswinocapability_ekuserverauth.sis", "tsisfile\\data\\signedsis\\extendedkeyusage\\serverauth_eku.pem", "tsisfile\\data\\signedsis\\extendedkeyusage\\ekuprivatekey.pem", \*iby);
+
+# INC084207 - Upgrades to ROM package requiring trusted signing
+SignFile("eclipsingromexesp.sis", "eclipsingromexesp_root5.sis", "root5ca", \*iby);
+SignFile("eclipsingromexepu.sis", "eclipsingromexepu_root5.sis", "root5ca", \*iby);
+SignFile("eclipsingromsaupgrade.sis", "eclipsingromsaupgrade_root5.sis", "root5ca", \*iby);
+SignFile("eclipsingmultifilessp.sis", "eclipsingmultifilessp_root5.sis", "root5ca", \*iby);
+SignFile("romstubupgradesa.sis", "romstubupgradesa_root5.sis", "root5ca", \*iby);
+
+# INC080962 - Preinstalled packages used for preinstalled delete testing
+# Tests are run on mcs rom so they need signing with root5ca
+SignFile("testpreinstalledexes.sis", "testpreinstalledexes_root5.sis", "root5ca", \*iby);
+SignFile("testpreinstalledexes_patch.sis", "testpreinstalledexes_patch_root5.sis", "root5ca", \*iby);
+
+# DEF122219 SWI run-on-install flag does not work for pre-installed applications.
+SignFile("preinstalledapprun.sis", "preinstalledapprun_root5.sis", "root5ca", \*iby);
+
+
+# SIS patch to use with trust testing SP upgrades
+SignFile("filesp-signed.sis", "filesp-signed_root5.sis", "root5ca", \*iby);
+
+SignFile("priv-orphan3-unsigned.sis","priv-orphan3.sis","Root5CA",\*iby);
+
+# Verify that executables in sub-directories of z:\sys\bin\ are included in the SID cache.
+SignFile("tswisidcache1.sis","tswisidcache1_root5.sis","Root5CA",\*iby);
+SignFile("tswisidcache2.sis","tswisidcache2_root5.sis","Root5CA",\*iby);
+
+# CR956 Tests are run on mcs rom so they need signing with root5ca
+
+SignFile("cr956_rbs.sis","cr956_rbs_root5.sis","Root5CA",\*iby);
+SignFile("cr956_rrrirbs.sis","cr956_rrrirbs_root5.sis","Root5CA",\*iby);
+SignFile("cr956_exe_testrun.sis","cr956_exe_testrun_root5.sis","Root5CA",\*iby);
+SignFile("testrun_exe_CR956.sis","testrun_exe_CR956_root5.sis","Root5CA",\*iby);
+
+AddNormalFiles(\*iby);
+
+# CR1027 - ROM Upgrade with SA type SIS
+SignFile("CR1027ECLIPSEROMSARU.sis", "CR1027ECLIPSEROMSARU_root5.sis", "root5ca", \*iby);
+SignFile("CR1027NONROMSARU.sis", "CR1027NONROMSARU_root5.sis", "root5ca", \*iby);
+SignFile("CR1027ROMSANORU.sis", "CR1027ROMSANORU_root5.sis", "root5ca", \*iby);
+SignFile("CR1027ROMUpgradeSA.sis", "CR1027ROMUpgradeSA_root5.sis", "root5ca", \*iby);
+SignFile("CR1027ROMUpgradeSADiffUid.sis", "CR1027ROMUpgradeSADiffUid_root5.sis", "root5ca", \*NULL);
+SignFile("CR1027ROMUpgradeSASameVersion.sis", "CR1027ROMUpgradeSASameVersion_root5.sis", "root5ca", \*NULL);
+SignFile("CR1027ROMUpgradeSADiffName.sis", "CR1027ROMUpgradeSADiffName_root5.sis", "root5ca", \*NULL);
+SignFile("CR1027ROMUpgradeSANR.sis", "CR1027ROMUpgradeSANR_root5.sis", "root5ca", \*NULL);
+SignFile("CR1027ROMUpgradePU.sis", "CR1027ROMUpgradePU_root5.sis", "root5ca", \*iby);
+SignFile("CR1027ROMUpgradePUDiffFileName.sis", "CR1027ROMUpgradePUDiffFileName_root5.sis", "root5ca", \*NULL);
+SignFile("CR1027ROMUpgradeSP.sis", "CR1027ROMUpgradeSP_root5.sis", "root5ca", \*iby);
+SignFile("CR1027ROMUpgradeSPSameName.sis", "CR1027ROMUpgradeSPSameName_root5.sis", "root5ca", \*NULL);
+SignFile("CR1027ROMUpgradeSP2.sis", "CR1027ROMUpgradeSP2_root5.sis", "root5ca", \*NULL);
+SignFile("CR1027ROMUpgradeSP3.sis", "CR1027ROMUpgradeSP3_root5.sis", "root5ca", \*NULL);
+SignFile("CR1027ROMUpgradeSP2RU.sis", "CR1027ROMUpgradeSP2RU_root5.sis", "root5ca", \*NULL);
+SignFile("CR1027ROMWrongPU.sis", "CR1027ROMWrongPU_root5.sis", "root5ca", \*iby);
+SignFile("CR1027ROMUpgradePURUNR.sis", "CR1027ROMUpgradePURUNR_root5.sis", "root5ca", \*NULL);
+SignFile("CR1027ROMUpgradeSP2NR.sis", "CR1027ROMUpgradeSP2NR_root5.sis", "root5ca", \*NULL);
+SignFile("secondromupgradesa.sis", "secondromupgradesa_root5.sis", "root5ca", \*iby);
+SignFile("wrongromeclipsingsa.sis", "wrongromeclipsingsa_root5.sis", "root5ca", \*iby);
+SignFile("wrongromeclipsingpu.sis", "wrongromeclipsingpu_root5.sis", "root5ca", \*iby);
+SignFile("hiddensa.sis", "hiddensa_root5.sis", "root5ca", \*iby);
+
+SignFile("smlsyncagent.sis", "smlsyncagent_root5.sis", "root5ca", \*iby);
+
+#Swi Support for RFS
+SignFile("swi_rfs_test_SA.sis", "swi_rfs_test_SA_root5.sis", "root5ca", \*iby);
+SignFile("swi_rfs_test_PU.sis", "swi_rfs_test_PU_root5.sis", "root5ca", \*iby);
+SignFile("swi_rfs_test_SP.sis", "swi_rfs_test_SP_root5.sis", "root5ca", \*iby);
+SignFile("swi_rfs_test_SP_2.sis", "swi_rfs_test_SP_2_root5.sis", "root5ca", \*iby);
+
+# CR1122 - Wildcard support for ROM based stub.
+SignFile("CR1122WCROMUpgradeSA.sis", "CR1122WCROMUpgradeSA_root5.sis", "root5ca", \*iby);
+SignFile("CR1122WCROMUpgradeSA1.sis", "CR1122WCROMUpgradeSA1_root5.sis", "root5ca", \*iby);
+
+# PDEF114642  - Adorned filename support (eclipsing ROM files using adorned filenames)
+SignFile("adornedfilenamestesting_31_upgrade_0x2baecad7_symbiantest1_dummydll3pkg_220_sa.sis", "adornedfilenamestesting_31_upgrade_0x2baecad7_symbiantest1_dummydll3pkg_220_sa_root5.sis", "root5ca", \*iby);
+SignFile("adornedfilenamestesting_32_upgrade_0x2baecad7_symbiantest1_dummydll3pkg_220_sa.sis", "adornedfilenamestesting_32_upgrade_0x2baecad7_symbiantest1_dummydll3pkg_220_sa_root5.sis", "root5ca", \*iby);
+SignFile("adornedfilenamestesting_33_upgrade_0x2baecad7_symbiantest1_dummydll3pkg_220_saru.sis", "adornedfilenamestesting_33_upgrade_0x2baecad7_symbiantest1_dummydll3pkg_220_saru_root5.sis", "root5ca", \*iby);
+SignFile("adornedfilenamestesting_34_upgrade_0x2baecad7_symbiantest1_dummydll3pkg_220_saru.sis", "adornedfilenamestesting_34_upgrade_0x2baecad7_symbiantest1_dummydll3pkg_220_saru_root5.sis", "root5ca", \*iby);
+SignFile("adornedfilenamestesting_35_upgrade_0x2baecad8_symbiantest1_dummydll4pkg_220_saru.sis", "adornedfilenamestesting_35_upgrade_0x2baecad8_symbiantest1_dummydll4pkg_220_saru_root5.sis", "root5ca", \*iby);
+SignFile("adornedfilenamestesting_36_upgrade_0x2baecad8_symbiantest1_dummydll4pkg_220_saru.sis", "adornedfilenamestesting_36_upgrade_0x2baecad8_symbiantest1_dummydll4pkg_220_saru_root5.sis", "root5ca", \*iby);
+SignFile("adornedfilenamestesting_37_upgrade_0x2baecad8_symbiantest1_dummydll4pkg_220_pu.sis", "adornedfilenamestesting_37_upgrade_0x2baecad8_symbiantest1_dummydll4pkg_220_pu_root5.sis", "root5ca", \*iby);
+SignFile("adornedfilenamestesting_38_upgrade_0x2baecad8_symbiantest1_dummydll4pkg_220_pu.sis", "adornedfilenamestesting_38_upgrade_0x2baecad8_symbiantest1_dummydll4pkg_220_pu_root5.sis", "root5ca", \*iby);
+SignFile("adornedfilenamestesting_39_upgrade_0x2baecad8_symbiantest1_dummydll4pkg2_220_sp.sis", "adornedfilenamestesting_39_upgrade_0x2baecad8_symbiantest1_dummydll4pkg2_220_sp_root5.sis", "root5ca", \*iby);
+SignFile("adornedfilenamestesting_310_upgrade_0x2baecad8_symbiantest1_dummydll4pkg2_220_sp.sis", "adornedfilenamestesting_310_upgrade_0x2baecad8_symbiantest1_dummydll4pkg2_220_sp_root5.sis", "root5ca", \*iby);
+SignFile("adornedfilenamestesting_23_upgrade_0xabaecad5_symbiantest1_dummydllpkg2_220_sp.sis", "adornedfilenamestesting_23_upgrade_0xabaecad5_symbiantest1_dummydllpkg2_220_sp_root5ca.sis", "root5ca", \*NULL);
+
+EndNormalFiles(\*iby);
+AddNormalFiles(\*iby);
+ 
+# For rucert changes PREQ1912
+SignFileWithSpecifiedCert("CR1027ROMUpgradeSA_root5.sis", "CR1027ROMUpgradeSA_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("CR1027ROMUpgradeSADiffUid_root5.sis", "CR1027ROMUpgradeSADiffUid_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*NULL);
+SignFileWithSpecifiedCert("ruromupgraderucertsa.sis", "ruromupgraderucertsa_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertpu.sis", "ruromupgraderucertpu_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsp.sis", "ruromupgraderucertsp_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsaoversa.sis", "ruromupgraderucertsaoversa_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsp_overwrite.sis", "ruromupgraderucertsp_overwrite_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("rusanrflagromupgarde.sis", "rusanrflagromupgarde_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("rusaromupgarde.sis", "rusaromupgarde_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("rupunrflagromupgarde.sis", "rupunrflagromupgarde_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruspnrflagromupgarde.sis", "ruspnrflagromupgarde_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("nonruromupgraderucertsa.sis", "nonruromupgraderucertsa_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsa1.sis", "ruromupgraderucertsa1_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertpu1.sis", "ruromupgraderucertpu1_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsp1.sis", "ruromupgraderucertsp1_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsa_diffdrive.sis", "ruromupgraderucertsa_diffdrive_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("rupunrromupgradeoverrucertsa.sis", "rupunrromupgradeoverrucertsa_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("rusanrromupgradeovernormalrusa.sis", "rusanrromupgradeovernormalrusa_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruspromupgardeovernr.sis", "ruspromupgardeovernr_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("rusanrflagromupgarde_stub.sis", "rusanrflagromupgarde_stub_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("romupgrademorecapsthansucert.sis", "romupgrademorecapsthansucert_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsa_stubuid.sis", "ruromupgraderucertsa_stubuid_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("sucertsaovernonsucert.sis", "sucertsaovernonsucert_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("romupgradeembed.sis", "romupgradeembed_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsa_stubname.sis", "ruromupgraderucertsa_stubname_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsa_stubchk.sis", "ruromupgraderucertsa_stubchk_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsa_sid.sis", "ruromupgraderucertsa_sid_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsa_backuprestore.sis", "ruromupgraderucertsa_backuprestore_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsa_diffdrive_h4.sis", "ruromupgraderucertsa_diffdrive_h4_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsa_private.sis", "ruromupgraderucertsa_private_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsa_diffdrive1_h4.sis", "ruromupgraderucertsa_diffdrive1_h4_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsa_diffdrive1.sis", "ruromupgraderucertsa_diffdrive1_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsaoversa_diffuid.sis", "ruromupgraderucertsaoversa_diffuid_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("saupgradenrspsucert.sis", "saupgradenrspsucert_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("nrsaupgradesprunrsu.sis", "nrsaupgradesprunrsu_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("rusanrromupgradestub_sprunrsu.sis", "rusanrromupgradestub_sprunrsu_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("rusanrromupgradestub.sis", "rusanrromupgradestub_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsastub_sprunrsu.sis", "ruromupgraderucertsastub_sprunrsu_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("rusaruupgrade_purunr.sis", "rusaruupgrade_purunr_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("rusastubupgrade_punrru.sis", "rusastubupgrade_punrru_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("ruromupgraderucertsa_protectedsid.sis", "ruromupgraderucertsa_protectedsid_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+
+# new tests for media propagation of packages signed by SU.
+
+SignFileWithSpecifiedCert("tpropagation_sasu_armv5.sis", "tpropagation_sasu_armv5_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("tpropagation_sasu_winscw.sis", "tpropagation_sasu_winscw_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("tpropagation_spsu_armv5.sis", "tpropagation_spsu_armv5_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+SignFileWithSpecifiedCert("tpropagation_spsu_winscw.sis", "tpropagation_spsu_winscw_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+
+# non-removable test
+SignFileWithSpecifiedCert("nonremovablebase.sis", "nonremovablebase_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+
+SignFile("romupgrademorecapsthansucert_sucert.sis", "romupgrademorecapsthansucert_sucert_root5.sis", "root5ca", \*iby);
+
+SignFile("romupgradenonrucertsa.sis", "romupgradenonrucertsa_root5.sis", "root5ca", \*iby);
+SignFile("romupgradenonrucertsp.sis", "romupgradenonrucertsp_root5.sis", "root5ca", \*iby);
+SignFile("ruromupgradenonrucertpu.sis", "ruromupgradenonrucertpu_root5.sis", "root5ca", \*iby);
+SignFile("nonrucertpunrflag.sis", "nonrucertpunrflag_root5.sis", "root5ca", \*iby);
+SignFile("rusanrflagromupgardenonsucert.sis", "rusanrflagromupgardenonsucert_root5.sis", "root5ca", \*iby);
+SignFile("simplesanonsucert.sis", "simplesanonsucert_root5.sis", "root5ca", \*iby);
+EndNormalFiles(\*iby);
+CreateEmbeddingSisFiles($platform, $configuration, $platform, $builddir);
+
+SignFile("emdedprotectedsid.sis", "emdedprotectedsid_root5.sis", "root5ca", \*iby);
+
+SignFile("cr956_rbs_embed.sis","cr956_rbs_embed_root5.sis","Root5CA",\*iby);
+SignFile("cr956_rbs_sh.sis","cr956_rbs_sh_root5.sis","Root5CA",\*iby);
+
+AddNormalFiles(\*iby);
+
+#CR1027 - Signing Embedded packages.
+SignFile("CR1027ROMSAEmbeddedNonROMSA.sis", "CR1027ROMSAEmbeddedNonROMSA_root5.sis", "root5ca", \*iby);
+SignFile("CR1027ROMSAEmbeddedROMSANoRU.sis", "CR1027ROMSAEmbeddedROMSANoRU_root5.sis", "root5ca", \*iby);
+SignFile("CR1027ROMSAEmbeddedROMSARU.sis", "CR1027ROMSAEmbeddedROMSARU_root5.sis", "root5ca", \*iby);
+SignFile("CR1027SAEmbeddedROMSARU.sis", "CR1027SAEmbeddedROMSARU_root5.sis", "root5ca", \*iby);
+
+SignFile("textfile.sis", "textfile_root5ca.sis", "root5ca", \*iby);
+
+#DEF115255-signing the package
+SignFile("samestubpkgnamewithru.sis", "samestubpkgnamewithru_root5.sis", "root5ca", \*iby);
+
+
+#INC116616
+SignFile("saromupgradediffpkgname.sis", "saromupgradediffpkgname_root5.sis", "root5ca", \*iby);
+SignFileWithSpecifiedCert("romupgrade_base.sis", "romupgrade_base_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+
+#PDEF118284-signing the package
+SignFile("testappinuse.sis", "testappinuse_root5.sis", "root5ca", \*iby);
+
+#DEF123261
+SignFile("largenoofuids.sis", "largenoofuids_root5.sis", "root5ca", \*iby);
+
+# INC125338
+SignFileWithSpecifiedCert("sasu_nonru_inc125338.sis", "sasu_nonru_inc125338_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+
+#DEF125174
+
+SignFileWithSpecifiedCert("rom_su_saru.sis", "rom_su_saru_all.sis", "tsisfile\\data\\signedsis\\symbiantestallcapabilitiesca\\symbiantestallcapabilitiesca.pem", "tsisfile\\data\\signedsis\\symbiantestallcapabilitiesca\\cakey.pem", \*iby);
+SignFileWithSpecifiedCert("rom_su_saru_all.sis", "rom_su_saru_all_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+
+SignFileWithSpecifiedCert("romeclipse_su_spru.sis", "romeclipse_su_spru_all.sis", "tsisfile\\data\\signedsis\\symbiantestallcapabilitiesca\\symbiantestallcapabilitiesca.pem", "tsisfile\\data\\signedsis\\symbiantestallcapabilitiesca\\cakey.pem", \*iby);
+SignFileWithSpecifiedCert("romeclipse_su_spru_all.sis", "romeclipse_su_spru_all_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+
+SignFileWithSpecifiedCert("romoverwrite_su_spru.sis", "romoverwrite_su_spru_all.sis", "tsisfile\\data\\signedsis\\symbiantestallcapabilitiesca\\symbiantestallcapabilitiesca.pem", "tsisfile\\data\\signedsis\\symbiantestallcapabilitiesca\\cakey.pem", \*iby);
+SignFileWithSpecifiedCert("romoverwrite_su_spru_all.sis", "romoverwrite_su_spru_all_sucert.sis", "tsisfile\\data\\signedsis\\sucert\\sucert.der", "tsisfile\\data\\signedsis\\sucert\\sucertkey.pem", \*iby);
+
+# INC126755 - create packages for backup & restore tests
+SignFile("br1_base.sis","br1_base_root5.sis","Root5CA",\*iby);
+SignFile("br1_bigpu.sis","br1_bigpu_root5.sis","Root5CA",\*iby);
+SignFile("br1_bigsp1.sis","br1_bigsp1_root5.sis","Root5CA",\*iby);
+SignFile("br1_bigsp1_1.sis","br1_bigsp1_1_root5.sis","Root5CA",\*iby);
+SignFile("br1_bigsp2.sis","br1_bigsp2_root5.sis","Root5CA",\*iby);
+SignFile("romstubupgradepu.sis","romstubupgradepu_root5.sis","Root5CA",\*iby);
+SignFile("romstubupgradesaru.sis","romstubupgradesaru_root5.sis","Root5CA",\*iby);
+
+# Post manufacture installation of a Layered Execution Environment
+SignFile("tswtype_valid1.sis", "tswtype_valid1_root5.sis", "root5ca", \*iby);
+SignFile("tswtype_valid2.sis", "tswtype_valid2_root5.sis", "root5ca", \*iby);
+SignFile("tswtype_valid3.sis", "tswtype_valid3_root5.sis", "root5ca", \*iby);
+SignFile("tswtype_invalid1.sis", "tswtype_invalid1_root5.sis", "root5ca", \*iby);
+SignFile("tswtype_invalid2.sis", "tswtype_invalid2_root5.sis", "root5ca", \*iby);
+SignFile("tswtype_invalid3.sis", "tswtype_invalid3_root5.sis", "root5ca", \*iby);
+SignFile("tswtype_invalid4.sis", "tswtype_invalid4_root5.sis", "root5ca", \*iby);
+SignFile("tswtype_invalid5.sis", "tswtype_invalid5_root5.sis", "root5ca", \*iby);
+SignFile("tswtype_invalid6.sis", "tswtype_invalid6_root5.sis", "root5ca", \*iby);
+SignFile("tswtype_invalid7.sis", "tswtype_invalid7_root5.sis", "root5ca", \*iby);
+SignFile("tswtype_invalid8.sis", "tswtype_invalid8_root5.sis", "root5ca", \*iby);
+SignFile("tswtype_native_invalid1.sis", "tswtype_native_invalid1_root5.sis", "root5ca", \*iby);
+SignFile("tswtype_valid1_upgrade.sis", "tswtype_valid1_upgrade_root5.sis", "root5ca", \*iby);
+SignFile("tswtype_valid1_invalidupgrade.sis", "tswtype_valid1_invalidupgrade_root5.sis", "root5ca", \*iby);
+
+EndNormalFiles(\*iby);
+
+close iby;
+
+printf("\n");