]> www.wagner.pp.ru Git - openssl-gost/engine.git/blob - tcl_tests/cmsenc_io.try
a78e11321f3f0dda91fcfacb21597139c61a27d0
[openssl-gost/engine.git] / tcl_tests / cmsenc_io.try
1 #!/usr/bin/tclsh
2 # -*- coding: cp1251 -*-
3 lappend auto_path [file dirname [info script]]
4 package require ossltest
5 cd $::test::dir
6 set testname [file rootname [file tail $::argv0]]
7
8 start_tests "Тесты на совместимость cms и smime -encrypt" 
9 proc make_fn {alg} {
10         return [string map {":" "_"} $alg]
11 }
12
13 proc map {str list} {
14         set result {}
15         foreach a $list {
16                 lappend result [subst $str]
17         }
18         return $result
19 }
20         
21 if {![info exist env(NO_RSA)]} {
22
23 test -createsfiles io_cms_decrypt.rsa "RSA User 2 (with cert) can decrypt message for RSA user 2" {
24         set expected [getFile encrypt.dat]
25         openssl "smime -decrypt -in cms_enc_rsa.msg -recip U_cms_enc_rsa_2/cert.pem -inkey U_cms_enc_rsa_2/seckey.pem -out io_cms_decrypt.rsa"
26         set result [getFile io_cms_decrypt.rsa]
27         string eq $expected $result
28 } 0 1
29
30 test -createsfiles io_cms_decrypt_nocert.rsa "RSA User 2 (without cert) can decrypt message for RSA user 2" {
31         set expected [getFile encrypt.dat]
32         openssl "smime -decrypt -in cms_enc_rsa.msg -inkey U_cms_enc_rsa_2/seckey.pem -out io_cms_decrypt_nocert.rsa"
33         set result [getFile io_cms_decrypt_nocert.rsa]
34         string eq $expected $result
35 } 0 1
36 }
37
38
39 if {[info exist env(ENC_LIST)]} {
40         set enc_list $env(ENC_LIST)
41 } else {
42         switch -exact [engine_name] {
43                 "ccore" {set enc_list {gost2001:XA:1.2.643.2.2.31.3 gost2001:XB:1.2.643.2.2.31.4 gost2001:XA: gost2012_256:XA:1.2.643.2.2.31.1 gost2012_256:XB:1.2.643.7.1.2.5.1.1 gost2012_256:XA: gost2012_512:A:1.2.643.2.2.31.3 gost2012_512:B:1.2.643.7.1.2.5.1.1 gost2012_512:A:}}
44                 "open" {set enc_list {gost2001:XA:1.2.643.2.2.31.3 gost2001:XB:1.2.643.2.2.31.4 gost2001:XA: gost2012_256:XA:1.2.643.2.2.31.1 gost2012_256:XB:1.2.643.7.1.2.5.1.1 gost2012_256:XA: gost2012_512:A:1.2.643.2.2.31.3 gost2012_512:B:1.2.643.7.1.2.5.1.1 gost2012_512:A:}}
45         }
46 }
47
48 foreach enc_tuple $enc_list {
49         if {![regexp {^([^:]*:[^:]*):(.*)$} $enc_tuple -> alg crypt_param]} {
50                 set alg $enc_tuple
51                 set crypt_param {}
52         }
53         set alg_fn [make_fn $enc_tuple]
54         set username U_cms_enc_$alg_fn
55         switch -glob $alg {
56                 gost2012* {set ::test::ca ${testname}CA-2012}
57                 * {set ::test::ca ${testname}CA}
58         }
59
60 test -createsfiles io_cms_decrypt.$alg_fn "Decrypting file encrypted for $username" {
61         set expected [getFile encrypt.dat]
62         openssl "smime -decrypt -in cms_enc_$alg_fn.msg -recip U_cms_enc_$alg_fn/cert.pem -inkey U_cms_enc_$alg_fn/seckey.pem -out io_cms_decrypt.$alg_fn"
63         set result [getFile io_cms_decrypt.$alg_fn]
64         string eq $expected $result
65 } 0 1
66
67 test -createsfiles io_cms_decrypt_t.$alg_fn "Decrypting file text-encrypted for $username" {
68         set expected [getFile encrypt.dat]
69         openssl "smime -decrypt -text -in cms_enc_t_$alg_fn.msg -recip U_cms_enc_$alg_fn/cert.pem -inkey U_cms_enc_$alg_fn/seckey.pem -out io_cms_decrypt_t.$alg_fn"
70         set result [getFile io_cms_decrypt_t.$alg_fn]
71         string eq $expected $result
72 } 0 1
73
74 test -createsfiles io_cms_decrypt_t_nocert.$alg_fn "Decrypting file text-encrypted for $username without cert" {
75         set expected [getFile encrypt.dat]
76         openssl "smime -decrypt -text -in cms_enc_t_$alg_fn.msg -inkey U_cms_enc_$alg_fn/seckey.pem -out io_cms_decrypt_t_nocert.$alg_fn"
77         set result [getFile io_cms_decrypt_t_nocert.$alg_fn]
78         string eq $expected $result
79 } 0 1
80
81 }
82
83
84 foreach enc_tuple $enc_list {
85         if {![regexp {^([^:]*:[^:]*):(.*)$} $enc_tuple -> alg crypt_param]} {
86                 set alg $enc_tuple
87                 set crypt_param {}
88         }
89         set alg_fn [make_fn $enc_tuple]
90         set username U_cms_enc_$alg_fn
91         
92 test -skip {![file exists cms_enc_4all.msg]} -createsfiles io_cms_decrypt_4all.$alg_fn "Decrypting gost-encrypted file, recipient $alg_fn" {
93         set expected [getFile encrypt.dat]
94         openssl "smime -decrypt -in cms_enc_4all.msg -recip $username/cert.pem -inkey $username/seckey.pem -out io_cms_decrypt_4all.$alg_fn"
95         set result [getFile io_cms_decrypt_4all.$alg_fn]
96         string eq $expected $result
97 } 0 1
98
99 test -skip {![file exists cms_enc_4all.msg]} -createsfiles io_cms_decrypt_4all_nocert.$alg_fn "Decrypting gost-encrypted file without cert, recipient $alg_fn" {
100         set expected [getFile encrypt.dat]
101         openssl "smime -decrypt -in cms_enc_4all.msg -inkey $username/seckey.pem -out io_cms_decrypt_4all_nocert.$alg_fn"
102         set result [getFile io_cms_decrypt_4all_nocert.$alg_fn]
103         string eq $expected $result
104 } 0 1
105
106 }
107
108 end_tests