Subject: Поддержка 34.10-2012 X.509 сертификатов и TLS 1.3 в Go

From: Sergey Matveev <[email-masked]>
Date: Thu, 25 Jun 2020 21:29:10 +0300

Приветствую!

Для последней релизной версии Go (1.14.4) в ФГУП НТЦ "Атлас" сделали
поддержку 34.10-2012 X.509 сертификатов и TLS 1.3, через GoGOST
(http://gogost.cypherpunks.ru/) библиотеку. Вот небольшой README:
http://git.cypherpunks.ru/cgit.cgi/gostls13.git/plain/README?h=go1.14.4-gost
Всё это сделано одним коммитом относительно go1.14.4 тэга оригинального
Go репозитория.

Собрать версию с ГОСТ поддержкой можно так:

    * склонировав полностью репозиторий с Go:
        $ git clone git://git.cypherpunks.ru/gostls13.git
      или добавив его к уже существующему Go репозиторию как remote:
        $ git remote add gostls13
        $ git fetch gostls13
    * переключившись в go1.14.4-gost ветку репозитория:
        $ git checkout go1.14.4-gost
        # хэш коммита: c347a3b15a57f32627cb467992a1251de4dd3d16
    * запустив gogost-install.sh для скачивания GoGOST 4.2.4 библиотеки
      и её установки в качестве vendor зависимости:
        $ ./gogost-install.sh
    * дальше собирая Go штатным образом, например:
        $ cd src ; ./all.bash
        # один тест, не знающий про GoGOST зависимость упадёт
    * По умолчанию, ГОСТ в TLS 1.3 отключён, чтобы не падали родные Go
      тесты. Включить его можно просто вызвав crypto/tls.GOSTInstall()

Хочу подчеркнуть, что из-за отсутствия оптимизаций в GoGOST, скорость
работы сильно отстаёт от C-реализаций.

-- 
Sergey Matveev (http://www.stargrave.org/)
OpenPGP: CF60 E89A 5923 1E76 E263  6422 AE1A 8109 E498 57EF