#!/usr/bin/perl -w

## vigenere decrypt tool
# (c) 2012 F00L.DE 
# by Rup0rt <roport at f00l dot de>

## check for arguments
# 1 - FILENAME
# 2 - KEY
if (!defined $ARGV[1]) {
  print "Usage: $0 <filename> <key>\n";
  exit(1);
}

$filename = $ARGV[0];
$key = $ARGV[1];

open(FILE, $filename);
@file = <FILE>;
close(FILE);

$keypos = 0;

foreach $line (@file) {
  for ($i=0;$i<length($line);$i++) {
    $char = lc substr($line, $i, 1); 	# LOWERCASE ONLY(!!)

    # just count ascii chars
    if ((ord($char) >= 97) && (ord($char) <= 122)) {

      $keychar = substr($key, ($keypos % length($key)), 1);
      $decrypt = chr(((ord($char)-ord($keychar)) % 26) + 97);

#print "DECRYPTING $char WITH $keychar\n";
#last;

      print "$decrypt";

      $keypos++;
    } else { print "$char"; }
  }
}
