summaryrefslogtreecommitdiff
path: root/signdummy
diff options
context:
space:
mode:
authorZhang Qiang <qiang.z.zhang@intel.com>2014-04-03 15:53:09 +0800
committerZhang Qiang <qiang.z.zhang@intel.com>2014-04-03 15:53:09 +0800
commitb979ae3b9b879ce19582770e2ba89eb3e66f964a (patch)
tree758e7684bbaa43d8899ccbc49b133ff0112d3a88 /signdummy
downloadbuild-b979ae3b9b879ce19582770e2ba89eb3e66f964a.tar.gz
build-b979ae3b9b879ce19582770e2ba89eb3e66f964a.tar.bz2
build-b979ae3b9b879ce19582770e2ba89eb3e66f964a.zip
Imported Upstream version 2013.11.12upstream/2013.11.12
Diffstat (limited to 'signdummy')
-rwxr-xr-xsigndummy45
1 files changed, 45 insertions, 0 deletions
diff --git a/signdummy b/signdummy
new file mode 100755
index 0000000..8fc2e4c
--- /dev/null
+++ b/signdummy
@@ -0,0 +1,45 @@
+#!/usr/bin/perl
+
+# simple "sign" replacement that does nothing but
+# write a 2048 byte file with a fixed signature.
+# sign is used in kiwi builds to sign repositories
+
+my $mode;
+
+while (@ARGV) {
+ if ($ARGV[0] =~ /^-([cdrp])$/) {
+ $mode = $1;
+ shift @ARGV;
+ next;
+ }
+ if ($ARGV[0] eq '--') {
+ shift @ARGV;
+ last;
+ }
+ if ($ARGV[0] =~ /^-/) {
+ die("unsupported option $ARGV[0]\n");
+ }
+ last;
+}
+if ($mode eq 'p') {
+ my $block = "sIGnMeP\n";
+ $block .= "\0" x (8192 - length($block));
+ (syswrite(STDOUT, $block) || 0) == 8192 || die("pubkey write: $!\n");
+ exit 0;
+}
+die("only detached mode possible\n") if !$mode || $mode ne 'd';
+die("filter mode not supported\n") unless @ARGV;
+
+for my $file (@ARGV) {
+ local *F;
+ open(F, '<', $file) || die("$file: $!\n");
+ my $buf = '';
+ 1 while sysread(F, $buf, 16384, length($buf));
+ close(F) || die("$file: $!\n");
+ my $block = "sIGnMe!\n";
+ $block .= sprintf("%08x%08x\n", length($buf), unpack("%32C*", $buf));
+ $block .= "\0" x (2048 - length($block));
+ open(F, '>', "$file.asc") || die("$file.asc: $!\n");
+ (syswrite(F, $block) || 0) == 2048 || die("$file.asc: $!\n");
+ close(F) || die("$file.asc: $!\n");
+}