]> www.wagner.pp.ru Git - openssl-gost/engine.git/blob - test/02-mac.t
Making a gost provider - Refactor the testing foundation
[openssl-gost/engine.git] / test / 02-mac.t
1 #!/usr/bin/perl 
2 use Test2::V0;
3 skip_all('TODO: add mac support in provider')
4     unless $ARGV[0] eq 'engine';
5 plan(19);
6
7 # prepare data for 
8 my $F;
9 open $F,">","testdata.dat";
10 print $F "12345670" x 128;
11 close $F;
12
13 open $F,">","testbig.dat";
14 print $F ("12345670" x 8 . "\n") x  4096;
15 close $F;
16
17 my $key='0123456789abcdef' x 2;
18
19 my $engine=$ENV{'ENGINE_NAME'}||"gost";
20
21 # Reopen STDERR to eliminate extra output
22 open STDERR, ">>","tests.err";
23
24 is(`openssl dgst -engine ${engine} -mac gost-mac -macopt key:${key} testdata.dat`,
25 "GOST-MAC-gost-mac(testdata.dat)= 2ee8d13d\n",
26 "GOST MAC - default size");
27
28 my $i;
29 for ($i=1;$i<=8; $i++) {
30         is(`openssl dgst -engine ${engine} -mac gost-mac -macopt key:${key} -sigopt size:$i testdata.dat`,
31 "GOST-MAC-gost-mac(testdata.dat)= ".substr("2ee8d13dff7f037d",0,$i*2)."\n",
32 "GOST MAC - size $i bytes");
33 }
34
35
36
37 is(`openssl dgst -engine ${engine} -mac gost-mac -macopt key:${key} testbig.dat`,
38 "GOST-MAC-gost-mac(testbig.dat)= 5efab81f\n",
39 "GOST MAC - big data");
40
41 is(`openssl dgst -engine ${engine} -mac gost-mac-12 -macopt key:${key} testdata.dat`,
42 "GOST-MAC-12-gost-mac-12(testdata.dat)= be4453ec\n",
43 "GOST MAC - parameters 2012");
44
45
46 for ($i=1;$i<=8; $i++) {
47         is(`openssl dgst -engine ${engine} -mac gost-mac-12 -macopt key:${key} -sigopt size:$i testdata.dat`,
48 "GOST-MAC-12-gost-mac-12(testdata.dat)= ".substr("be4453ec1ec327be",0,$i*2)."\n",
49 "GOST MAC parameters 2012 - size $i bytes");
50 }
51 unlink('testdata.dat');
52 unlink('testbig.dat');