A reference implementation of the Russian GOST crypto algorithms for OpenSSL
Find a file
Ilya Shipitsin 3dd0f0e429
Some checks failed
CI / gcc-openssl-4-0-0-x86 (push) Has been cancelled
CI / gcc-engine-openssl-3-6-0 (push) Has been cancelled
CI / clang-engine-openssl-3-6-0 (push) Has been cancelled
CI / macos-engine-openssl-3-6-0 (push) Has been cancelled
CI / gcc-provider-openssl-3-6-0-patch (push) Has been cancelled
CI / clang-provider-openssl-3-6-0-patch (push) Has been cancelled
CI / macos-provider-openssl-3-6-0-patch (push) Has been cancelled
CI / gcc-provider-openssl-master (push) Has been cancelled
CI / clang-provider-openssl-4-0-0 (push) Has been cancelled
CI / macos-provider-openssl-4-0-0 (push) Has been cancelled
CI / gcc-asan-openssl-4-0-0 (push) Has been cancelled
CI / macos-asan-openssl-4-0-0 (push) Has been cancelled
CI / gcc-openssl-3-6-0-x86 (push) Has been cancelled
CodeQL / Analyse (push) Has been cancelled
CI (windows) / msvc-openssl-3-6-0-patch (push) Has been cancelled
CI (windows) / msvc-openssl-3-6-0 (push) Has been cancelled
CI (windows) / msvc-openssl-4-0-0 (push) Has been cancelled
CI (windows) / msvc-openssl-master (push) Has been cancelled
CI (windows) / msvc-engine-openssl-3-6-0 (push) Has been cancelled
CI (windows) / msvc-provider-openssl-3-6-0-patch (push) Has been cancelled
CI (windows) / msvc-provider-openssl-4-0-0 (push) Has been cancelled
CI (windows) / msvc-provider-openssl-master (push) Has been cancelled
Merge pull request #527 from ilya-maltsev/pkcs12-rfc-9337-9548
Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support
2026-05-28 12:17:34 +02:00
.github skip_pkcs12_tests_on_openssl-master 2026-05-19 15:17:57 +03:00
benchmark
cmake Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
docker Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
etalon
libprov@d5d381f71c
patches Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
tcl_tests Enable building the provider with OpenSSL 4.0 2026-04-24 22:15:20 +03:00
test Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
.cirrus.yml
.dockerignore
.editorconfig
.gitignore
.gitmodules
CMakeLists.txt Enable building the provider with OpenSSL 4.0 2026-04-24 22:15:20 +03:00
e_gost_err.c
e_gost_err.h
e_gost_err.proto
ecp_id_GostR3410_2001_CryptoPro_A_ParamSet.c
ecp_id_GostR3410_2001_CryptoPro_B_ParamSet.c
ecp_id_GostR3410_2001_CryptoPro_C_ParamSet.c
ecp_id_GostR3410_2001_TestParamSet.c
ecp_id_tc26_gost_3410_2012_256_paramSetA.c
ecp_id_tc26_gost_3410_2012_512_paramSetA.c
ecp_id_tc26_gost_3410_2012_512_paramSetB.c
ecp_id_tc26_gost_3410_2012_512_paramSetC.c
example.conf
getopt.h
gost-engine.h
gost.ec
gost.txt
gost.txt.old
gost12sum.1
gost12sum.c
gost89.c
gost89.h
gost_ameth.c Move gost_ameth functions impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_ameth.h Move gost_ameth functions impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_asn1.c
gost_cipher.c Refactor prov-cipher to avoid using deprecated ENGINE/EVP_CIPHER_meth APIs 2026-04-13 13:56:10 +03:00
gost_cipher.h Refactor prov-cipher to avoid using deprecated ENGINE/EVP_CIPHER_meth APIs 2026-04-13 13:56:10 +03:00
gost_cipher_ctx.c Fix static analysis warnings for GOST_cipher_ctx_iv_length returning -1 2026-04-18 20:53:40 +03:00
gost_cipher_ctx.h Refactor prov-cipher to avoid using deprecated ENGINE/EVP_CIPHER_meth APIs 2026-04-13 13:56:10 +03:00
gost_cipher_ctx_evp.c Refactor prov-cipher to avoid using deprecated ENGINE/EVP_CIPHER_meth APIs 2026-04-13 13:56:10 +03:00
gost_cipher_details.h Refactor prov-cipher to avoid using deprecated ENGINE/EVP_CIPHER_meth APIs 2026-04-13 13:56:10 +03:00
gost_crypt.c Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
gost_cryptopro_keybag.c remove unregister_cryptopro_keybag_pbe 2026-05-12 15:41:32 +03:00
gost_cryptopro_keybag.h remove unregister_cryptopro_keybag_pbe 2026-05-12 15:41:32 +03:00
gost_cryptopro_keybag_asn1.c Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
gost_cryptopro_keybag_asn1.h Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
gost_ctl.c Move cmd function impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_digest.c Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_digest.h Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_digest_ctx.c Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_digest_details.h Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_ec_keyx.c Remove direct access to ASN1_* fields 2026-04-24 22:15:20 +03:00
gost_ec_sign.c
gost_eng.c Move cmd function impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_eng_ameth.c Move gost_ameth functions impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_eng_ameth.h Move gost_ameth functions impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_eng_cipher.c Refactor prov-cipher to avoid using deprecated ENGINE/EVP_CIPHER_meth APIs 2026-04-13 13:56:10 +03:00
gost_eng_cipher.h Refactor prov-cipher to avoid using deprecated ENGINE/EVP_CIPHER_meth APIs 2026-04-13 13:56:10 +03:00
gost_eng_cmd.c Move cmd function impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_eng_cmd.h Move cmd function impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_eng_digest.c Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_eng_digest.h Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_eng_digest_define.c Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_eng_digest_define.h Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_eng_pmeth.c Fix setting Grasshopper MAC size > 8 via openssl-tool 2026-04-24 22:15:51 +03:00
gost_eng_pmeth.h Move gost_pmeth functions impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_gost2015.c Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
gost_gost2015.h Refactor prov-cipher to avoid using deprecated ENGINE/EVP_CIPHER_meth APIs 2026-04-13 13:56:10 +03:00
gost_grasshopper.h
gost_grasshopper_cipher.c Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
gost_grasshopper_cipher.h Refactor prov-cipher to avoid using deprecated ENGINE/EVP_CIPHER_meth APIs 2026-04-13 13:56:10 +03:00
gost_grasshopper_core.c
gost_grasshopper_core.h
gost_grasshopper_defines.c
gost_grasshopper_defines.h
gost_grasshopper_galois_precompiled.c
gost_grasshopper_math.h
gost_grasshopper_precompiled.c
gost_grasshopper_precompiled.h
gost_keyexpimp.c Refactor prov-cipher to avoid using deprecated ENGINE/EVP_CIPHER_meth APIs 2026-04-13 13:56:10 +03:00
gost_keywrap.c
gost_keywrap.h
gost_lcl.h Move cmd function impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_md.c Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_md2012.c Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_omac.c Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_omac_acpkm.c Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_params.c
gost_pmeth.c Move gost_pmeth functions impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_pmeth.h Move gost_pmeth functions impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_prov.c remove unregister_cryptopro_keybag_pbe 2026-05-12 15:41:32 +03:00
gost_prov.h Refactor prov-cipher to avoid using deprecated ENGINE/EVP_CIPHER_meth APIs 2026-04-13 13:56:10 +03:00
gost_prov_cipher.c Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
gost_prov_decoder.c Move cmd function impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_prov_digest.c Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
gost_prov_digest.h Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_prov_encoder.c Move cmd function impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
gost_prov_keyexch.c
gost_prov_keymgmt.c
gost_prov_mac.c Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_prov_mac.h Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_prov_signature.c
gost_prov_tls.c
gost_prov_tls.h
gost_tls12_additional.h Extract kexp15, kimp15, kdftree2012_256, and tlstree implementations into a separate module 2026-03-06 01:32:48 +03:00
gost_tls12_additional_kdftree.c Apply suggestions from code review 2026-04-02 14:44:55 +03:00
gost_tls12_additional_kdftree.h Extract kexp15, kimp15, kdftree2012_256, and tlstree implementations into a separate module 2026-03-06 01:32:48 +03:00
gost_tls12_additional_kexpimp.c Introduce intermediate digest/MAC API and use it in the engine and provider 2026-03-15 20:10:12 +03:00
gost_tls12_additional_kexpimp.h Extract kexp15, kimp15, kdftree2012_256, and tlstree implementations into a separate module 2026-03-06 01:32:48 +03:00
gost_tls12_additional_tlstree.c Extract kexp15, kimp15, kdftree2012_256, and tlstree implementations into a separate module 2026-03-06 01:32:48 +03:00
gost_tls12_additional_tlstree.h Extract kexp15, kimp15, kdftree2012_256, and tlstree implementations into a separate module 2026-03-06 01:32:48 +03:00
gosthash.c
gosthash.h
gosthash2012.c
gosthash2012.h Fix incorrect alignment in gosthash2012 causing potential SEGFAULT 2026-02-24 02:42:47 +03:00
gosthash2012_const.h
gosthash2012_precalc.h
gosthash2012_ref.h
gosthash2012_sse2.h
gostsum.1
gostsum.c
INSTALL.md add openssl-devel-engine dependency for F43+ 2026-01-28 17:11:25 +02:00
LICENSE
openssl_wrap.sh
README.gost
README.md Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
README.pkcs12.md Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
README.pkcs12.ru.md Add PKCS#12 RFC 9337 / RFC 9548 GOST-native support 2026-05-08 23:28:15 +03:00
README.prov.md
test_ciphers.c Enable building the provider with OpenSSL 4.0 2026-04-24 22:15:20 +03:00
test_context.c
test_curves.c
test_derive.c
test_digest.c Enable building the provider with OpenSSL 4.0 2026-04-24 22:15:20 +03:00
test_ecdhe.c Move cmd function impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
test_gost89.c
test_gost2814789.c
test_gosthash.c Separate independent modules gost89, gosthash, gosthash2012 2026-02-24 02:42:47 +03:00
test_gosthash2012.c Separate independent modules gost89, gosthash, gosthash2012 2026-02-24 02:42:47 +03:00
test_mgm.c
test_params.c Move cmd function impl from gost-core to engine-related translation unit 2026-04-24 22:15:20 +03:00
test_pkcs12_rfc9337.c apply_copilot_review 2026-05-12 15:46:11 +03:00
test_sign.c
test_tls.c
test_tls12additional.c Extract kexp15, kimp15, kdftree2012_256, and tlstree implementations into a separate module 2026-03-06 01:32:48 +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

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

PKCS#12 (PFX)

Engine-side support for the legacy GOST 28147-89 PBE form (RFC 7292) and RFC 9337 / RFC 9548 GOST PKCS#12 containers via the stock openssl pkcs12 command. CLI usage, configuration knobs, and the on-the-wire OID table are documented in README.pkcs12.md.