#!/usr/bin/perl ################################################################ # # Copyright (c) 1995-2014 SUSE Linux Products GmbH # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 or 3 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program (see the file COPYING); if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # ################################################################ # 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"); }