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