public inbox for gost@lists.cypherpunks.ru
Atom feed
* [GOST] Константа Size в gogost
@ 2016-11-15 11:40 Phil Kulin
  2016-11-15 18:40 ` Sergey Matveev
  0 siblings, 1 reply; 12+ messages in thread
From: Phil Kulin @ 2016-11-15 11:40 UTC (permalink / raw)
  To: gost

Использую http://www.cypherpunks.ru/gogost/
Хэш ГОСТ 34.11-94 для создания DS записей для DNSSEC.
В стандартных crypto/sha1 и так далее есть константа Size, а тут
только метод. Который всё равно возвращает константу. Я чего-то не
понимаю?


-- 
Non nobis Domine non nobis sed Nomini Tuo da gloriam
Phil Kulin

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [GOST] Константа Size в gogost
  2016-11-15 11:40 [GOST] Константа Size в gogost Phil Kulin
@ 2016-11-15 18:40 ` Sergey Matveev
  2016-11-15 18:53   ` Dmitry Eremin-Solenikov
  0 siblings, 1 reply; 12+ messages in thread
From: Sergey Matveev @ 2016-11-15 18:40 UTC (permalink / raw)
  To: gost

[-- Attachment #1: Type: text/plain, Size: 1093 bytes --]

*** Phil Kulin <phil@dip•host> [2016-11-15 15:55]:
>В стандартных crypto/sha1 и так далее есть константа Size, а тут
>только метод. Который всё равно возвращает константу. Я чего-то не
>понимаю?

Когда это писалось, то я смотрел только на то чтобы реализовать
интерфейс hash.Hash, а про константы модуля не думал. Похоже что все
модули хэшей имеют BlockSize и Size, так что добавлю. Спасибо за
наводку.

Реализовал в https://git.cypherpunks.ru/cgit.cgi/gogost.git/commit/?id=0f87d5cd27f132216ffca24d2e563efbfd559bf6
Вот только не понятно что прописывать для 34.11-2012 хэша: он же может и
256 и 512 бит. Прописал максимальный размер.

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [GOST] Константа Size в gogost
  2016-11-15 18:40 ` Sergey Matveev
@ 2016-11-15 18:53   ` Dmitry Eremin-Solenikov
  2016-11-15 19:03     ` Sergey Matveev
                       ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Dmitry Eremin-Solenikov @ 2016-11-15 18:53 UTC (permalink / raw)
  To: gost

15 ноября 2016 г., 21:40 пользователь Sergey Matveev
<stargrave@stargrave•org> написал:
> *** Phil Kulin <phil@dip•host> [2016-11-15 15:55]:
>>В стандартных crypto/sha1 и так далее есть константа Size, а тут
>>только метод. Который всё равно возвращает константу. Я чего-то не
>>понимаю?
>
> Когда это писалось, то я смотрел только на то чтобы реализовать
> интерфейс hash.Hash, а про константы модуля не думал. Похоже что все
> модули хэшей имеют BlockSize и Size, так что добавлю. Спасибо за
> наводку.
>
> Реализовал в https://git.cypherpunks.ru/cgit.cgi/gogost.git/commit/?id=0f87d5cd27f132216ffca24d2e563efbfd559bf6
> Вот только не понятно что прописывать для 34.11-2012 хэша: он же может и
> 256 и 512 бит. Прописал максимальный размер.

34.11-2012 -- это два разных варианта хэша. Как sha225/sha256.

Соответственно должен быть один вариант, у которого Size=256 и второй,
у которого Size=512.

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [GOST] Константа Size в gogost
  2016-11-15 18:53   ` Dmitry Eremin-Solenikov
@ 2016-11-15 19:03     ` Sergey Matveev
  2016-11-15 19:10       ` Dmitry Eremin-Solenikov
  2016-11-15 20:29     ` Phil Kulin
                       ` (2 subsequent siblings)
  3 siblings, 1 reply; 12+ messages in thread
From: Sergey Matveev @ 2016-11-15 19:03 UTC (permalink / raw)
  To: gost

[-- Attachment #1: Type: text/plain, Size: 1013 bytes --]

*** Dmitry Eremin-Solenikov <dbaryshkov@gmail•com> [2016-11-15 22:00]:
>Соответственно должен быть один вариант, у которого Size=256 и второй,
>у которого Size=512.

То есть вы предлагаете сделать два отдельных gost34112012-256 и
gost34112012-512 модуля? А где в документации к хэш-функциях в Go
говорится что эти константы обязаны быть и на них стоит ориентироваться?
Разе не только ли hash.Hash это обязательное к реализации? Делать два
отдельных модуля только ради констант которые... лично я например
никогда не использовал (а только .Size()), это overhead.

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [GOST] Константа Size в gogost
  2016-11-15 19:03     ` Sergey Matveev
