diff options
author | Michael Schroeder <mls@suse.de> | 2010-09-16 15:03:38 +0200 |
---|---|---|
committer | Michael Schroeder <mls@suse.de> | 2010-09-16 15:04:04 +0200 |
commit | a6ca9f9cb71281fb9fda1677ce9b05291b8cb4bf (patch) | |
tree | c4ef8eb0482cafc1772610fe97e51a5161847cc9 /signdummy | |
parent | 8a063605e156508eca889e1a3c25861540a99c62 (diff) | |
download | obs-build-a6ca9f9cb71281fb9fda1677ce9b05291b8cb4bf.tar.gz obs-build-a6ca9f9cb71281fb9fda1677ce9b05291b8cb4bf.tar.bz2 obs-build-a6ca9f9cb71281fb9fda1677ce9b05291b8cb4bf.zip |
- add secret --signdummy option
Diffstat (limited to 'signdummy')
-rwxr-xr-x | signdummy | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/signdummy b/signdummy new file mode 100755 index 0000000..4951454 --- /dev/null +++ b/signdummy @@ -0,0 +1,39 @@ +#!/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] =~ /^-([cdr])$/) { + $mode = $1; + shift @ARGV; + next; + } + if ($ARGV[0] eq '--') { + shift @ARGV; + last; + } + if ($ARGV[0] =~ /^-/) { + die("unsupported option $ARGV[0]\n"); + } + last; +} +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"); +} |