A reference implementation of the Russian GOST crypto algorithms for OpenSSL
Find a file
Ilya Shipitsin 201c1f9a24
Some checks failed
CI / gcc-openssl-stable (push) Has been cancelled
CI / clang-openssl-stable (push) Has been cancelled
CI / macos-openssl-stable (push) Has been cancelled
CI / gcc-openssl-master (push) Has been cancelled
CI / macos-openssl-master (push) Has been cancelled
CI / gcc-asan-openssl-master (push) Has been cancelled
CI / macos-asan-openssl-master (push) Has been cancelled
CI / gcc-openssl-stable-x86 (push) Has been cancelled
CodeQL / Analyse (push) Has been cancelled
CI (windows) / msvc-openssl (push) Has been cancelled
CI (windows) / msvc-engine (push) Has been cancelled
Merge pull request #494 from Mironenko/upd-infotecs-test-cert
Update certificate for tls 1.3 tests against infotecs
2025-12-29 13:31:53 +01:00
.github Fix GitHub CI: hard-pin OpenSSL to tag openssl-3.6.0 and disable master and x86 job 2025-12-12 17:18:47 +03:00
benchmark Fix Coverity #305800 2020-08-22 18:42:56 +03:00
docker Building the GOST engine into Docker images 2025-10-25 10:49:33 +03:00
etalon Etalon files for GOST R 34.13-2015 (MAC) 2018-06-15 13:52:31 +03:00
libprov@d5d381f71c update submodule: libprov 2025-05-27 22:47:26 +02:00
patches Fix OpenSSL 3.6 compatibility and update gost-engine NID handling 2025-11-29 15:13:48 +03:00
tcl_tests Fix OpenSSL 3.6 compatibility and update gost-engine NID handling 2025-11-29 15:13:48 +03:00
test Update certificate for tls 1.3 tests against infotecs 2025-12-29 12:55:47 +03:00
.cirrus.yml CI: cirrus: bump image to freebsd 13.1 2022-11-02 21:32:00 +05:00
.dockerignore Building the GOST engine into Docker images 2025-10-25 10:49:33 +03:00
.editorconfig CI: Build and test on Windows (MSVC) 2021-12-11 19:45:14 +03:00
.gitignore Discover OpenSSL engines directory 2018-10-29 22:00:24 -04:00
.gitmodules Making a gost provider - Add the provider foundation 2021-10-11 19:34:09 +03:00
CMakeLists.txt Fix OpenSSL 3.6 compatibility and update gost-engine NID handling 2025-11-29 15:13:48 +03:00
e_gost_err.c Implementation of the MGM mode for magma/kuznyechik 2022-12-02 18:56:55 +01:00
e_gost_err.h Implementation of the MGM mode for magma/kuznyechik 2022-12-02 18:56:55 +01:00
e_gost_err.proto Initial commit 2015-08-14 20:50:01 +03:00
ecp_id_GostR3410_2001_CryptoPro_A_ParamSet.c [ecp] validation with coverity 2020-08-21 11:41:34 +03:00
ecp_id_GostR3410_2001_CryptoPro_B_ParamSet.c [ecp] validation with coverity 2020-08-21 11:41:34 +03:00
ecp_id_GostR3410_2001_CryptoPro_C_ParamSet.c [ecp] validation with coverity 2020-08-21 11:41:34 +03:00
ecp_id_GostR3410_2001_TestParamSet.c [ecp] validation with coverity 2020-08-21 11:41:34 +03:00
ecp_id_tc26_gost_3410_2012_256_paramSetA.c push VKO cofactor clearing into ECCKiila 2021-08-11 16:51:34 +03:00
ecp_id_tc26_gost_3410_2012_512_paramSetA.c [ecp] validation with coverity 2020-08-21 11:41:34 +03:00
ecp_id_tc26_gost_3410_2012_512_paramSetB.c [ecp] validation with coverity 2020-08-21 11:41:34 +03:00
ecp_id_tc26_gost_3410_2012_512_paramSetC.c push VKO cofactor clearing into ECCKiila 2021-08-11 16:51:34 +03:00
example.conf Get rid of irrelevant examples 2022-02-08 14:41:44 +01:00
getopt.h cppcheck: The scope of the variable can be reduced. 2020-02-27 00:14:48 +03:00
gost-engine.h Also build gost-engine in library form 2021-02-22 09:11:38 +01:00
gost.ec Error codes rebuild 2018-06-14 15:12:32 +03:00
gost.txt Implementation of the MGM mode for magma/kuznyechik 2022-12-02 18:56:55 +01:00
gost.txt.old Error regeneration 2020-05-10 17:04:40 +03:00
gost12sum.1 gost12sum gives the same hash strings as openssl dgst does 2017-08-20 16:17:24 +03:00
gost12sum.c Fix double initialization 2024-07-30 15:04:04 +00:00
gost89.c Refactored acpkm_magma_key_meshing 2022-07-11 13:48:35 +02:00
gost89.h Refactor little-to-big-endian subroutine for magma 2022-07-02 13:33:58 +02:00
gost_ameth.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gost_asn1.c Magma/Kuznyechik ASN1 parameters and functions 2020-05-04 15:50:12 +03:00
gost_crypt.c Fix OpenSSL 3.6 compatibility and update gost-engine NID handling 2025-11-29 15:13:48 +03:00
gost_ctl.c Move gost_cmds[] from gost_ctl.c to gost_eng.c 2021-02-15 12:07:38 +01:00
gost_ec_keyx.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gost_ec_sign.c gost_ec_sign: Fix sig verify step 1 range checks 2022-05-24 20:49:32 +02:00
gost_eng.c Fix OpenSSL 3.6 compatibility and update gost-engine NID handling 2025-11-29 15:13:48 +03:00
gost_gost2015.c Big-Endian platforms magma-mgm fix 2023-11-17 16:49:21 +01:00
gost_gost2015.h Implementation of the MGM mode for magma/kuznyechik 2022-12-02 18:56:55 +01:00
gost_grasshopper.h Grasshopper && CMake 2016-04-28 13:38:49 +03:00
gost_grasshopper_cipher.c Fix OpenSSL 3.6 compatibility and update gost-engine NID handling 2025-11-29 15:13:48 +03:00
gost_grasshopper_cipher.h Implementation of the MGM mode for magma/kuznyechik 2022-12-02 18:56:55 +01:00
gost_grasshopper_core.c Fix code formating. 2020-05-18 20:51:47 +03:00
gost_grasshopper_core.h Remove unused functions 2018-09-11 11:55:47 +03:00
gost_grasshopper_defines.c Grasshopper && CMake 2016-04-28 13:38:49 +03:00
gost_grasshopper_defines.h Fix MSVS2017 build errors. 2018-01-10 15:27:25 +02:00
gost_grasshopper_galois_precompiled.c Grasshopper && CMake 2016-04-28 13:38:49 +03:00
gost_grasshopper_math.h Compatibility with Solaris 10 (gcc 3.4.3) 2020-09-21 11:34:12 +03:00
gost_grasshopper_precompiled.c Build with -Werror 2016-11-19 21:54:18 +03:00
gost_grasshopper_precompiled.h Build with -Werror 2016-11-19 21:54:18 +03:00
gost_keyexpimp.c Fix OpenSSL 3.6 compatibility and update gost-engine NID handling 2025-11-29 15:13:48 +03:00
gost_keywrap.c cppcheck: The scope of the variable can be reduced. 2020-02-27 00:14:48 +03:00
gost_keywrap.h Initial commit 2015-08-14 20:50:01 +03:00
gost_lcl.h Fix OpenSSL 3.6 compatibility and update gost-engine NID handling 2025-11-29 15:13:48 +03:00
gost_md.c MSVC: Fix Elvis operator 2021-12-11 19:45:14 +03:00
gost_md2012.c Remove unneeded declarations after registration rework 2020-05-13 20:12:23 +03:00
gost_omac.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gost_omac_acpkm.c Fixed algorithm detection between magma and kuznyechik in OMAC. 2024-03-25 15:02:47 -04:00
gost_params.c Don't recreate GOST EC groups every time (#358) 2021-09-28 16:39:39 +02:00
gost_pmeth.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gost_prov.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gost_prov.h Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gost_prov_cipher.c Fix OpenSSL 3.6 compatibility and update gost-engine NID handling 2025-11-29 15:13:48 +03:00
gost_prov_decoder.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gost_prov_digest.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gost_prov_encoder.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gost_prov_keyexch.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gost_prov_keymgmt.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gost_prov_mac.c Added support for magma-ctracpkm-omac. 2024-03-24 06:33:44 -04:00
gost_prov_signature.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gost_prov_tls.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gost_prov_tls.h Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
gosthash.c cppcheck: The scope of the variable can be reduced. 2020-02-27 00:14:48 +03:00
gosthash.h Initial commit 2015-08-14 20:50:01 +03:00
gosthash2012.c Add .editorconfig 2021-12-01 15:28:38 +03:00
gosthash2012.h elbrus: Treat __e2k__ as __x86_64__ for Streebog 2020-02-10 11:28:23 +03:00
gosthash2012_const.h gosthash2012_const: Remove unused arrays with constants 2020-02-06 18:55:12 +03:00
gosthash2012_precalc.h Initial commit providing GOST 2012 algorithms. 2015-08-14 21:08:23 +03:00
gosthash2012_ref.h MSVC: Remove GCC pragma messages 2021-12-11 19:45:14 +03:00
gosthash2012_sse2.h MSVC: Remove GCC pragma messages 2021-12-11 19:45:14 +03:00
gostsum.1 Added CAVEATS section 2017-08-14 21:01:12 +03:00
gostsum.c Fix fb infer complain 2019-09-21 15:59:45 +03:00
INSTALL.md Building the GOST engine into Docker images 2025-10-25 10:49:33 +03:00
LICENSE License matching the openssl one 2019-10-27 20:26:43 +03:00
openssl_wrap.sh Useful wrap script 2020-05-09 19:37:46 +03:00
README.gost Update the HMAC calculation example 2020-05-10 17:37:49 +03:00
README.md Document the current state of the GOST provider 2021-10-11 19:34:09 +03:00
README.prov.md Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
test_ciphers.c MSVC: Fix 'no OPENSSL_Applink' error 2021-12-11 19:45:14 +03:00
test_context.c Added support for magma-ctracpkm-omac. 2024-03-24 06:33:44 -04:00
test_curves.c MSVC: Fix 'no OPENSSL_Applink' error 2021-12-11 19:45:14 +03:00
test_derive.c MSVC: Fix 'no OPENSSL_Applink' error 2021-12-11 19:45:14 +03:00
test_digest.c Merge pull request #455 from arx11/magma_ctracpkm_omac 2025-05-28 12:31:54 +02:00
test_ecdhe.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
test_gost89.c MSVC: Fix 'no OPENSSL_Applink' error 2021-12-11 19:45:14 +03:00
test_gost2814789.c MSVC: Fix 'no OPENSSL_Applink' error 2021-12-11 19:45:14 +03:00
test_keyexpimp.c Fix OpenSSL 3.6 compatibility and update gost-engine NID handling 2025-11-29 15:13:48 +03:00
test_mgm.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
test_params.c MSVC: Fix 'no OPENSSL_Applink' error 2021-12-11 19:45:14 +03:00
test_sign.c Added support for raw public key export and import 2024-03-23 06:13:59 -04:00
test_tls.c Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
test_tls13handshake.c Fix OpenSSL 3.6 compatibility and update gost-engine NID handling 2025-11-29 15:13:48 +03:00
test_tlstree.c MSVC: Fix 'no OPENSSL_Applink' error 2021-12-11 19:45:14 +03:00

engine

A reference implementation of the Russian GOST crypto algorithms for OpenSSL

Compatibility: OpenSSL 3.0

License: same as the corresponding version of OpenSSL.

Mailing list: http://www.wagner.pp.ru/list-archives/openssl-gost/

Some useful links: https://www.altlinux.org/OSS-GOST-Crypto

DO NOT TRY BUILDING MASTER BRANCH AGAINST openssl 1.1.1! Use 1_1_1 branch instead!

provider

A reference implementation in the same spirit as the engine, specified above.

This is currently work in progress, with only a subset of all intended functionality implemented: symmetric ciphers, hashes and MACs.

For more information, see README.prov.md