|
|
1.1 ! root 1: #!/usr/bin/perl ! 2: ! 3: ($visual = $ENV{'VISUAL'}) || ($visual = '/usr/ucb/vi'); ! 4: $topgp = 0; ! 5: $blanks = 0; ! 6: $paragraphs = 1; ! 7: $blankcompress = 1; ! 8: $name=@ARGV[$#ARGV]; ! 9: umask (077); ! 10: open (INPUT, "<$name"); ! 11: open (OUTPUT, ">${name}.rply") || die "Cannot open ${name}.rply for output.\n"; ! 12: while (<INPUT>) { ! 13: if (!$topgp && !m/^> -----BEGIN PGP .*-----/) { ! 14: if (m/^> *$/) { ! 15: if ($paragraphs) { ! 16: if ($blankcompress) { ! 17: if ($blanks == 0) { ! 18: print OUTPUT "\n"; ! 19: $blanks = 1; ! 20: } ! 21: } else { ! 22: print OUTPUT "\n"; ! 23: } ! 24: } else { ! 25: print OUTPUT; ! 26: } ! 27: } elsif (m/^ *$/) { ! 28: if ($blankcompress) { ! 29: if ($blanks == 0) { ! 30: print OUTPUT "\n"; ! 31: $blanks = 1; ! 32: } ! 33: } else { ! 34: print OUTPUT; ! 35: } ! 36: } else { ! 37: print OUTPUT; ! 38: if ($. == 1 && !m/^> /) { ! 39: print OUTPUT "\n"; ! 40: $blanks = 1; ! 41: } else { ! 42: $blanks = 0; ! 43: } ! 44: } ! 45: } ! 46: if (!$topgp && m/^> -----BEGIN PGP .*-----/) { ! 47: $topgp = 1; ! 48: $tmpfile = "${name}.pgp", ! 49: unlink ($tmpfile); ! 50: open (TMPFILE, ">$tmpfile") || die "Cannot open $tmpfile for output.\n"; ! 51: } ! 52: if ($topgp) { ! 53: $_ =~ s/^> //; ! 54: print TMPFILE $_; ! 55: if (m/^-----END PGP .*-----/) { ! 56: $topgp = 0; ! 57: close TMPFILE; ! 58: $clrfile = "${name}.clr"; ! 59: `pgp $tmpfile -o $clrfile`; ! 60: open (CLEAR, "<$clrfile") || die "Cannot open $clrfile for input.\n"; ! 61: print OUTPUT "-----BEGIN OF PGP DECRYPTED TEXT-----\n\n"; ! 62: while (<CLEAR>) { ! 63: if (m/^$/) { ! 64: print OUTPUT "\n"; ! 65: } else { ! 66: print OUTPUT "> "; ! 67: print OUTPUT; ! 68: } ! 69: } ! 70: close CLEAR; ! 71: unlink ($clrfile); ! 72: unlink ($tmpfile); ! 73: print OUTPUT "\n-----END OF PGP DECRYPTED TEXT-----\n\n"; ! 74: } ! 75: } ! 76: } ! 77: close OUTPUT; ! 78: close INPUT; ! 79: unlink ($name); ! 80: rename ("${name}.rply", "$name"); ! 81: ! 82: system ($visual,@ARGV); ! 83: ! 84: while (!$q) { ! 85: print "Sign this message? [Y]: "; ! 86: $q = <STDIN>; ! 87: $q =~ s/[ \t\n]//g; ! 88: $q = substr ($q, 0, 1); ! 89: if (($q eq 'Y') || ($q eq 'y') || ($q eq '')) { ! 90: push(@opts,'-st','+clearsig=on'); ! 91: $q = "y"; ! 92: } elsif (($q ne 'N') && ($q ne 'n')) { ! 93: $q = ''; ! 94: } ! 95: } ! 96: $q=''; ! 97: while (!$q) { ! 98: print "Encrypt this message? [Y]: "; ! 99: $q = <STDIN>; ! 100: $q =~ s/[ \t\n]//g; ! 101: $q = substr ($q, 0, 1); ! 102: if (($q eq 'Y') || ($q eq 'y') || ($q eq '')) { ! 103: push(@opts,'-e'); ! 104: $q = "y"; ! 105: } elsif (($q ne 'N') && ($q ne 'n')) { ! 106: $q = ''; ! 107: } ! 108: } ! 109: if (@opts) { ! 110: system ('pgp','-a',@opts,$name); ! 111: if ($? == 0) { ! 112: unlink ${name}; ! 113: rename ("${name}.asc", "$name"); ! 114: } ! 115: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.