@ 2016-11-15 19:10       ` Dmitry Eremin-Solenikov
  2016-11-15 19:20         ` Sergey Matveev
  0 siblings, 1 reply; 12+ messages in thread
From: Dmitry Eremin-Solenikov @ 2016-11-15 19:10 UTC (permalink / raw)
  To: gost

15 ноября 2016 г., 22:03 пользователь Sergey Matveev
<stargrave@stargrave•org> написал:
> *** Dmitry Eremin-Solenikov <dbaryshkov@gmail•com> [2016-11-15 22:00]:
>>Соответственно должен быть один вариант, у которого Size=256 и второй,
>>у которого Size=512.
>
> То есть вы предлагаете сделать два отдельных gost34112012-256 и
> gost34112012-512 модуля?

Да. Например, потому что у них разные начальные значения. Разные длины.
Опять-таки, для HMAC, например, результат -256 -- это последние байты
512-битного внутреннего результата, а не первые.


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [GOST] Константа Size в gogost
  2016-11-15 19:10       ` Dmitry Eremin-Solenikov
@ 2016-11-15 19:20         ` Sergey Matveev
  0 siblings, 0 replies; 12+ messages in thread
From: Sergey Matveev @ 2016-11-15 19:20 UTC (permalink / raw)
  To: gost

