A reference implementation of the Russian GOST crypto algorithms for OpenSSL
Find a file
Ilya Shipitsin 6dc5945f0e
Merge pull request #487 from kaperusov/docker
Реализация сборки Docker образов для GOST Engine
2025-10-25 11:14:44 +02:00
.github Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +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 Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +03:00
tcl_tests fix misleading slash 2025-10-03 19:42:11 +02:00
test Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +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 Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +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 Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +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 Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +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 Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +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 Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +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 Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +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 Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +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 Implement provider interface to support GOST TLS 1.3 2025-08-20 19:15:30 +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_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