# GOST provider The GOST provider is currently built in parallell with the GOST engine, and is implemented like a wrapper around the engine code. ## Currently implemented Symmetric ciphers: - gost89 - gost89-cnt - gost89-cnt-12 - gost89-cbc - kuznyechik-ecb - kuznyechik-cbc - kuznyechik-cfb - kuznyechik-ofb - kuznyechik-ctr - magma-cbc - magma-ctr - magma-ctr-acpkm - magma-ctr-acpkm-omac - kuznyechik-ctr-acpkm - kuznyechik-ctr-acpkm-omac Hashes: - id-tc26-gost3411-12-256 (md_gost12_256) - id-tc26-gost3411-12-512 (md_gost12_512) - id-GostR3411-94 (md_gost94) MACs: - gost-mac - gost-mac-12 - magma-mac - kuznyechik-mac - kuznyechik-ctr-acpkm-omac ## TODO, not requiring additional OpenSSL support - Basic support for GOST keys, i.e. implementations of KEYMGMT (including key generation), DECODER and DECODER. - Support for these operations using GOST keys: - ASYM_CIPHER (encryption and decryption using GOST keys) - SIGNATURE (signing and verifying using GOST keys) ## TODO, which requires additional OpenSSL support - TLSTREE support. This may require additional changes in libssl. Needs investigation. - PKCS7 and CMS support. This requires OpenSSL PKCS7 and CMS code to change for better interfacing with providers. ## TODO, far future - Refactor the code into being just a provider. This is to be done when engines aren't supported any more.