[-- Attachment #1: Type: text/plain, Size: 866 bytes --]

*** Dmitry Eremin-Solenikov <dbaryshkov@gmail•com> [2016-11-15 22:15]:
>Да. Например, потому что у них разные начальные значения. Разные длины.
>Опять-таки, для HMAC, например, результат -256 -- это последние байты
>512-битного внутреннего результата, а не первые.

Хм, тоже весомый аргумент. Избавиться от if-ов в коде зависящих от
реализации это хорошо и стоит того. Похоже тоже, значит, в следующей
версии сделаю два модуля и обратную несовместимость.

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [GOST] Константа Size в gogost
  2016-11-15 18:53   ` Dmitry Eremin-Solenikov
  2016-11-15 19:03     ` Sergey Matveev
@ 2016-11-15 20:29     ` Phil Kulin
  2016-11-15 20:34       ` Sergey Matveev
  2016-11-15 21:34     ` Grigory Marshalko
  2016-11-15 21:43     ` Grigory Marshalko
  3 siblings, 1 reply; 12+ messages in thread
From: Phil Kulin @ 2016-11-15 20:29 UTC (permalink / raw)
  To: Dmitry Eremin-Solenikov; +Cc: gost

2016-11-15 21:53 GMT+03:00 Dmitry Eremin-Solenikov <dbaryshkov@gmail•com>:
> 15 ноября 2016 г., 21:40 пользователь Sergey Matveev
> <stargrave@stargrave•org> написал:
>> *** Phil Kulin <phil@dip•host> [2016-11-15 15:55]:
>> Реализовал в https://git.cypherpunks.ru/cgit.cgi/gogost.git/commit/?id=0f87d5cd27f132216ffca24d2e563efbfd559bf6
>> Вот только не понятно что прописывать для 34.11-2012 хэша: он же может и
>> 256 и 512 бит. Прописал максимальный размер.
> 34.11-2012 -- это два разных варианта хэша. Как sha225/sha256.
> Соответственно должен быть один вариант, у которого Size=256 и второй,
> у которого Size=512.

Так себе решение, но в стандартном вот так (там модуль для sha224,
sha256, sha384 и sha512):
https://golang.org/src/crypto/sha512/sha512.go

-- 
Non nobis Domine non nobis sed Nomini Tuo da gloriam
Phil Kulin

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [GOST] Константа Size в gogost
  2016-11-15 20:29     ` Phil Kulin
@ 2016-11-15 20:34       ` Sergey Matveev
  2016-11-15 20:49         ` Dmitry Eremin-Solenikov
  2016-11-15 21:25         ` Phil Kulin
  0 siblings, 2 replies; 12+ messages in thread
From: Sergey Matveev @ 2016-11-15 20:34 UTC (permalink / raw)
  To: gost

[-- Attachment #1: Type: text/plain, Size: 998 bytes --]

*** Phil Kulin <phil@dip•host> [2016-11-15 23:30]:
>Так себе решение, но в стандартном вот так (там модуль для sha224,
>sha256, sha384 и sha512):
>https://golang.org/src/crypto/sha512/sha512.go

Ну раз там Size224, Size256, итд, то это уже точно значит нельзя считать
как константа которая должна присутствовать в модуле (но не хочу сказать
что я удалю в gogost :-)). Эти константы явно только осознанно можно
импортировать/использовать. То есть hash.Hash.Size() в любом случае
предпочтительнее для использования: эта функция выдаст точно что должен
вернуть хэш.

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [GOST] Константа Size в gogost
  2016-11-15 20:34       ` Sergey Matveev
@ 2016-11-15 20:49         ` Dmitry Eremin-Solenikov
  2016-11-15 21:25         ` Phil Kulin
  1 sibling, 0 replies; 12+ messages in thread
From: Dmitry Eremin-Solenikov @ 2016-11-15 20:49 UTC (permalink / raw)
  To: gost

15 ноября 2016 г., 23:34 пользователь Sergey Matveev
<stargrave@stargrave•org> написал:
> *** Phil Kulin <phil@dip•host> [2016-11-15 23:30]:
>>Так себе решение, но в стандартном вот так (там модуль для sha224,
>>sha256, sha384 и sha512):
>>https://golang.org/src/crypto/sha512/sha512.go
>
> Ну раз там Size224, Size256, итд, то это уже точно значит нельзя считать
> как константа которая должна присутствовать в модуле (но не хочу сказать
> что я удалю в gogost :-)). Эти константы явно только осознанно можно
> импортировать/использовать. То есть hash.Hash.Size() в любом случае
> предпочтительнее для использования: эта функция выдаст точно что должен
> вернуть хэш.

Заглянул в HMAC, как в пример использования. Модуль дергает функции
Size() и BlockSize().

-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [GOST] Константа Size в gogost
  2016-11-15 20:34       ` Sergey Matveev
  2016-11-15 20:49         ` Dmitry Eremin-Solenikov
@ 2016-11-15 21:25         ` Phil Kulin
  1 sibling, 0 replies; 12+ messages in thread
From: Phil Kulin @ 2016-11-15 21:25 UTC (permalink / raw)
  To: gost

2016-11-15 23:34 GMT+03:00 Sergey Matveev <stargrave@stargrave•org>:
> *** Phil Kulin <phil@dip•host> [2016-11-15 23:30]:
>>Так себе решение, но в стандартном вот так (там модуль для sha224,
>>sha256, sha384 и sha512):
>>https://golang.org/src/crypto/sha512/sha512.go
> Ну раз там Size224, Size256, итд, то это уже точно значит нельзя считать
> как константа которая должна присутствовать в модуле (но не хочу сказать
> что я удалю в gogost :-)). Эти константы явно только осознанно можно
> импортировать/использовать. То есть hash.Hash.Size() в любом случае
> предпочтительнее для использования: эта функция выдаст точно что должен
> вернуть хэш.

Да, тут наверное да. Но у них примеры на тех сайзах построены. Думаю
не будет прямо чтобы очень места занимать.


