Open-source aspects of GOST Cryptography
 help / color / mirror / Atom feed
From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
To: Open-source aspects of GOST Cryptography
	<oss-gost-crypto@lists.altlinux.org>
Subject: Re: [oss-gost-crypto] Расшифровка S/MIME
Date: Fri, 13 Sep 2019 14:30:12 +0300
Message-ID: <CALT56yNyViQ_QXHd5U+_m-zQt2r4dO_NWU3BdtdPeoN+QYfnVA@mail.gmail.com> (raw)
In-Reply-To: <adb8dc51-17aa-7953-d83a-700439bfc3d9@altlinux.org>

пт, 13 сент. 2019 г. в 13:30, Paul Wolneykien <manowar@altlinux.org>:
>
> 13.09.2019 13:13, Dmitry Eremin-Solenikov пишет:
> > пт, 13 сент. 2019 г. в 12:45, Paul Wolneykien <manowar@altlinux.org>:
> >> 13.09.2019 00:53, Dmitry Eremin-Solenikov пишет:
> >>>
> >>> Да, у меня не был дописан CryptoPro meshing для gost. Если нужен, давай обсудим
> >>> интерфейс и я его протолкну Вернеру.
> >>
> >>   Может быть ты и gpgsm заодно протолкнёшь? :-)
> >
> > Если он будет нормально сделан, почему бы и нет. Я в свое время
> > засыпался на том,
> > что не удавалось нормально доделать libksba. На github.com/GostCrypt
> > должны и патчики
> > лежать для gpgsm с libksba.
>
>   Наверное, я их уже использую.

Посмотрел. gnupg/gpgsm я никогда не выкладывал, потому что от полностью
рабочего оно далеко было. Mea culpa.

> >>   Интерфейс, я думаю, такой же как для установки S-box:
> >>
> >>     gcry_cipher_ctl (hd, GCRYCTL_SET_KEYMESHING, buf, len)
> >
> > Да, это логично. Но в этот момент все становится весело.
> > Потому что hd — это gost28147 + cfb. И мешинг должен идти в cfb.
>
>   Я посмотрел сейчас в gost_cipher_do_cfb() из openssl-gost-engine. Там
> gost_crypt_mesh() — это обёртка над gostcrypt(), функцией шифрования
> буфера, которая делает meshing когда надо (а когда не надо — не делает).
> На первый взгляд кажется, что если добавить счётчик в GOST28147_context
> и накручивать его в gost_encrypt_block(), то наверх в
> _gcry_cipher_cfb_encrypt() можно ничего не выносить.

Да, согласен. С CFB прокатывает. Это в CNT были неудобства, если
честно разносить
счетчик и encrypt.

> > У меня альтернативное предложение: сделать GCRY_CIPHER_MODE_CFB_MESH.
> > Вопрос, уложится ли это у тебя в gpgsm? Должно уложиться, если поправить
> > oids_gost28147 в cipher/gost28147.c.
>
>   Можно и так. Но что от этого изменится во взаимоотношении между
> cipher/cipher-cfb.c (общей частью Libgcrypt) и нашей частью
> cipher/gost28147.c ? Что нам здесь даёт отдельный
> GCRY_CIPHER_MODE_CFB_MESH ? Вероятно, он даёт отдельный
> gcry_cipher_spec_t со своими функциями encrypt и decrypt. Но, как я
> написал выше, кажется можно использовать обёртки над теми
> gost_encrypt_block() и gost_decrypt_block(), которые определены сейчас в
> спеке _gcry_cipher_spec_gost28147.

Тогда проще не обертки, а вставить нужный код в них и действительно
gcry_cipher_ctl().

> > Отдельный вопрос: тебе IMIT и CNT нужны или нет?
>
>   IMIT да. Я же CMAC считаю при передаче ключей.

Хорошо. Приведу код в порядок и отправлю.

> >> допустим. В OpenSSL тоже через gost_cipher_ctl() сделано, с аналогичным
> >> интерфейсом. В качестве аргумента *buf тоже, наверное, какая-то
> >> константа, вроде ..._CRYPTOPRO_KEYMESHING. Не знаю только, куда её в
> >> Libgcrypt засунуть: в enum или в define и в какой раздел?
> >
> > Учитывая, что 28147 медленно, но верно должен начать уходить, я бы не особо
> > морочился на эту тему. Это бы имело смысл, если бы были еще keymeshing.
> > Но их пока нет. А ACPKM проще тоже отдельной модой вводить.
>
>   Тут ещё вопрос, кстати, а нужен ли нам вообще GCRY_CIPHER_MODE_CFB без
> _MESH ? И для чего тогда OIDs править? В том, что прилетает в CMS,
> значится просто "1.2.643.2.2.21". Следовательно, key meshing должен быть
> включен по умолчанию.

Тебе все равно SBOX выбирать надо, это же не автоматом идет. Туда же вставить и
gcry_cipher_ctl().

Я на следующей неделе посмотрю и доделаю тогда. Норма?
--
With best wishes
Dmitry

  reply	other threads:[~2019-09-13 11:30 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-12 21:05 Paul Wolneykien
2019-09-12 21:53 ` Dmitry Eremin-Solenikov
2019-09-13  9:45   ` Paul Wolneykien
2019-09-13 10:13     ` Dmitry Eremin-Solenikov
2019-09-13 10:30       ` Paul Wolneykien
2019-09-13 11:30         ` Dmitry Eremin-Solenikov [this message]
2019-09-13 11:38           ` Paul Wolneykien
2019-09-13 11:55             ` Dmitry Eremin-Solenikov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CALT56yNyViQ_QXHd5U+_m-zQt2r4dO_NWU3BdtdPeoN+QYfnVA@mail.gmail.com \
    --to=dbaryshkov@gmail.com \
    --cc=oss-gost-crypto@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Open-source aspects of GOST Cryptography

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/oss-gost-crypto/0 oss-gost-crypto/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 oss-gost-crypto oss-gost-crypto/ http://lore.altlinux.org/oss-gost-crypto \
		oss-gost-crypto@lists.altlinux.org oss-gost-crypto@lists.altlinux.ru oss-gost-crypto@lists.altlinux.com
	public-inbox-index oss-gost-crypto

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.oss-gost-crypto


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git