JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr#!/usr/bin/perl # sign.cgi # Sign a file and output the result require './gnupg-lib.pl'; &ReadParseMime(); # Get the data to sign if ($in{'mode'} == 0) { # Uploaded file $in{'upload'} || &error($text{'sign_eupload'}); $data = $in{'upload'}; } elsif ($in{'mode'} == 1) { # Local file $in{'local'} || &error($text{'sign_eupload'}); -r $in{'local'} || &error($text{'sign_elocal'}); $data = &read_file_contents($in{'local'}); } elsif ($in{'mode'} == 2) { # Text box $data = $in{'text'}; $data =~ s/\r//g; } @keys = &list_keys(); $key = $keys[$in{'idx'}]; $pass = &get_passphrase($key); if (!defined($pass)) { &error($text{'sign_epass'}.". ". &text('gnupg_canset', "/gnupg/edit_key.cgi?idx=$in{'idx'}")."."); } $rv = &sign_data($data, \$signed, $key, $in{'sep'} ? 2 : $in{'ascii'} ? 1 : 0); if ($rv) { &error(&text('sign_egpg', "
$rv
")); } if ($in{'ascii'}) { print "Content-type: text/plain\n\n"; } else { print "Content-type: application/octet-stream\n\n"; } print $signed;