X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=README.gost;h=9ed86a5b885cd5e48325e0c34d1cc4fb5a4c168d;hb=09c5128a8ed6f0ff1505cd2a13d0e3982328366d;hp=c96cccc7b40a6ea45cf11d9871fec6ef021aa544;hpb=c98ba9d03213d0c63d6874539d59f7b55fbc3fae;p=openssl-gost%2Fengine.git diff --git a/README.gost b/README.gost index c96cccc..9ed86a5 100644 --- a/README.gost +++ b/README.gost @@ -8,14 +8,14 @@ OpenSSL and applications which use it. ALGORITHMS SUPPORTED -GOST R 34.10-94 and GOST R 34.10-2001 - digital signature algorithms. +GOST R 34.10-2001 and GOST R 34.10-2012 - digital signature algorithms. Also support key exchange based on public keys. See RFC 4357 for details of VKO key exchange algorithm. These algorithms use 256 bit private keys. Public keys are 1024 bit for 94 and 512 bit for 2001 (which is elliptic-curve based). Key exchange algorithms (VKO R 34.10) are supported on these keys too. -GOST R 34.11-94 Message digest algorithm. 256-bit hash value +GOST R 34.11-2012 Message digest algorithm. 256- and 512-bit hash values. GOST 28147-89 - Symmetric cipher with 256-bit key. Various modes are defined in the standard, but only CFB and CNT modes are implemented @@ -28,8 +28,12 @@ GOST 28147-89 MAC mode. Message authentication code. While most MAC It has 256-bit symmetric key and only 32 bits of MAC value (while HMAC has same key size and value size). + Really, this algorithm supports from 8 to 64 bits of the MAC value + It is implemented as combination of EVP_PKEY type and EVP_MD type. +GOST R 34.13–2015 - Symmetric cypher Grasshopper ("Kuznechik") + USAGE OF THESE ALGORITHMS This engine is designed to allow usage of this algorithms in the @@ -193,16 +197,35 @@ Russian clients and RSA/DSA ciphersuites for foreign clients. openssl dgst -mac gost-mac -macopt key:<32 bytes of key> datafile - Note absense of an option that specifies digest algorithm. gost-mac + Note absence of an option that specifies digest algorithm. gost-mac algorithm supports only one digest (which is actually part of implementation of this mac) and OpenSSL is clever enough to find out this. + Following mac options are supported: + + key:(32 bytes of key) + + hexkey:(64 hexadecimal digits of key) + + Engine support calculation of mac with size different from default 32 + bits. You can set mac size to any value from 1 to 8 bytes using + + -sigopt size:(number from 1 to 8 - mac size in bytes) + + (dgst command uses different EVP_PKEY_CTX for initialization and for + finalization of MAC. Option of first are set via -macopt, and for + second via -sigopt. Key should be set during initialization and size + during finalization. If you use API functions + EVP_DigestSignInit/EVP_DigestSignFinal, you can set both options at + the same time). + Encryption with GOST 28147 CFB mode openssl enc -gost89 -out encrypted-file -in plain-text-file -k Encryption with GOST 28147 CNT mode openssl enc -gost89-cnt -out encrypted-file -in plain-text-file -k - + Encryption with GOST 28147 CBC mode + openssl enc -gost89-cbc -out encrypted-file -in plain-text-file -k 6. Encrypting private keys and PKCS12 @@ -221,6 +244,7 @@ accessed by cipher-specific functions, only via generic evp interface openssl speed -evp gost89 openssl speed -evp gost89-cnt + openssl speed -evp gost89-cbc PROGRAMMING INTERFACES DETAILS