Соответствие алгоритмов в CSP и JCP
Опубликовано Данзан Лиджиев on 2022-09-21 02:58

Для инициализации объекта создания/проверки подписи в JCP/JCSP в функции Signature.getInstance() используются следующие константы:

Константа Строковое значение Алгоритм подписи
JCP.GOST_EL_SIGN_NAME «GOST3411withGOST3410EL» ГОСТ 34.10-2001
JCP.GOST_SIGN_2012_256_NAME «GOST3411withGOST3410_2012_256» ГОСТ Р 34.10-2012 (256)
JCP.GOST_SIGN_2012_512_NAME «GOST3411withGOST3410_2012_512» ГОСТ Р 34.10-2012 (512)

Константы в провайдерах JCP и JCSP в этом случае используются идентичные. То есть разработчик может создать подпись с помощью провайдера JCP,

а затем проверить ее с помощью провайдера JCSP, указав при этом одну и ту же константу в качестве имени алгоритма (и наоборот).

 

В случае проверки подписи, созданной непосредственно в CSP, а также при создании подписи, которая в последствии будет проверяться в CSP, ситуация иная.

В этих случаях в провайдерах JCP/JCSP для совместимости с CSP при инициализации объекта создания/проверки подписи в функции Signature.getInstance()

должны использоваться следующие константы:

Константа Строковое значение Алгоритм подписи
JCP. CRYPTOPRO_SIGN_NAME «CryptoProSignature» ГОСТ 34.10-2001
JCP. CRYPTOPRO_SIGN_2012_256_NAME «CryptoProSignature_2012_256» ГОСТ Р 34.10-2012 (256)
JCP. CRYPTOPRO_SIGN_2012_512_NAME «CryptoProSignature_2012_512» ГОСТ Р 34.10-2012 (512)

 

В ситуациях, когда в функцию создания/проверки подписи подаются не данные, а готовый хэш, в JCP/JCSP используются особые константы.

В этом случае для инициализации объекта создания/проверки подписи в функции Signature.getInstance() используются константы:

Константа Строковое значение Алгоритм подписи
JCP.RAW_GOST_EL_SIGN_NAME «NONEwithGOST3410EL» ГОСТ 34.10-2001
JCP. RAW_GOST_SIGN_2012_256_NAME «NONEwithGOST3410_2012_256» ГОСТ Р 34.10-2012 (256)
JCP. RAW_GOST_SIGN_2012_512_NAME «NONEwithGOST3410_2012_512» ГОСТ Р 34.10-2012 (512)

Подпись, созданная таким образом в провайдере JCP, может быть проверена в провайдере JCSP, и обратно.

 

Если же требуется совместимость с провайдером CSP, то для инициализации объекта создания/проверки подписи в функции Signature.getInstance()

используются константы:

Константа Строковое значение Алгоритм подписи
JCP. RAW_CRYPTOPRO_SIGN_NAME «NONEwithCryptoProSignature» ГОСТ 34.10-2001
JCP. RAW_CRYPTOPRO_SIGN_2012_256_NAME «NONEwithCryptoProSignature_2012_256» ГОСТ Р 34.10-2012 (256)
JCP. RAW_CRYPTOPRO_SIGN_2012_512_NAME «NONEwithCryptoProSignature_2012_512» ГОСТ Р 34.10-2012 (512)

 

(7 плюсик(ов))
Класс!
Не очень :(