rudonick / crypto

WebCrypto GOST
107 stars 54 forks source link

Поддержка ГОСТ Р.34.12-2015 в GostSecurity #5

Closed AcellaEDU closed 8 years ago

AcellaEDU commented 8 years ago

Скажите пожалуйста, будет ли добавлена поддержка нового стандарта ГОСТ Р 34.12-2015 в сущносте GostSecurity? Ссылка: http://gostcrypto.com/doc/GostSecurity.html

На сегодняшний день она работает с ГОСТ 28147-89.

rudonick commented 8 years ago

Да. Поддержка добавлена еще в прошлом году. Возможно Вы не внимательно смотрели документацию. Это алгоритмы GOST R 34.12 См. http://gostcrypto.com/doc/SubtleCrypto.html. Тестовые примеры в соотвествии стандарту здесь http://gostcrypto.com/self-tests.html Разделы GOST R 34.12-2015/64bits и GOST R 34.12-2015/128bits

On Fri, Oct 7, 2016 at 5:40 AM, AcellaEDU notifications@github.com wrote:

Скажите пожалуйста, будет ли добавлена поддержка нового стандарта ГОСТ Р 34.12-2015 в сущносте GostSecurity? Ссылка: http://gostcrypto.com/doc/GostSecurity.html

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/rudonick/crypto/issues/5, or mute the thread https://github.com/notifications/unsubscribe-auth/AJNbgk8TJbPXFxYTAojupn94Aek0bNeFks5qxdtUgaJpZM4KQsYj .

AcellaEDU commented 8 years ago

Я знаю, что библиотека поддерживает ГОСТ Р 34.12-2015. Вы видимо поспешили с ответом на мой вопрос.

Работаю с кодовой базой из примера: pki-encrypt.html В качестве провайдера алгоритмов использую 'TC-512', который определяется в gostSecurity.js. Из определения этого параметра (см. ниже) видно, каким алгоритмом (ГОСТ 28147-89) он определяет encryption, и wrapping.

Я же хочу использовать новый стандарт, вместо устаревшего.

Можно доопределить новый стандарт самостоятельно, но с какими скрытыми ошибками столкнусь...? Мне не известно. Поэтому хотелось бы поддержки нового стандарта в gostSecurity.js.

'TC-512': { title: 'Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider', signature: algorithms['id-tc26-signwithdigest-gost3410-12-512'], publicKey: {id: 'id-tc26-gost3410-12-512', name: 'GOST R 34.10-512', namedCurve: 'T-512-A'}, privateKey: {id: 'id-tc26-agreement-gost-3410-12-512', name: 'GOST R 34.10-512-DH/GOST R 34.11-256', namedCurve: 'T-512-A'}, digest: algorithms['id-tc26-gost3411-12-512'], wrapping: {id: 'id-Gost28147-89-CryptoPro-KeyWrap', name: 'GOST 28147-89-CPKW', sBox: 'E-A'}, hmac: algorithms['id-tc26-hmac-gost-3411-12-512'], agreement: algorithms['id-tc26-agreement-gost-3410-12-512'], encryption: {id: 'id-Gost28147-89', name: 'GOST 28147-89-CFB-CPKM', sBox: 'E-A'}, derivation: {id: 'PBKDF2', name: 'GOST R 34.11-256-PBKDF2', iterations: 2000} },

rudonick commented 8 years ago

Понятно. TC-512 соответствует текущим определениям для strong провайдера CryptoPro v.4.0. С другой стороны все классы поддерживают прямое определние алгоритмов. Плюс Вам никто не запрещает создать собственного провайдера или переопределить существующего. Это довольно легко. Например, gostCrpypto.security.providers['TC-512'].encryption = ...

Единственное что не смогу Вам подсказать, это какие надо использовать OID для алгоритмов GOST 34.12, Их не нашел ни на сайте tc26.ru, ни в новых RFC от CryptoPro.

2016-10-28 13:10 GMT+00:00 AcellaEDU notifications@github.com:

Я знаю, что библиотека поддерживает ГОСТ Р 34.12-2015. Вы видимо поспешили с ответом на мой вопрос.

Работаю с кодовой базой из примера: pki-encrypt.html http://gostcrypto.com/pki-encrypt.html В качестве провайдера алгоритмов использую 'TC-512', который определяется в gostSecurity.js. http://gostcrypto.com/doc/gostSecurity.js.html Из определения этого параметра (см. ниже) видно, каким алгоритмом (ГОСТ 28147-89) он определяет encryption, и wrapping.

Я же хочу использовать новый стандарт, вместо устаревшего.

Можно доопределить новый стандарт самостоятельно, но с какими скрытыми ошибками столкнусь...? Мне не известно. Поэтому хотелось бы поддержки нового стандарта в gostSecurity.js.

'TC-512': { title: 'Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider', signature: algorithms['id-tc26-signwithdigest-gost3410-12-512'], publicKey: {id: 'id-tc26-gost3410-12-512', name: 'GOST R 34.10-512', namedCurve: 'T-512-A'}, privateKey: {id: 'id-tc26-agreement-gost-3410-12-512', name: 'GOST R 34.10-512-DH/GOST R 34.11-256', namedCurve: 'T-512-A'}, digest: algorithms['id-tc26-gost3411-12-512'], wrapping: {id: 'id-Gost28147-89-CryptoPro-KeyWrap', name: 'GOST 28147-89-CPKW', sBox: 'E-A'}, hmac: algorithms['id-tc26-hmac-gost-3411-12-512'], agreement: algorithms['id-tc26-agreement-gost-3410-12-512'], encryption: {id: 'id-Gost28147-89', name: 'GOST 28147-89-CFB-CPKM', sBox: 'E-A'}, derivation: {id: 'PBKDF2', name: 'GOST R 34.11-256-PBKDF2', iterations: 2000} },

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/rudonick/crypto/issues/5#issuecomment-256916207, or mute the thread https://github.com/notifications/unsubscribe-auth/AJNbgiSy3tLHEGrnt6GaJZfvmhLgRrb1ks5q4fRWgaJpZM4KQsYj .

AcellaEDU commented 8 years ago

Спасибо за ответ. Прошу вас в ближайшем будущем рассмотреть данную доработку.