1#!/bin/perl
2
3use strict;
4
5require "../common-perl/aes.pl";
6require "../common-perl/aes-demo-lib.pl";
7
8my $dec_mode = 0;
9
10if( $ARGV[0] eq "-d" )
11{
12	$dec_mode = 1;
13	shift @ARGV;
14}
15
16my( $src_file, $key_file, $ctr_file, $dst_file ) = @ARGV;
17
18die "invalid key file size\n" if -s $key_file != 16;
19
20srand;
21
22my $rSrc = &demo::read_file($src_file);
23my $rKey = &demo::read_file($key_file);
24my $rCounter;
25
26if( $dec_mode )
27{
28	$rCounter = &demo::read_file($ctr_file);
29}
30else
31{
32	$rCounter = &demo::generate_rand(16);
33}
34
35my $encrypted = &aes::ctr($rKey, $rCounter, $rSrc);
36
37&demo::write_file($ctr_file, $rCounter) unless $dec_mode;
38&demo::write_file($dst_file, $encrypted);
39
40exit;
41
42
43
44