]> wagner.pp.ru Git - openssl-gost/engine.git/blob - tcl_tests/mac.try
Update Copyright lines after registration rework
[openssl-gost/engine.git] / tcl_tests / mac.try
1 #!/usr/bin/tclsh
2 lappend auto_path [file dirname [info script]]
3 package require ossltest
4 cd $::test::dir
5 start_tests "Тесты на команду dgst с MAC"
6
7 test -createsfiles {dgst.dat dgst0.dat dgst2.dat dgst8.dat dgst63.dat mac-grasshopper.dat mac-magma.dat} "Формирование тестовых данных" {
8         makeFile dgst.dat [string repeat "Test data to digest.\n" 100] binary
9         makeFile dgst0.dat "" binary
10         makeFile dgst2.dat [string repeat "1\n" 1] binary
11         makeFile dgst8.dat [string repeat "1\n" 4] binary
12         makeFile dgst63.dat "012345678901234567890123456789012345678901234567890123456789012" binary
13         file copy -force ../mac-grasshopper.dat ../mac-magma.dat .
14 } 0 ""
15
16 test "Вычисление HMAC(md_gost12_512)" {
17         grep "md_gost12_512\\(" [openssl "dgst -md_gost12_512 -hmac 123456901234567890123456789012 dgst63.dat"]
18 } 0 "HMAC-md_gost12_512(dgst63.dat)= 3767bcbe31de0965a6cd2613d99cc8cda922e7b288478389ed9bd433abfc08ff61d9bd0257b2d14dd0648d04ebf056180b3c8739a7cd7f8a78dac856359fe26f\n"
19
20 test "Вычисление двух HMAC(md_gost12_512)" {
21         grep "md_gost12_512\\(" [openssl "dgst -md_gost12_512 -hmac 123456901234567890123456789012 dgst63.dat dgst63.dat"]
22 } 0 "HMAC-md_gost12_512(dgst63.dat)= 3767bcbe31de0965a6cd2613d99cc8cda922e7b288478389ed9bd433abfc08ff61d9bd0257b2d14dd0648d04ebf056180b3c8739a7cd7f8a78dac856359fe26f\nHMAC-md_gost12_512(dgst63.dat)= 3767bcbe31de0965a6cd2613d99cc8cda922e7b288478389ed9bd433abfc08ff61d9bd0257b2d14dd0648d04ebf056180b3c8739a7cd7f8a78dac856359fe26f\n"
23
24 test "Вычисление HMAC(md_gost94)" {
25         grep "md_gost94\\(" [openssl "dgst -md_gost94 -hmac 123456901234567890123456789012 dgst.dat"]
26 } 0 "HMAC-md_gost94(dgst.dat)= 25434aa4b59b9749d3716ac188762b6c92b47d552aeb556f74b9c357b2b7c8c6\n"
27
28 test "Вычисление двух HMAC(md_gost94)" {
29         grep "md_gost94\\(" [openssl "dgst -md_gost94 -hmac 123456901234567890123456789012 dgst.dat dgst.dat"]
30 } 0 "HMAC-md_gost94(dgst.dat)= 25434aa4b59b9749d3716ac188762b6c92b47d552aeb556f74b9c357b2b7c8c6\nHMAC-md_gost94(dgst.dat)= 25434aa4b59b9749d3716ac188762b6c92b47d552aeb556f74b9c357b2b7c8c6\n"
31
32 test "Попытка вычислить MAC с ключом неправильной длины" {
33         grep gost-mac [openssl "dgst -mac gost-mac  -macopt key:123456789012345678901234567890 dgst.dat"]
34 } 1 "invalid mac key length"
35
36 test "Попытка вычислить MAC с hex ключом неправильной длины" {
37         grep gost-mac [openssl "dgst -mac gost-mac  -macopt hexkey:414243444546474849404142434445464748494041424344454647484940 dgst.dat"]
38 } 1 "invalid mac key length"
39
40 test "Вычисление MAC gost89" {
41         grep gost-mac [openssl "dgst -mac gost-mac -macopt key:12345678901234567890123456789012 dgst.dat"]
42 } 0 "GOST-MAC-gost-mac(dgst.dat)= 37f646d2\n"
43
44 test "Вычисление двух MAC gost89" {
45         grep gost-mac [openssl "dgst -mac gost-mac -macopt key:12345678901234567890123456789012 dgst.dat dgst.dat"]
46 } 0 "GOST-MAC-gost-mac(dgst.dat)= 37f646d2\nGOST-MAC-gost-mac(dgst.dat)= 37f646d2\n"
47
48 test "Вычислиение MAC gost89 с шестнацатиричным ключом" {
49         grep gost-mac [openssl "dgst -mac gost-mac -macopt hexkey:3132333435363738393031323334353637383930313233343536373839303132 dgst.dat"]
50 } 0 "GOST-MAC-gost-mac(dgst.dat)= 37f646d2\n"
51
52 test "Вычисление MAC gost89 от файла нулевой длины" {
53         grep gost-mac [openssl "dgst -mac gost-mac -macopt key:12345678901234567890123456789012 dgst0.dat"]
54 } 0 "GOST-MAC-gost-mac(dgst0.dat)= 00000000\n"
55
56 test "Вычисление MAC gost89 от файла длины 2" {
57         grep gost-mac [openssl "dgst -mac gost-mac -macopt key:12345678901234567890123456789012 dgst2.dat"]
58 } 0 "GOST-MAC-gost-mac(dgst2.dat)= 87ea321f\n"
59
60 test "Вычисление MAC gost89 от файла длины 8" {
61         grep gost-mac [openssl "dgst -mac gost-mac -macopt key:12345678901234567890123456789012 dgst8.dat"]
62 } 0 "GOST-MAC-gost-mac(dgst8.dat)= ad9aeae0\n"
63
64 test "Вычисление MAC gost8912" {
65         grep gost-mac [openssl "dgst -mac gost-mac-12 -macopt key:12345678901234567890123456789012 dgst8.dat"]
66 } 0 "GOST-MAC-12-gost-mac-12(dgst8.dat)= be70ba5e\n"
67
68 test "Вычисление MAC gost89 со сменой параметров на параметры от gost8912 (symbolic)" {
69         grep gost-mac [openssl "dgst -mac gost-mac -macopt key:12345678901234567890123456789012 -macopt paramset:id-tc26-gost-28147-param-Z dgst8.dat"]
70 } 0 "GOST-MAC-gost-mac(dgst8.dat)= be70ba5e\n"
71
72 test "Вычисление MAC gost8912 со сменой параметров на параметры от gost89 (OID)" {
73         grep gost-mac [openssl "dgst -mac gost-mac-12 -macopt key:12345678901234567890123456789012 -macopt paramset:1.2.643.2.2.31.1 dgst8.dat"]
74 } 0 "GOST-MAC-12-gost-mac-12(dgst8.dat)= ad9aeae0\n"
75
76 test "Вычисление MAC gost89 со сменой параметров на параметры 1.2.643.2.2.31.2" {
77         grep gost-mac [openssl "dgst -mac gost-mac -macopt key:12345678901234567890123456789012 -macopt paramset:1.2.643.2.2.31.2 dgst8.dat"]
78 } 0 "GOST-MAC-gost-mac(dgst8.dat)= c7fdc644\n"
79
80 test "Вычисление MAC gost8912 со сменой параметров на параметры id-Gost28147-89-CryptoPro-B-ParamSet" {
81         grep gost-mac [openssl "dgst -mac gost-mac-12 -macopt key:12345678901234567890123456789012 -macopt paramset:id-Gost28147-89-CryptoPro-B-ParamSet dgst8.dat"]
82 } 0 "GOST-MAC-12-gost-mac-12(dgst8.dat)= c7fdc644\n"
83
84 test "Вычисление MAC gost89 с изменение длины имитовставки (8)" {
85         grep gost-mac [openssl "dgst -mac gost-mac -macopt key:12345678901234567890123456789012 -sigopt size:8 dgst8.dat"]
86 } 0 "GOST-MAC-gost-mac(dgst8.dat)= ad9aeae05a7f6f71\n"
87
88 test "Вычисление MAC gost8912 с изменение длины имитовставки (6)" {
89         grep gost-mac [openssl "dgst -mac gost-mac-12 -macopt key:12345678901234567890123456789012 -sigopt size:6 dgst8.dat"]
90 } 0 "GOST-MAC-12-gost-mac-12(dgst8.dat)= be70ba5ed6b0\n"
91
92 test "Вычисление MAC gost89 с изменение длины имитовставки (2)" {
93         grep gost-mac [openssl "dgst -mac gost-mac -macopt key:12345678901234567890123456789012 -sigopt size:3 dgst8.dat"]
94 } 0 "GOST-MAC-gost-mac(dgst8.dat)= ad9aea\n"
95
96 test "Вычисление MAC gost89 с изменение длины имитовставки через macopt" {
97         grep gost-mac [openssl "dgst -mac gost-mac -macopt key:12345678901234567890123456789012 -macopt size:3 dgst8.dat"]
98 } 0 "GOST-MAC-gost-mac(dgst8.dat)= ad9aea\n"
99
100 test "Вычисление MAC gost8912 с изменение длины имитовставки через macopt" {
101         grep gost-mac [openssl "dgst -mac gost-mac-12 -macopt key:12345678901234567890123456789012 -macopt size:6 dgst8.dat"]
102 } 0 "GOST-MAC-12-gost-mac-12(dgst8.dat)= be70ba5ed6b0\n"
103
104 test "Вычисление MAC gost8912 с изменение длины имитовставки:sigopt переписывает macopt " {
105         grep gost-mac [openssl "dgst -mac gost-mac-12 -macopt key:12345678901234567890123456789012 -macopt size:2 -sigopt size:6 dgst8.dat"]
106 } 0 "GOST-MAC-12-gost-mac-12(dgst8.dat)= be70ba5ed6b0\n"
107
108 test "Вычисление MAC gost8912 с изменение длины имитовставки:sigopt переписывает macopt " {
109         grep gost-mac [openssl "dgst -mac gost-mac-12 -macopt key:12345678901234567890123456789012 -macopt size:2 -sigopt size:6 dgst8.dat"]
110 } 0 "GOST-MAC-12-gost-mac-12(dgst8.dat)= be70ba5ed6b0\n"
111
112 test "Вычисление MAC magma-mac (пример из ГОСТ 2015 34.13)" {
113         grep magma-mac [openssl "dgst -mac magma-mac -macopt hexkey:ffeeddccbbaa99887766554433221100f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff mac-magma.dat"]
114 } 0 "MAGMA-MAC-magma-mac(mac-magma.dat)= 154e72102030c5bb\n"
115
116 #FIXME my regression
117 test "Вычисление MAC grasshopper-mac (пример из ГОСТ 2015 34.13)" {
118         grep kuznyechik-mac [openssl "dgst -mac kuznyechik-mac -macopt hexkey:8899aabbccddeeff0011223344556677fedcba98765432100123456789abcdef mac-grasshopper.dat"]
119 } 0 "KUZNYECHIK-MAC-kuznyechik-mac(mac-grasshopper.dat)= 336f4d296059fbe34ddeb35b37749c67\n"
120
121 end_tests