On 04/17/2014 12:12 AM, Andrey Kulikov wrote:
Hello Dmitry,

Thanks a lot for your commitment!

It would be good idea to add test cases for new functionality as well.


Yes, I tried my best to follow what other tests did, such as gost2814789t.c.
See gosthash12t.c.

This is initial patch, it includes only the hash function and test cases for it.
I'm preparing the other smaller patches based on it to follow.



On 14 April 2014 23:52, Dmitry Olshansky via RT <[email protected] <mailto:[email protected]>> wrote:

    It's been a bit over 2 years since the new Russian cryptography
    standard
    is out.
    RFCs 6986 and 7091 been out there for a while[1,2]. Other toolkits are
    adding support, e.g. Libgcrypt introduced GOST 34.11-2012 in 1.6.0
    [3].

    Keeping in mind that OpenSSL provides GOST reference engine it seems
    natural to revise it in the light of the new standard.

    To summarize the full set of changes for the new standard:
         - New hash function GOST R 34.11-2012 (Stribog) takes place
    of GOST
    R 34.11-94. After 2018 usage of 34.11-94 is basically prohibited.

         - Digital signature algorithm GOST 34.10-2001 is extended to
    support both 256bit and 512bit keys. The hash function to use is
    GOST R
    34.11-2012. 256bit version is exactly the same modulo the hashing.

         - 2 new parameter sets (curves) for 512bit GOST 34.10-2012 are
    listed as recommended. Older ones stay as is for 256-bit version.

         - Symmetric cipher stays the same, one new S-box set was defined.

         - Key Exchange (VKO) is the same algorithm but with different
    hash
    function (HMAC of GOST 34.11-2012).

    This patch adds support for hash algorithm GOST R 34.11-2012 _only_ .
    The source code was initially tested on x86, PowerPC and ARMv4.
    New digests have short names "md_gost12_256" and "md_gost12_512"
    respectively.

    See attached patch or browse it on github:
    https://github.com/openssl/openssl/pull/68

    Next steps towards full support are far less involved and consist
    mostly
    of minor changes such as adding paramsets and/or removing artificial
    limitations.

    1. GOST R 34.11-2012: Hash Function http://tools.ietf.org/html/rfc6986
    2. GOST R 34.10-2012: Digital Signature Algorithm
    http://tools.ietf.org/html/rfc7091
    3. http://lists.gnupg.org/pipermail/gnupg-announce/2013q4/000336.html

    --
    Dmitry Olshansky





--
Dmitry Olshansky

Systems Engineer
Demos llc.

Reply via email to