-- 
Non nobis Domine non nobis sed Nomini Tuo da gloriam
Phil Kulin

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [GOST] Константа Size в gogost
  2016-11-15 18:53   ` Dmitry Eremin-Solenikov
  2016-11-15 19:03     ` Sergey Matveev
  2016-11-15 20:29     ` Phil Kulin
@ 2016-11-15 21:34     ` Grigory Marshalko
  2016-11-15 21:43     ` Grigory Marshalko
  3 siblings, 0 replies; 12+ messages in thread
From: Grigory Marshalko @ 2016-11-15 21:34 UTC (permalink / raw)
  To: Sergey Matveev, gost

Добрый вечер,
да это действительно две различных хэш-функции - они отличаются длиной хэш-кода, и значением вектора инициализации. 

Regards,
Grigory Marshalko,
expert,
Technical committee for standardisation "Cryptography and security mechanisms" (TC 26)
www.tc26.ru

15 ноября 2016 г., 22:05, "Sergey Matveev" <stargrave@stargrave•org> написал:
> *** Dmitry Eremin-Solenikov <dbaryshkov@gmail•com> [2016-11-15 22:00]:
> 
>> Соответственно должен быть один вариант, у которого Size=256 и второй,
>> у которого Size=512.
> 
> То есть вы предлагаете сделать два отдельных gost34112012-256 и
> gost34112012-512 модуля? А где в документации к хэш-функциях в Go
> говорится что эти константы обязаны быть и на них стоит ориентироваться?
> Разе не только ли hash.Hash это обязательное к реализации? Делать два
> отдельных модуля только ради констант которые... лично я например
> никогда не использовал (а только .Size()), это overhead.
> 
> --
> Sergey Matveev (http://www.stargrave.org)
> OpenPGP: CF60 E89A 5923 1E76 E263 6422 AE1A 8109 E498 57EF
> 
> _______________________________________________
> GOST mailing list
> GOST@lists•cypherpunks.ru
> http://lists.cypherpunks.ru/mailman/listinfo/gost

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [GOST] Константа Size в gogost
  2016-11-15 18:53   ` Dmitry Eremin-Solenikov
                       ` (2 preceding siblings ...)
  2016-11-15 21:34     ` Grigory Marshalko
@ 2016-11-15 21:43     ` Grigory Marshalko
  3 siblings, 0 replies; 12+ messages in thread
From: Grigory Marshalko @ 2016-11-15 21:43 UTC (permalink / raw)
  To: gost

[-- Attachment #1: Type: text/plain, Size: 1699 bytes --]

Добрый вечер,да это действительно две различных хэш-функции - они отличаются длиной хэш-кода, и значением вектора инициализации.

Regards,
Grigory Marshalko,
expert,
Technical committee for standardisation "Cryptography and security mechanisms" (TC 26)
www.tc26.ru
15 ноября 2016 г., 22:05, "Sergey Matveev"  написал:
 *** Dmitry Eremin-Solenikov  [2016-11-15 22:00]:
 Соответственно должен быть один вариант, у которого Size=256 и второй,
у которого Size=512.

То есть вы предлагаете сделать два отдельных gost34112012-256 и
gost34112012-512 модуля? А где в документации к хэш-функциях в Go
говорится что эти константы обязаны быть и на них стоит ориентироваться?
Разе не только ли hash.Hash это обязательное к реализации? Делать два
отдельных модуля только ради констант которые... лично я например
никогда не использовал (а только .Size()), это overhead.

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

_______________________________________________
GOST mailing list
GOST@lists•cypherpunks.ru (mailto:GOST@lists•cypherpunks.ru)
http://lists.cypherpunks.ru/mailman/listinfo/gost (http://lists.cypherpunks.ru/mailman/listinfo/gost)

[-- Attachment #2: Type: text/html, Size: 2316 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2016-11-16 15:06 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-15 11:40 [GOST] Константа Size в gogost Phil Kulin
2016-11-15 18:40 ` Sergey Matveev
2016-11-15 18:53   ` Dmitry Eremin-Solenikov
2016-11-15 19:03     ` Sergey Matveev
2016-11-15 19:10       ` Dmitry Eremin-Solenikov
2016-11-15 19:20         ` Sergey Matveev
2016-11-15 20:29     ` Phil Kulin
2016-11-15 20:34       ` Sergey Matveev
2016-11-15 20:49         ` Dmitry Eremin-Solenikov
2016-11-15 21:25         ` Phil Kulin
2016-11-15 21:34     ` Grigory Marshalko
2016-11-15 21:43     ` Grigory Marshalko