-test -createsfiles cfb0.dec "Decrypting etalon file in CFB mode" {
+# Default CRYPT_PARAMS for the following tests.
+set env(CRYPT_PARAMS) "id-tc26-gost-28147-param-Z"
+
+test -createsfiles cfb0.dec "Decrypting etalon file with GOST89-(CFB)" {
set plain2 [string repeat "Test data for encrypt of big string\n" 64]
makeFile enc2.dat $plain2 binary
set plain2 [string repeat "Test data for encrypt of big string\n" 64]
makeFile enc2.dat $plain2 binary
if [info exists env(CRYPT_PARAMS)] {unset env(CRYPT_PARAMS)}
openssl "enc -gost89 -out cfb2.enc -in enc2.dat -k 1234567890 -p"
file isfile cfb2.enc
} 0 1
if [info exists env(CRYPT_PARAMS)] {unset env(CRYPT_PARAMS)}
openssl "enc -gost89 -out cfb2.enc -in enc2.dat -k 1234567890 -p"
file isfile cfb2.enc
} 0 1
if [info exists env(CRYPT_PARAMS)] {unset env(CRYPT_PARAMS)}
openssl "enc -gost89-cnt -out cnt2.enc -in enc2.dat -k 1234567890 -p"
file isfile cnt2.enc
} 0 1
if [info exists env(CRYPT_PARAMS)] {unset env(CRYPT_PARAMS)}
openssl "enc -gost89-cnt -out cnt2.enc -in enc2.dat -k 1234567890 -p"
file isfile cnt2.enc
} 0 1
if [info exists env(CRYPT_PARAMS)] {unset env(CRYPT_PARAMS)}
openssl "enc -gost89-cbc -out cbc2.enc -in enc2.dat -k 1234567890 -p"
file isfile cbc2.enc
} 0 1
if [info exists env(CRYPT_PARAMS)] {unset env(CRYPT_PARAMS)}
openssl "enc -gost89-cbc -out cbc2.enc -in enc2.dat -k 1234567890 -p"
file isfile cbc2.enc
} 0 1
set env(CRYPT_PARAMS) "id-tc26-gost-28147-param-Z"
openssl "enc -gost89 -out cfb3.enc -in enc2.dat -k 1234567890 -p"
file isfile cfb3.enc
} 0 1
set env(CRYPT_PARAMS) "id-tc26-gost-28147-param-Z"
openssl "enc -gost89 -out cfb3.enc -in enc2.dat -k 1234567890 -p"
file isfile cfb3.enc
} 0 1
set env(CRYPT_PARAMS) "1.2.643.7.1.2.5.1.1"
openssl "enc -gost89 -d -in cfb3.enc -out cfb3.dec1 -k 1234567890 -p"
getFile cfb3.dec1
} 0 $plain2
set env(CRYPT_PARAMS) "1.2.643.7.1.2.5.1.1"
openssl "enc -gost89 -d -in cfb3.enc -out cfb3.dec1 -k 1234567890 -p"
getFile cfb3.dec1
} 0 $plain2
set env(CRYPT_PARAMS) "id-Gost28147-89-CryptoPro-RIC-1-ParamSet"
openssl "enc -gost89-cbc -out cbc3.enc -in enc2.dat -k 1234567890 -p"
file isfile cbc3.enc
} 0 1
set env(CRYPT_PARAMS) "id-Gost28147-89-CryptoPro-RIC-1-ParamSet"
openssl "enc -gost89-cbc -out cbc3.enc -in enc2.dat -k 1234567890 -p"
file isfile cbc3.enc
} 0 1
set env(CRYPT_PARAMS) "1.2.643.2.2.31.7"
openssl "enc -gost89-cbc -d -in cbc3.enc -out cbc3.dec1 -k 1234567890 -p"
getFile cbc3.dec1
} 0 $plain2
set env(CRYPT_PARAMS) "1.2.643.2.2.31.7"
openssl "enc -gost89-cbc -d -in cbc3.enc -out cbc3.dec1 -k 1234567890 -p"
getFile cbc3.dec1
} 0 $plain2
if [info exists env(CRYPT_PARAMS)] {unset env(CRYPT_PARAMS)}
makeFile enc1.cnf [regsub -all "\n\\s*CRYPT_PARAMS\\s*=\[\^\n]*" [getConfig] ""]
set ::env(OPENSSL_CONF) [file join [pwd] enc1.cnf]
if [info exists env(CRYPT_PARAMS)] {unset env(CRYPT_PARAMS)}
makeFile enc1.cnf [regsub -all "\n\\s*CRYPT_PARAMS\\s*=\[\^\n]*" [getConfig] ""]
set ::env(OPENSSL_CONF) [file join [pwd] enc1.cnf]
set env(CRYPT_PARAMS) "id-Gost28147-89-CryptoPro-B-ParamSet"
openssl "enc -gost89 -d -in cfb3.enc -out cfb3.dec3 -k 1234567890 -p"
string equal [getFile cfb3.dec3] $plain2
set env(CRYPT_PARAMS) "id-Gost28147-89-CryptoPro-B-ParamSet"
openssl "enc -gost89 -d -in cfb3.enc -out cfb3.dec3 -k 1234567890 -p"
string equal [getFile cfb3.dec3] $plain2
test -createsfiles macpkm1.enc "Encrypting etalon file (Magma-ACPKM)" {
openssl "enc -id-tc26-cipher-gostr3412-2015-magma-ctracpkm -K F797256845F36CF075603445CD322BACC3834032BC425E4D3C8495236F7B6CAF -iv 00000FFF00000000 -in magma_acpkm_plain.enc -out macpkm1.enc"
getFile macpkm1.enc
} 0 $macpkm1
test -createsfiles macpkm1.enc "Encrypting etalon file (Magma-ACPKM)" {
openssl "enc -id-tc26-cipher-gostr3412-2015-magma-ctracpkm -K F797256845F36CF075603445CD322BACC3834032BC425E4D3C8495236F7B6CAF -iv 00000FFF00000000 -in magma_acpkm_plain.enc -out macpkm1.enc"
getFile macpkm1.enc
} 0 $macpkm1