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