diff options
author | Zhang Qiang <qiang.z.zhang@intel.com> | 2014-04-03 15:53:09 +0800 |
---|---|---|
committer | Zhang Qiang <qiang.z.zhang@intel.com> | 2014-04-03 15:53:09 +0800 |
commit | b979ae3b9b879ce19582770e2ba89eb3e66f964a (patch) | |
tree | 758e7684bbaa43d8899ccbc49b133ff0112d3a88 /signdummy | |
download | build-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-x | signdummy | 45 |
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"); +} |